catch up with development

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/ChartDSLParser.java b/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/ChartDSLParser.java
index ea58f15..5092ce1 100644
--- a/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/ChartDSLParser.java
+++ b/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/ChartDSLParser.java
@@ -97,9 +97,13 @@
 					put(grammarAccess.getToggleTypeEnumAccess().getAlternatives(), "rule__ToggleTypeEnum__Alternatives");
 					put(grammarAccess.getTooltipLocationEnumAccess().getAlternatives(), "rule__TooltipLocationEnum__Alternatives");
 					put(grammarAccess.getRenderTypeEnumAccess().getAlternatives(), "rule__RenderTypeEnum__Alternatives");
+					put(grammarAccess.getCanvasFontFamilyEnumAccess().getAlternatives(), "rule__CanvasFontFamilyEnum__Alternatives");
 					put(grammarAccess.getChartModelAccess().getGroup(), "rule__ChartModel__Group__0");
 					put(grammarAccess.getChartPackageAccess().getGroup(), "rule__ChartPackage__Group__0");
 					put(grammarAccess.getChartPackageAccess().getGroup_3(), "rule__ChartPackage__Group_3__0");
+					put(grammarAccess.getChartPackageAccess().getGroup_4(), "rule__ChartPackage__Group_4__0");
+					put(grammarAccess.getChartPackageAccess().getGroup_5(), "rule__ChartPackage__Group_5__0");
+					put(grammarAccess.getSeriesColorAccess().getGroup(), "rule__SeriesColor__Group__0");
 					put(grammarAccess.getChartAccess().getGroup(), "rule__Chart__Group__0");
 					put(grammarAccess.getChartAccess().getGroup_3(), "rule__Chart__Group_3__0");
 					put(grammarAccess.getChartAccess().getGroup_6_1(), "rule__Chart__Group_6_1__0");
@@ -119,11 +123,19 @@
 					put(grammarAccess.getChartNumberIntervalAccess().getGroup(), "rule__ChartNumberInterval__Group__0");
 					put(grammarAccess.getChartDatamartAccess().getGroup(), "rule__ChartDatamart__Group__0");
 					put(grammarAccess.getChartLegendAccess().getGroup(), "rule__ChartLegend__Group__0");
-					put(grammarAccess.getChartLegendAccess().getGroup_2(), "rule__ChartLegend__Group_2__0");
+					put(grammarAccess.getChartLegendAccess().getGroup_3(), "rule__ChartLegend__Group_3__0");
+					put(grammarAccess.getChartLegendAccess().getGroup_3_1(), "rule__ChartLegend__Group_3_1__0");
+					put(grammarAccess.getChartLegendAccess().getGroup_4(), "rule__ChartLegend__Group_4__0");
+					put(grammarAccess.getChartLegendAccess().getGroup_5(), "rule__ChartLegend__Group_5__0");
 					put(grammarAccess.getChartHighlighterAccess().getGroup(), "rule__ChartHighlighter__Group__0");
 					put(grammarAccess.getChartHighlighterAccess().getGroup_2(), "rule__ChartHighlighter__Group_2__0");
 					put(grammarAccess.getChartAxisAccess().getGroup(), "rule__ChartAxis__Group__0");
 					put(grammarAccess.getChartAxisAccess().getGroup_5(), "rule__ChartAxis__Group_5__0");
+					put(grammarAccess.getChartAxisAccess().getGroup_6(), "rule__ChartAxis__Group_6__0");
+					put(grammarAccess.getChartAxisAccess().getGroup_7(), "rule__ChartAxis__Group_7__0");
+					put(grammarAccess.getChartAxisAccess().getGroup_8(), "rule__ChartAxis__Group_8__0");
+					put(grammarAccess.getChartAxisAccess().getGroup_9(), "rule__ChartAxis__Group_9__0");
+					put(grammarAccess.getChartAxisAccess().getGroup_10(), "rule__ChartAxis__Group_10__0");
 					put(grammarAccess.getChartSegmentColorAccess().getGroup(), "rule__ChartSegmentColor__Group__0");
 					put(grammarAccess.getSignedNumberAccess().getGroup(), "rule__SignedNumber__Group__0");
 					put(grammarAccess.getXImportDeclarationAccess().getGroup(), "rule__XImportDeclaration__Group__0");
@@ -329,7 +341,11 @@
 					put(grammarAccess.getChartModelAccess().getImportSectionAssignment_0(), "rule__ChartModel__ImportSectionAssignment_0");
 					put(grammarAccess.getChartModelAccess().getPackagesAssignment_1(), "rule__ChartModel__PackagesAssignment_1");
 					put(grammarAccess.getChartPackageAccess().getNameAssignment_2(), "rule__ChartPackage__NameAssignment_2");
-					put(grammarAccess.getChartPackageAccess().getChartsAssignment_3_1(), "rule__ChartPackage__ChartsAssignment_3_1");
+					put(grammarAccess.getChartPackageAccess().getHasColorsAssignment_3_0(), "rule__ChartPackage__HasColorsAssignment_3_0");
+					put(grammarAccess.getChartPackageAccess().getColorsAssignment_3_2(), "rule__ChartPackage__ColorsAssignment_3_2");
+					put(grammarAccess.getChartPackageAccess().getDefaultFontFamilyAssignment_4_1(), "rule__ChartPackage__DefaultFontFamilyAssignment_4_1");
+					put(grammarAccess.getChartPackageAccess().getChartsAssignment_5_1(), "rule__ChartPackage__ChartsAssignment_5_1");
+					put(grammarAccess.getSeriesColorAccess().getRgbAssignment_1(), "rule__SeriesColor__RgbAssignment_1");
 					put(grammarAccess.getChartAccess().getNameAssignment_2(), "rule__Chart__NameAssignment_2");
 					put(grammarAccess.getChartAccess().getDescriptionAssignment_3_0(), "rule__Chart__DescriptionAssignment_3_0");
 					put(grammarAccess.getChartAccess().getDescriptionValueAssignment_3_1(), "rule__Chart__DescriptionValueAssignment_3_1");
@@ -367,17 +383,25 @@
 					put(grammarAccess.getChartNumberIntervalAccess().getNumberRangeAssignment_3(), "rule__ChartNumberInterval__NumberRangeAssignment_3");
 					put(grammarAccess.getChartDatamartAccess().getDatamartRefAssignment_1(), "rule__ChartDatamart__DatamartRefAssignment_1");
 					put(grammarAccess.getChartDatamartAccess().getElementsAssignment_3(), "rule__ChartDatamart__ElementsAssignment_3");
-					put(grammarAccess.getChartLegendAccess().getPlacementAssignment_1(), "rule__ChartLegend__PlacementAssignment_1");
-					put(grammarAccess.getChartLegendAccess().getToggleAssignment_2_0(), "rule__ChartLegend__ToggleAssignment_2_0");
-					put(grammarAccess.getChartLegendAccess().getReplotAssignment_2_1(), "rule__ChartLegend__ReplotAssignment_2_1");
-					put(grammarAccess.getChartLegendAccess().getToggleTypeAssignment_2_2(), "rule__ChartLegend__ToggleTypeAssignment_2_2");
+					put(grammarAccess.getChartLegendAccess().getNoLegendAssignment_2(), "rule__ChartLegend__NoLegendAssignment_2");
+					put(grammarAccess.getChartLegendAccess().getPlacementAssignment_3_0(), "rule__ChartLegend__PlacementAssignment_3_0");
+					put(grammarAccess.getChartLegendAccess().getToggleAssignment_3_1_0(), "rule__ChartLegend__ToggleAssignment_3_1_0");
+					put(grammarAccess.getChartLegendAccess().getReplotAssignment_3_1_1(), "rule__ChartLegend__ReplotAssignment_3_1_1");
+					put(grammarAccess.getChartLegendAccess().getToggleTypeAssignment_3_1_2(), "rule__ChartLegend__ToggleTypeAssignment_3_1_2");
+					put(grammarAccess.getChartLegendAccess().getFontSizeAssignment_4_1(), "rule__ChartLegend__FontSizeAssignment_4_1");
+					put(grammarAccess.getChartLegendAccess().getTextColorAssignment_5_1(), "rule__ChartLegend__TextColorAssignment_5_1");
 					put(grammarAccess.getChartHighlighterAccess().getLocationAssignment_1(), "rule__ChartHighlighter__LocationAssignment_1");
 					put(grammarAccess.getChartHighlighterAccess().getTooltipAlwaysAssignment_2_0(), "rule__ChartHighlighter__TooltipAlwaysAssignment_2_0");
 					put(grammarAccess.getChartHighlighterAccess().getInsideChartAssignment_2_1(), "rule__ChartHighlighter__InsideChartAssignment_2_1");
 					put(grammarAccess.getChartAxisAccess().getAxisAssignment_1(), "rule__ChartAxis__AxisAssignment_1");
 					put(grammarAccess.getChartAxisAccess().getRenderTypeAssignment_3(), "rule__ChartAxis__RenderTypeAssignment_3");
 					put(grammarAccess.getChartAxisAccess().getShortLabelAssignment_4(), "rule__ChartAxis__ShortLabelAssignment_4");
-					put(grammarAccess.getChartAxisAccess().getAngleAssignment_5_1(), "rule__ChartAxis__AngleAssignment_5_1");
+					put(grammarAccess.getChartAxisAccess().getLabelAngleAssignment_5_1(), "rule__ChartAxis__LabelAngleAssignment_5_1");
+					put(grammarAccess.getChartAxisAccess().getLabelFontSizeAssignment_6_1(), "rule__ChartAxis__LabelFontSizeAssignment_6_1");
+					put(grammarAccess.getChartAxisAccess().getLabelTextColorAssignment_7_1(), "rule__ChartAxis__LabelTextColorAssignment_7_1");
+					put(grammarAccess.getChartAxisAccess().getTickAngleAssignment_8_1(), "rule__ChartAxis__TickAngleAssignment_8_1");
+					put(grammarAccess.getChartAxisAccess().getTickFontSizeAssignment_9_1(), "rule__ChartAxis__TickFontSizeAssignment_9_1");
+					put(grammarAccess.getChartAxisAccess().getTickTextColorAssignment_10_1(), "rule__ChartAxis__TickTextColorAssignment_10_1");
 					put(grammarAccess.getChartSegmentColorAccess().getRgbAssignment_1(), "rule__ChartSegmentColor__RgbAssignment_1");
 					put(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0(), "rule__XImportDeclaration__StaticAssignment_2_0_0");
 					put(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1(), "rule__XImportDeclaration__ExtensionAssignment_2_0_1");
diff --git a/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSL.g b/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSL.g
index 2d32b0e..dc46997 100644
--- a/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSL.g
+++ b/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSL.g
@@ -115,6 +115,31 @@
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleSeriesColor
+entryRuleSeriesColor
+:
+{ before(grammarAccess.getSeriesColorRule()); }
+	 ruleSeriesColor
+{ after(grammarAccess.getSeriesColorRule()); } 
+	 EOF 
+;
+
+// Rule SeriesColor
+ruleSeriesColor 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getSeriesColorAccess().getGroup()); }
+		(rule__SeriesColor__Group__0)
+		{ after(grammarAccess.getSeriesColorAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleChart
 entryRuleChart
 :
@@ -2751,6 +2776,22 @@
 	restoreStackSize(stackSize);
 }
 
+// Rule CanvasFontFamilyEnum
+ruleCanvasFontFamilyEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getCanvasFontFamilyEnumAccess().getAlternatives()); }
+		(rule__CanvasFontFamilyEnum__Alternatives)
+		{ after(grammarAccess.getCanvasFontFamilyEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__ChartOption__Alternatives
 	@init {
 		int stackSize = keepStackSize();
@@ -4194,6 +4235,57 @@
 	restoreStackSize(stackSize);
 }
 
+rule__CanvasFontFamilyEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getCanvasFontFamilyEnumAccess().getDEFAULTEnumLiteralDeclaration_0()); }
+		('Default')
+		{ after(grammarAccess.getCanvasFontFamilyEnumAccess().getDEFAULTEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getCanvasFontFamilyEnumAccess().getARIALEnumLiteralDeclaration_1()); }
+		('Arial')
+		{ after(grammarAccess.getCanvasFontFamilyEnumAccess().getARIALEnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getCanvasFontFamilyEnumAccess().getVERDANAEnumLiteralDeclaration_2()); }
+		('Verdana')
+		{ after(grammarAccess.getCanvasFontFamilyEnumAccess().getVERDANAEnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getCanvasFontFamilyEnumAccess().getTIMESNEWROMANEnumLiteralDeclaration_3()); }
+		('Times New Roman')
+		{ after(grammarAccess.getCanvasFontFamilyEnumAccess().getTIMESNEWROMANEnumLiteralDeclaration_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getCanvasFontFamilyEnumAccess().getCOURIERNEWEnumLiteralDeclaration_4()); }
+		('Courier New')
+		{ after(grammarAccess.getCanvasFontFamilyEnumAccess().getCOURIERNEWEnumLiteralDeclaration_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getCanvasFontFamilyEnumAccess().getSERIFEnumLiteralDeclaration_5()); }
+		('serif')
+		{ after(grammarAccess.getCanvasFontFamilyEnumAccess().getSERIFEnumLiteralDeclaration_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getCanvasFontFamilyEnumAccess().getSANSERIFEnumLiteralDeclaration_6()); }
+		('sans-serif')
+		{ after(grammarAccess.getCanvasFontFamilyEnumAccess().getSANSERIFEnumLiteralDeclaration_6()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__ChartModel__Group__0
 	@init {
 		int stackSize = keepStackSize();
@@ -4335,6 +4427,7 @@
 	}
 :
 	rule__ChartPackage__Group__3__Impl
+	rule__ChartPackage__Group__4
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -4355,6 +4448,59 @@
 	restoreStackSize(stackSize);
 }
 
+rule__ChartPackage__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartPackage__Group__4__Impl
+	rule__ChartPackage__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartPackageAccess().getGroup_4()); }
+	(rule__ChartPackage__Group_4__0)?
+	{ after(grammarAccess.getChartPackageAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartPackage__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartPackageAccess().getGroup_5()); }
+	(rule__ChartPackage__Group_5__0)?
+	{ after(grammarAccess.getChartPackageAccess().getGroup_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 
 rule__ChartPackage__Group_3__0
 	@init {
@@ -4374,9 +4520,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_0()); }
-	'{'
-	{ after(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_0()); }
+	{ before(grammarAccess.getChartPackageAccess().getHasColorsAssignment_3_0()); }
+	(rule__ChartPackage__HasColorsAssignment_3_0)
+	{ after(grammarAccess.getChartPackageAccess().getHasColorsAssignment_3_0()); }
 )
 ;
 finally {
@@ -4401,9 +4547,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getChartPackageAccess().getChartsAssignment_3_1()); }
-	(rule__ChartPackage__ChartsAssignment_3_1)*
-	{ after(grammarAccess.getChartPackageAccess().getChartsAssignment_3_1()); }
+	{ before(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_1()); }
+	'{'
+	{ after(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_1()); }
 )
 ;
 finally {
@@ -4416,6 +4562,7 @@
 	}
 :
 	rule__ChartPackage__Group_3__2__Impl
+	rule__ChartPackage__Group_3__3
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -4427,9 +4574,224 @@
 	}
 :
 (
-	{ before(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_2()); }
+	{ before(grammarAccess.getChartPackageAccess().getColorsAssignment_3_2()); }
+	(rule__ChartPackage__ColorsAssignment_3_2)*
+	{ after(grammarAccess.getChartPackageAccess().getColorsAssignment_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group_3__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartPackage__Group_3__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group_3__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_3()); }
 	'}'
-	{ after(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_2()); }
+	{ after(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ChartPackage__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartPackage__Group_4__0__Impl
+	rule__ChartPackage__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartPackageAccess().getFontFamilyKeyword_4_0()); }
+	'fontFamily'
+	{ after(grammarAccess.getChartPackageAccess().getFontFamilyKeyword_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartPackage__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartPackageAccess().getDefaultFontFamilyAssignment_4_1()); }
+	(rule__ChartPackage__DefaultFontFamilyAssignment_4_1)
+	{ after(grammarAccess.getChartPackageAccess().getDefaultFontFamilyAssignment_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ChartPackage__Group_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartPackage__Group_5__0__Impl
+	rule__ChartPackage__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_5_0()); }
+	'{'
+	{ after(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartPackage__Group_5__1__Impl
+	rule__ChartPackage__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartPackageAccess().getChartsAssignment_5_1()); }
+	(rule__ChartPackage__ChartsAssignment_5_1)*
+	{ after(grammarAccess.getChartPackageAccess().getChartsAssignment_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group_5__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartPackage__Group_5__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__Group_5__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_5_2()); }
+	'}'
+	{ after(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_5_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SeriesColor__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SeriesColor__Group__0__Impl
+	rule__SeriesColor__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SeriesColor__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSeriesColorAccess().getSeriesColorAction_0()); }
+	()
+	{ after(grammarAccess.getSeriesColorAccess().getSeriesColorAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SeriesColor__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SeriesColor__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SeriesColor__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSeriesColorAccess().getRgbAssignment_1()); }
+	(rule__SeriesColor__RgbAssignment_1)
+	{ after(grammarAccess.getSeriesColorAccess().getRgbAssignment_1()); }
 )
 ;
 finally {
@@ -6048,9 +6410,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getChartLegendAccess().getLegendKeyword_0()); }
-	'legend'
-	{ after(grammarAccess.getChartLegendAccess().getLegendKeyword_0()); }
+	{ before(grammarAccess.getChartLegendAccess().getChartLegendAction_0()); }
+	()
+	{ after(grammarAccess.getChartLegendAccess().getChartLegendAction_0()); }
 )
 ;
 finally {
@@ -6075,9 +6437,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getChartLegendAccess().getPlacementAssignment_1()); }
-	(rule__ChartLegend__PlacementAssignment_1)
-	{ after(grammarAccess.getChartLegendAccess().getPlacementAssignment_1()); }
+	{ before(grammarAccess.getChartLegendAccess().getLegendKeyword_1()); }
+	'legend'
+	{ after(grammarAccess.getChartLegendAccess().getLegendKeyword_1()); }
 )
 ;
 finally {
@@ -6090,6 +6452,7 @@
 	}
 :
 	rule__ChartLegend__Group__2__Impl
+	rule__ChartLegend__Group__3
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -6101,9 +6464,89 @@
 	}
 :
 (
-	{ before(grammarAccess.getChartLegendAccess().getGroup_2()); }
-	(rule__ChartLegend__Group_2__0)?
-	{ after(grammarAccess.getChartLegendAccess().getGroup_2()); }
+	{ before(grammarAccess.getChartLegendAccess().getNoLegendAssignment_2()); }
+	(rule__ChartLegend__NoLegendAssignment_2)?
+	{ after(grammarAccess.getChartLegendAccess().getNoLegendAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartLegend__Group__3__Impl
+	rule__ChartLegend__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartLegendAccess().getGroup_3()); }
+	(rule__ChartLegend__Group_3__0)?
+	{ after(grammarAccess.getChartLegendAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartLegend__Group__4__Impl
+	rule__ChartLegend__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartLegendAccess().getGroup_4()); }
+	(rule__ChartLegend__Group_4__0)?
+	{ after(grammarAccess.getChartLegendAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartLegend__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartLegendAccess().getGroup_5()); }
+	(rule__ChartLegend__Group_5__0)?
+	{ after(grammarAccess.getChartLegendAccess().getGroup_5()); }
 )
 ;
 finally {
@@ -6111,80 +6554,242 @@
 }
 
 
-rule__ChartLegend__Group_2__0
+rule__ChartLegend__Group_3__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ChartLegend__Group_2__0__Impl
-	rule__ChartLegend__Group_2__1
+	rule__ChartLegend__Group_3__0__Impl
+	rule__ChartLegend__Group_3__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ChartLegend__Group_2__0__Impl
+rule__ChartLegend__Group_3__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getChartLegendAccess().getToggleAssignment_2_0()); }
-	(rule__ChartLegend__ToggleAssignment_2_0)
-	{ after(grammarAccess.getChartLegendAccess().getToggleAssignment_2_0()); }
+	{ before(grammarAccess.getChartLegendAccess().getPlacementAssignment_3_0()); }
+	(rule__ChartLegend__PlacementAssignment_3_0)
+	{ after(grammarAccess.getChartLegendAccess().getPlacementAssignment_3_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ChartLegend__Group_2__1
+rule__ChartLegend__Group_3__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ChartLegend__Group_2__1__Impl
-	rule__ChartLegend__Group_2__2
+	rule__ChartLegend__Group_3__1__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ChartLegend__Group_2__1__Impl
+rule__ChartLegend__Group_3__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getChartLegendAccess().getReplotAssignment_2_1()); }
-	(rule__ChartLegend__ReplotAssignment_2_1)
-	{ after(grammarAccess.getChartLegendAccess().getReplotAssignment_2_1()); }
+	{ before(grammarAccess.getChartLegendAccess().getGroup_3_1()); }
+	(rule__ChartLegend__Group_3_1__0)?
+	{ after(grammarAccess.getChartLegendAccess().getGroup_3_1()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ChartLegend__Group_2__2
+
+rule__ChartLegend__Group_3_1__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ChartLegend__Group_2__2__Impl
+	rule__ChartLegend__Group_3_1__0__Impl
+	rule__ChartLegend__Group_3_1__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ChartLegend__Group_2__2__Impl
+rule__ChartLegend__Group_3_1__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getChartLegendAccess().getToggleTypeAssignment_2_2()); }
-	(rule__ChartLegend__ToggleTypeAssignment_2_2)
-	{ after(grammarAccess.getChartLegendAccess().getToggleTypeAssignment_2_2()); }
+	{ before(grammarAccess.getChartLegendAccess().getToggleAssignment_3_1_0()); }
+	(rule__ChartLegend__ToggleAssignment_3_1_0)
+	{ after(grammarAccess.getChartLegendAccess().getToggleAssignment_3_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group_3_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartLegend__Group_3_1__1__Impl
+	rule__ChartLegend__Group_3_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group_3_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartLegendAccess().getReplotAssignment_3_1_1()); }
+	(rule__ChartLegend__ReplotAssignment_3_1_1)
+	{ after(grammarAccess.getChartLegendAccess().getReplotAssignment_3_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group_3_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartLegend__Group_3_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group_3_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartLegendAccess().getToggleTypeAssignment_3_1_2()); }
+	(rule__ChartLegend__ToggleTypeAssignment_3_1_2)
+	{ after(grammarAccess.getChartLegendAccess().getToggleTypeAssignment_3_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ChartLegend__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartLegend__Group_4__0__Impl
+	rule__ChartLegend__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartLegendAccess().getFontSizeKeyword_4_0()); }
+	'fontSize'
+	{ after(grammarAccess.getChartLegendAccess().getFontSizeKeyword_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartLegend__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartLegendAccess().getFontSizeAssignment_4_1()); }
+	(rule__ChartLegend__FontSizeAssignment_4_1)
+	{ after(grammarAccess.getChartLegendAccess().getFontSizeAssignment_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ChartLegend__Group_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartLegend__Group_5__0__Impl
+	rule__ChartLegend__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartLegendAccess().getTextColorKeyword_5_0()); }
+	'textColor'
+	{ after(grammarAccess.getChartLegendAccess().getTextColorKeyword_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartLegend__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__Group_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartLegendAccess().getTextColorAssignment_5_1()); }
+	(rule__ChartLegend__TextColorAssignment_5_1)
+	{ after(grammarAccess.getChartLegendAccess().getTextColorAssignment_5_1()); }
 )
 ;
 finally {
@@ -6468,6 +7073,7 @@
 	}
 :
 	rule__ChartAxis__Group__5__Impl
+	rule__ChartAxis__Group__6
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -6488,6 +7094,140 @@
 	restoreStackSize(stackSize);
 }
 
+rule__ChartAxis__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group__6__Impl
+	rule__ChartAxis__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getGroup_6()); }
+	(rule__ChartAxis__Group_6__0)?
+	{ after(grammarAccess.getChartAxisAccess().getGroup_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group__7__Impl
+	rule__ChartAxis__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getGroup_7()); }
+	(rule__ChartAxis__Group_7__0)?
+	{ after(grammarAccess.getChartAxisAccess().getGroup_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group__8__Impl
+	rule__ChartAxis__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getGroup_8()); }
+	(rule__ChartAxis__Group_8__0)?
+	{ after(grammarAccess.getChartAxisAccess().getGroup_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group__9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group__9__Impl
+	rule__ChartAxis__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group__9__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getGroup_9()); }
+	(rule__ChartAxis__Group_9__0)?
+	{ after(grammarAccess.getChartAxisAccess().getGroup_9()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group__10
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group__10__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getGroup_10()); }
+	(rule__ChartAxis__Group_10__0)?
+	{ after(grammarAccess.getChartAxisAccess().getGroup_10()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 
 rule__ChartAxis__Group_5__0
 	@init {
@@ -6507,9 +7247,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getChartAxisAccess().getAngleKeyword_5_0()); }
-	'angle'
-	{ after(grammarAccess.getChartAxisAccess().getAngleKeyword_5_0()); }
+	{ before(grammarAccess.getChartAxisAccess().getLabelAngleKeyword_5_0()); }
+	'labelAngle'
+	{ after(grammarAccess.getChartAxisAccess().getLabelAngleKeyword_5_0()); }
 )
 ;
 finally {
@@ -6533,9 +7273,279 @@
 	}
 :
 (
-	{ before(grammarAccess.getChartAxisAccess().getAngleAssignment_5_1()); }
-	(rule__ChartAxis__AngleAssignment_5_1)
-	{ after(grammarAccess.getChartAxisAccess().getAngleAssignment_5_1()); }
+	{ before(grammarAccess.getChartAxisAccess().getLabelAngleAssignment_5_1()); }
+	(rule__ChartAxis__LabelAngleAssignment_5_1)
+	{ after(grammarAccess.getChartAxisAccess().getLabelAngleAssignment_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ChartAxis__Group_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group_6__0__Impl
+	rule__ChartAxis__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getLabelFontSizeKeyword_6_0()); }
+	'labelFontSize'
+	{ after(grammarAccess.getChartAxisAccess().getLabelFontSizeKeyword_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getLabelFontSizeAssignment_6_1()); }
+	(rule__ChartAxis__LabelFontSizeAssignment_6_1)
+	{ after(grammarAccess.getChartAxisAccess().getLabelFontSizeAssignment_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ChartAxis__Group_7__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group_7__0__Impl
+	rule__ChartAxis__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_7__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getLabelTextColorKeyword_7_0()); }
+	'labelTextColor'
+	{ after(grammarAccess.getChartAxisAccess().getLabelTextColorKeyword_7_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_7__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_7__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getLabelTextColorAssignment_7_1()); }
+	(rule__ChartAxis__LabelTextColorAssignment_7_1)
+	{ after(grammarAccess.getChartAxisAccess().getLabelTextColorAssignment_7_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ChartAxis__Group_8__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group_8__0__Impl
+	rule__ChartAxis__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_8__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getTickAngleKeyword_8_0()); }
+	'tickAngle'
+	{ after(grammarAccess.getChartAxisAccess().getTickAngleKeyword_8_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_8__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_8__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getTickAngleAssignment_8_1()); }
+	(rule__ChartAxis__TickAngleAssignment_8_1)
+	{ after(grammarAccess.getChartAxisAccess().getTickAngleAssignment_8_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ChartAxis__Group_9__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group_9__0__Impl
+	rule__ChartAxis__Group_9__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_9__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getTickFontSizeKeyword_9_0()); }
+	'tickFontSize'
+	{ after(grammarAccess.getChartAxisAccess().getTickFontSizeKeyword_9_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_9__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group_9__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_9__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getTickFontSizeAssignment_9_1()); }
+	(rule__ChartAxis__TickFontSizeAssignment_9_1)
+	{ after(grammarAccess.getChartAxisAccess().getTickFontSizeAssignment_9_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ChartAxis__Group_10__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group_10__0__Impl
+	rule__ChartAxis__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_10__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getTickTextColorKeyword_10_0()); }
+	'tickTextColor'
+	{ after(grammarAccess.getChartAxisAccess().getTickTextColorKeyword_10_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_10__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ChartAxis__Group_10__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__Group_10__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getChartAxisAccess().getTickTextColorAssignment_10_1()); }
+	(rule__ChartAxis__TickTextColorAssignment_10_1)
+	{ after(grammarAccess.getChartAxisAccess().getTickTextColorAssignment_10_1()); }
 )
 ;
 finally {
@@ -20220,15 +21230,79 @@
 	restoreStackSize(stackSize);
 }
 
-rule__ChartPackage__ChartsAssignment_3_1
+rule__ChartPackage__HasColorsAssignment_3_0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_3_1_0()); }
+		{ before(grammarAccess.getChartPackageAccess().getHasColorsSeriesColorsKeyword_3_0_0()); }
+		(
+			{ before(grammarAccess.getChartPackageAccess().getHasColorsSeriesColorsKeyword_3_0_0()); }
+			'seriesColors'
+			{ after(grammarAccess.getChartPackageAccess().getHasColorsSeriesColorsKeyword_3_0_0()); }
+		)
+		{ after(grammarAccess.getChartPackageAccess().getHasColorsSeriesColorsKeyword_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__ColorsAssignment_3_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getChartPackageAccess().getColorsSeriesColorParserRuleCall_3_2_0()); }
+		ruleSeriesColor
+		{ after(grammarAccess.getChartPackageAccess().getColorsSeriesColorParserRuleCall_3_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__DefaultFontFamilyAssignment_4_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getChartPackageAccess().getDefaultFontFamilyCanvasFontFamilyEnumEnumRuleCall_4_1_0()); }
+		ruleCanvasFontFamilyEnum
+		{ after(grammarAccess.getChartPackageAccess().getDefaultFontFamilyCanvasFontFamilyEnumEnumRuleCall_4_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartPackage__ChartsAssignment_5_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_5_1_0()); }
 		ruleChart
-		{ after(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_3_1_0()); }
+		{ after(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_5_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SeriesColor__RgbAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSeriesColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getSeriesColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); }
 	)
 ;
 finally {
@@ -20890,68 +21964,117 @@
 	restoreStackSize(stackSize);
 }
 
-rule__ChartLegend__PlacementAssignment_1
+rule__ChartLegend__NoLegendAssignment_2
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_1_0()); }
+		{ before(grammarAccess.getChartLegendAccess().getNoLegendNoLegendKeyword_2_0()); }
+		(
+			{ before(grammarAccess.getChartLegendAccess().getNoLegendNoLegendKeyword_2_0()); }
+			'noLegend'
+			{ after(grammarAccess.getChartLegendAccess().getNoLegendNoLegendKeyword_2_0()); }
+		)
+		{ after(grammarAccess.getChartLegendAccess().getNoLegendNoLegendKeyword_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__PlacementAssignment_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_3_0_0()); }
 		ruleLegendPlacementEnum
-		{ after(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_1_0()); }
+		{ after(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_3_0_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ChartLegend__ToggleAssignment_2_0
+rule__ChartLegend__ToggleAssignment_3_1_0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_2_0_0()); }
+		{ before(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_3_1_0_0()); }
 		(
-			{ before(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_2_0_0()); }
+			{ before(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_3_1_0_0()); }
 			'toggle'
-			{ after(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_2_0_0()); }
+			{ after(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_3_1_0_0()); }
 		)
-		{ after(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_2_0_0()); }
+		{ after(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_3_1_0_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ChartLegend__ReplotAssignment_2_1
+rule__ChartLegend__ReplotAssignment_3_1_1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_2_1_0()); }
+		{ before(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_3_1_1_0()); }
 		(
-			{ before(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_2_1_0()); }
+			{ before(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_3_1_1_0()); }
 			'replot'
-			{ after(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_2_1_0()); }
+			{ after(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_3_1_1_0()); }
 		)
-		{ after(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_2_1_0()); }
+		{ after(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_3_1_1_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ChartLegend__ToggleTypeAssignment_2_2
+rule__ChartLegend__ToggleTypeAssignment_3_1_2
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_2_2_0()); }
+		{ before(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_3_1_2_0()); }
 		ruleToggleTypeEnum
-		{ after(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_2_2_0()); }
+		{ after(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_3_1_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__FontSizeAssignment_4_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getChartLegendAccess().getFontSizeINTTerminalRuleCall_4_1_0()); }
+		RULE_INT
+		{ after(grammarAccess.getChartLegendAccess().getFontSizeINTTerminalRuleCall_4_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartLegend__TextColorAssignment_5_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getChartLegendAccess().getTextColorSTRINGTerminalRuleCall_5_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getChartLegendAccess().getTextColorSTRINGTerminalRuleCall_5_1_0()); }
 	)
 ;
 finally {
@@ -21064,15 +22187,90 @@
 	restoreStackSize(stackSize);
 }
 
-rule__ChartAxis__AngleAssignment_5_1
+rule__ChartAxis__LabelAngleAssignment_5_1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getChartAxisAccess().getAngleSignedNumberParserRuleCall_5_1_0()); }
+		{ before(grammarAccess.getChartAxisAccess().getLabelAngleSignedNumberParserRuleCall_5_1_0()); }
 		ruleSignedNumber
-		{ after(grammarAccess.getChartAxisAccess().getAngleSignedNumberParserRuleCall_5_1_0()); }
+		{ after(grammarAccess.getChartAxisAccess().getLabelAngleSignedNumberParserRuleCall_5_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__LabelFontSizeAssignment_6_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getChartAxisAccess().getLabelFontSizeINTTerminalRuleCall_6_1_0()); }
+		RULE_INT
+		{ after(grammarAccess.getChartAxisAccess().getLabelFontSizeINTTerminalRuleCall_6_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__LabelTextColorAssignment_7_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getChartAxisAccess().getLabelTextColorSTRINGTerminalRuleCall_7_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getChartAxisAccess().getLabelTextColorSTRINGTerminalRuleCall_7_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__TickAngleAssignment_8_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getChartAxisAccess().getTickAngleSignedNumberParserRuleCall_8_1_0()); }
+		ruleSignedNumber
+		{ after(grammarAccess.getChartAxisAccess().getTickAngleSignedNumberParserRuleCall_8_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__TickFontSizeAssignment_9_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getChartAxisAccess().getTickFontSizeINTTerminalRuleCall_9_1_0()); }
+		RULE_INT
+		{ after(grammarAccess.getChartAxisAccess().getTickFontSizeINTTerminalRuleCall_9_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ChartAxis__TickTextColorAssignment_10_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getChartAxisAccess().getTickTextColorSTRINGTerminalRuleCall_10_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getChartAxisAccess().getTickTextColorSTRINGTerminalRuleCall_10_1_0()); }
 	)
 ;
 finally {
diff --git a/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSL.tokens b/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSL.tokens
index fe054ac..eb34c2e 100644
--- a/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSL.tokens
+++ b/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSL.tokens
@@ -1,20 +1,20 @@
 '!'=40
 '!='=22
 '!=='=24
-'#'=101
+'#'=116
 '%'=39
 '%='=20
 '&&'=15
-'&'=123
-'('=97
-')'=98
+'&'=138
+'('=112
+')'=113
 '*'=36
 '**'=37
 '*='=18
 '+'=34
 '++'=41
 '+='=16
-','=99
+','=114
 '-'=35
 '--'=42
 '-='=17
@@ -24,9 +24,9 @@
 '..<'=29
 '/'=38
 '/='=19
-':'=107
-'::'=150
-';'=95
+':'=122
+'::'=167
+';'=110
 '<'=27
 '<>'=32
 '='=13
@@ -35,111 +35,128 @@
 '=>'=31
 '>'=26
 '>='=25
-'?'=122
-'?.'=151
+'?'=137
+'?.'=168
 '?:'=33
-'@'=96
-'['=102
-']'=100
-'always'=147
-'angle'=93
-'animated'=127
-'as'=75
-'axis'=91
-'bar'=78
-'bubble'=82
-'case'=109
-'catch'=121
+'@'=111
+'Arial'=72
+'Courier New'=75
+'Default'=71
+'Times New Roman'=74
+'Verdana'=73
+'['=117
+']'=115
+'always'=164
+'animated'=143
+'as'=83
+'axis'=101
+'bar'=86
+'bubble'=90
+'case'=124
+'catch'=136
 'category'=66
-'chart'=74
-'collapsible'=144
-'cursor'=132
-'datamart'=88
+'chart'=82
+'collapsible'=160
+'cursor'=148
+'datamart'=96
 'date'=68
-'default'=108
-'describedBy'=124
-'do'=112
-'donut'=81
+'default'=123
+'describedBy'=140
+'do'=127
+'donut'=89
 'east'=60
-'else'=105
-'empty'=136
+'else'=120
+'empty'=152
 'extends'=45
 'extension'=48
 'false'=50
 'fast'=57
-'fillZero'=134
-'filled'=135
-'finally'=119
-'for'=110
-'gauge'=83
-'gradient'=138
-'hasTicks'=141
-'if'=104
+'fillZero'=150
+'filled'=151
+'finally'=134
+'fontFamily'=81
+'fontSize'=98
+'for'=125
+'gauge'=91
+'gradient'=154
+'hasTicks'=157
+'if'=119
 'import'=47
 'inside'=51
 'inside-grid'=52
-'instanceof'=103
-'intervals'=142
-'label'=140
-'legend'=89
-'line'=79
+'instanceof'=118
+'intervals'=158
+'label'=156
+'labelAngle'=103
+'labelFontSize'=104
+'labelTextColor'=105
+'legend'=97
+'line'=87
 'linear'=67
 'logarithmic'=69
-'map'=143
-'maximum'=85
-'minimum'=84
-'multiplier'=137
-'new'=113
+'map'=159
+'maximum'=93
+'minimum'=92
+'multiplier'=153
+'new'=128
+'noLegend'=161
 'normal'=55
 'north'=58
 'north-east'=59
 'north-west'=65
-'ns'=149
-'null'=114
+'ns'=166
+'null'=129
 'outside'=53
 'outside-grid'=54
-'package'=71
-'pie'=80
+'package'=78
+'pie'=88
 'pyramid'=70
-'renders'=92
-'replot'=146
-'return'=117
-'segmentcolor'=94
-'selectById'=125
-'shaded'=126
-'shortLabel'=148
-'showMarker'=130
+'renders'=102
+'replot'=163
+'return'=132
+'sans-serif'=77
+'segmentcolor'=109
+'selectById'=141
+'seriesColors'=139
+'serif'=76
+'shaded'=142
+'shortLabel'=165
+'showMarker'=146
 'slow'=56
 'south'=62
 'south-east'=61
 'south-west'=63
-'stacked'=129
+'stacked'=145
 'static'=46
 'super'=49
-'swapped'=128
-'switch'=106
-'synchronized'=120
-'throw'=116
-'toggle'=145
-'toolbar'=76
-'tooltip'=90
-'transparent'=139
-'tree'=86
-'trendLine'=131
-'true'=154
-'try'=118
-'typeof'=115
-'upTo'=87
-'using'=77
+'swapped'=144
+'switch'=121
+'synchronized'=135
+'textColor'=99
+'throw'=131
+'tickAngle'=106
+'tickFontSize'=107
+'tickTextColor'=108
+'toggle'=162
+'toolbar'=84
+'tooltip'=100
+'transparent'=155
+'tree'=94
+'trendLine'=147
+'true'=171
+'try'=133
+'typeof'=130
+'upTo'=95
+'using'=85
 'val'=44
-'var'=153
+'var'=170
 'west'=64
-'while'=111
-'zoom'=133
-'{'=72
-'|'=152
+'while'=126
+'zoom'=149
+'{'=79
+'|'=169
 '||'=14
-'}'=73
+'}'=80
 RULE_ANY_OTHER=12
 RULE_DECIMAL=8
 RULE_HEX=6
@@ -206,8 +223,25 @@
 T__152=152
 T__153=153
 T__154=154
+T__155=155
+T__156=156
+T__157=157
+T__158=158
+T__159=159
 T__15=15
+T__160=160
+T__161=161
+T__162=162
+T__163=163
+T__164=164
+T__165=165
+T__166=166
+T__167=167
+T__168=168
+T__169=169
 T__16=16
+T__170=170
+T__171=171
 T__17=17
 T__18=18
 T__19=19
diff --git a/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSLLexer.java b/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSLLexer.java
index 24621f9..98f96b6 100644
--- a/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSLLexer.java
+++ b/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSLLexer.java
@@ -58,6 +58,15 @@
     public static final int T__128=128;
     public static final int T__65=65;
     public static final int T__127=127;
+    public static final int T__166=166;
+    public static final int T__165=165;
+    public static final int T__168=168;
+    public static final int T__167=167;
+    public static final int T__162=162;
+    public static final int T__161=161;
+    public static final int T__164=164;
+    public static final int T__163=163;
+    public static final int T__160=160;
     public static final int T__37=37;
     public static final int T__38=38;
     public static final int T__39=39;
@@ -65,10 +74,15 @@
     public static final int T__34=34;
     public static final int T__35=35;
     public static final int T__36=36;
+    public static final int T__159=159;
     public static final int T__30=30;
+    public static final int T__158=158;
     public static final int T__31=31;
     public static final int T__32=32;
+    public static final int T__155=155;
     public static final int T__154=154;
+    public static final int T__157=157;
+    public static final int T__156=156;
     public static final int T__151=151;
     public static final int T__150=150;
     public static final int T__153=153;
@@ -106,6 +120,8 @@
     public static final int T__96=96;
     public static final int T__97=97;
     public static final int T__98=98;
+    public static final int T__171=171;
+    public static final int T__170=170;
     public static final int RULE_DECIMAL=8;
     public static final int T__26=26;
     public static final int T__27=27;
@@ -115,6 +131,7 @@
     public static final int T__23=23;
     public static final int T__24=24;
     public static final int T__25=25;
+    public static final int T__169=169;
     public static final int T__20=20;
     public static final int T__21=21;
     public static final int T__122=122;
@@ -1391,10 +1408,10 @@
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:69:7: ( 'package' )
-            // InternalChartDSL.g:69:9: 'package'
+            // InternalChartDSL.g:69:7: ( 'Default' )
+            // InternalChartDSL.g:69:9: 'Default'
             {
-            match("package"); 
+            match("Default"); 
 
 
             }
@@ -1412,10 +1429,11 @@
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:70:7: ( '{' )
-            // InternalChartDSL.g:70:9: '{'
+            // InternalChartDSL.g:70:7: ( 'Arial' )
+            // InternalChartDSL.g:70:9: 'Arial'
             {
-            match('{'); 
+            match("Arial"); 
+
 
             }
 
@@ -1432,10 +1450,11 @@
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:71:7: ( '}' )
-            // InternalChartDSL.g:71:9: '}'
+            // InternalChartDSL.g:71:7: ( 'Verdana' )
+            // InternalChartDSL.g:71:9: 'Verdana'
             {
-            match('}'); 
+            match("Verdana"); 
+
 
             }
 
@@ -1452,10 +1471,10 @@
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:72:7: ( 'chart' )
-            // InternalChartDSL.g:72:9: 'chart'
+            // InternalChartDSL.g:72:7: ( 'Times New Roman' )
+            // InternalChartDSL.g:72:9: 'Times New Roman'
             {
-            match("chart"); 
+            match("Times New Roman"); 
 
 
             }
@@ -1473,10 +1492,10 @@
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:73:7: ( 'as' )
-            // InternalChartDSL.g:73:9: 'as'
+            // InternalChartDSL.g:73:7: ( 'Courier New' )
+            // InternalChartDSL.g:73:9: 'Courier New'
             {
-            match("as"); 
+            match("Courier New"); 
 
 
             }
@@ -1494,10 +1513,10 @@
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:74:7: ( 'toolbar' )
-            // InternalChartDSL.g:74:9: 'toolbar'
+            // InternalChartDSL.g:74:7: ( 'serif' )
+            // InternalChartDSL.g:74:9: 'serif'
             {
-            match("toolbar"); 
+            match("serif"); 
 
 
             }
@@ -1515,10 +1534,10 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:75:7: ( 'using' )
-            // InternalChartDSL.g:75:9: 'using'
+            // InternalChartDSL.g:75:7: ( 'sans-serif' )
+            // InternalChartDSL.g:75:9: 'sans-serif'
             {
-            match("using"); 
+            match("sans-serif"); 
 
 
             }
@@ -1536,10 +1555,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:76:7: ( 'bar' )
-            // InternalChartDSL.g:76:9: 'bar'
+            // InternalChartDSL.g:76:7: ( 'package' )
+            // InternalChartDSL.g:76:9: 'package'
             {
-            match("bar"); 
+            match("package"); 
 
 
             }
@@ -1557,11 +1576,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:77:7: ( 'line' )
-            // InternalChartDSL.g:77:9: 'line'
+            // InternalChartDSL.g:77:7: ( '{' )
+            // InternalChartDSL.g:77:9: '{'
             {
-            match("line"); 
-
+            match('{'); 
 
             }
 
@@ -1578,11 +1596,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:78:7: ( 'pie' )
-            // InternalChartDSL.g:78:9: 'pie'
+            // InternalChartDSL.g:78:7: ( '}' )
+            // InternalChartDSL.g:78:9: '}'
             {
-            match("pie"); 
-
+            match('}'); 
 
             }
 
@@ -1599,10 +1616,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:79:7: ( 'donut' )
-            // InternalChartDSL.g:79:9: 'donut'
+            // InternalChartDSL.g:79:7: ( 'fontFamily' )
+            // InternalChartDSL.g:79:9: 'fontFamily'
             {
-            match("donut"); 
+            match("fontFamily"); 
 
 
             }
@@ -1620,10 +1637,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:80:7: ( 'bubble' )
-            // InternalChartDSL.g:80:9: 'bubble'
+            // InternalChartDSL.g:80:7: ( 'chart' )
+            // InternalChartDSL.g:80:9: 'chart'
             {
-            match("bubble"); 
+            match("chart"); 
 
 
             }
@@ -1641,10 +1658,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:81:7: ( 'gauge' )
-            // InternalChartDSL.g:81:9: 'gauge'
+            // InternalChartDSL.g:81:7: ( 'as' )
+            // InternalChartDSL.g:81:9: 'as'
             {
-            match("gauge"); 
+            match("as"); 
 
 
             }
@@ -1662,10 +1679,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:82:7: ( 'minimum' )
-            // InternalChartDSL.g:82:9: 'minimum'
+            // InternalChartDSL.g:82:7: ( 'toolbar' )
+            // InternalChartDSL.g:82:9: 'toolbar'
             {
-            match("minimum"); 
+            match("toolbar"); 
 
 
             }
@@ -1683,10 +1700,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:83:7: ( 'maximum' )
-            // InternalChartDSL.g:83:9: 'maximum'
+            // InternalChartDSL.g:83:7: ( 'using' )
+            // InternalChartDSL.g:83:9: 'using'
             {
-            match("maximum"); 
+            match("using"); 
 
 
             }
@@ -1704,10 +1721,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:84:7: ( 'tree' )
-            // InternalChartDSL.g:84:9: 'tree'
+            // InternalChartDSL.g:84:7: ( 'bar' )
+            // InternalChartDSL.g:84:9: 'bar'
             {
-            match("tree"); 
+            match("bar"); 
 
 
             }
@@ -1725,10 +1742,10 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:85:7: ( 'upTo' )
-            // InternalChartDSL.g:85:9: 'upTo'
+            // InternalChartDSL.g:85:7: ( 'line' )
+            // InternalChartDSL.g:85:9: 'line'
             {
-            match("upTo"); 
+            match("line"); 
 
 
             }
@@ -1746,10 +1763,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:86:7: ( 'datamart' )
-            // InternalChartDSL.g:86:9: 'datamart'
+            // InternalChartDSL.g:86:7: ( 'pie' )
+            // InternalChartDSL.g:86:9: 'pie'
             {
-            match("datamart"); 
+            match("pie"); 
 
 
             }
@@ -1767,10 +1784,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:87:7: ( 'legend' )
-            // InternalChartDSL.g:87:9: 'legend'
+            // InternalChartDSL.g:87:7: ( 'donut' )
+            // InternalChartDSL.g:87:9: 'donut'
             {
-            match("legend"); 
+            match("donut"); 
 
 
             }
@@ -1788,10 +1805,10 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:88:7: ( 'tooltip' )
-            // InternalChartDSL.g:88:9: 'tooltip'
+            // InternalChartDSL.g:88:7: ( 'bubble' )
+            // InternalChartDSL.g:88:9: 'bubble'
             {
-            match("tooltip"); 
+            match("bubble"); 
 
 
             }
@@ -1809,10 +1826,10 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:89:7: ( 'axis' )
-            // InternalChartDSL.g:89:9: 'axis'
+            // InternalChartDSL.g:89:7: ( 'gauge' )
+            // InternalChartDSL.g:89:9: 'gauge'
             {
-            match("axis"); 
+            match("gauge"); 
 
 
             }
@@ -1830,10 +1847,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:90:7: ( 'renders' )
-            // InternalChartDSL.g:90:9: 'renders'
+            // InternalChartDSL.g:90:7: ( 'minimum' )
+            // InternalChartDSL.g:90:9: 'minimum'
             {
-            match("renders"); 
+            match("minimum"); 
 
 
             }
@@ -1851,10 +1868,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:91:7: ( 'angle' )
-            // InternalChartDSL.g:91:9: 'angle'
+            // InternalChartDSL.g:91:7: ( 'maximum' )
+            // InternalChartDSL.g:91:9: 'maximum'
             {
-            match("angle"); 
+            match("maximum"); 
 
 
             }
@@ -1872,10 +1889,10 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:92:7: ( 'segmentcolor' )
-            // InternalChartDSL.g:92:9: 'segmentcolor'
+            // InternalChartDSL.g:92:7: ( 'tree' )
+            // InternalChartDSL.g:92:9: 'tree'
             {
-            match("segmentcolor"); 
+            match("tree"); 
 
 
             }
@@ -1893,10 +1910,11 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:93:7: ( ';' )
-            // InternalChartDSL.g:93:9: ';'
+            // InternalChartDSL.g:93:7: ( 'upTo' )
+            // InternalChartDSL.g:93:9: 'upTo'
             {
-            match(';'); 
+            match("upTo"); 
+
 
             }
 
@@ -1913,10 +1931,11 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:94:7: ( '@' )
-            // InternalChartDSL.g:94:9: '@'
+            // InternalChartDSL.g:94:7: ( 'datamart' )
+            // InternalChartDSL.g:94:9: 'datamart'
             {
-            match('@'); 
+            match("datamart"); 
+
 
             }
 
@@ -1933,10 +1952,11 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:95:7: ( '(' )
-            // InternalChartDSL.g:95:9: '('
+            // InternalChartDSL.g:95:7: ( 'legend' )
+            // InternalChartDSL.g:95:9: 'legend'
             {
-            match('('); 
+            match("legend"); 
+
 
             }
 
@@ -1953,10 +1973,11 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:96:7: ( ')' )
-            // InternalChartDSL.g:96:9: ')'
+            // InternalChartDSL.g:96:7: ( 'fontSize' )
+            // InternalChartDSL.g:96:9: 'fontSize'
             {
-            match(')'); 
+            match("fontSize"); 
+
 
             }
 
@@ -1973,10 +1994,11 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:97:7: ( ',' )
-            // InternalChartDSL.g:97:9: ','
+            // InternalChartDSL.g:97:7: ( 'textColor' )
+            // InternalChartDSL.g:97:9: 'textColor'
             {
-            match(','); 
+            match("textColor"); 
+
 
             }
 
@@ -1993,10 +2015,11 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:98:8: ( ']' )
-            // InternalChartDSL.g:98:10: ']'
+            // InternalChartDSL.g:98:8: ( 'tooltip' )
+            // InternalChartDSL.g:98:10: 'tooltip'
             {
-            match(']'); 
+            match("tooltip"); 
+
 
             }
 
@@ -2013,10 +2036,11 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:99:8: ( '#' )
-            // InternalChartDSL.g:99:10: '#'
+            // InternalChartDSL.g:99:8: ( 'axis' )
+            // InternalChartDSL.g:99:10: 'axis'
             {
-            match('#'); 
+            match("axis"); 
+
 
             }
 
@@ -2033,10 +2057,11 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:100:8: ( '[' )
-            // InternalChartDSL.g:100:10: '['
+            // InternalChartDSL.g:100:8: ( 'renders' )
+            // InternalChartDSL.g:100:10: 'renders'
             {
-            match('['); 
+            match("renders"); 
+
 
             }
 
@@ -2053,10 +2078,10 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:101:8: ( 'instanceof' )
-            // InternalChartDSL.g:101:10: 'instanceof'
+            // InternalChartDSL.g:101:8: ( 'labelAngle' )
+            // InternalChartDSL.g:101:10: 'labelAngle'
             {
-            match("instanceof"); 
+            match("labelAngle"); 
 
 
             }
@@ -2074,10 +2099,10 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:102:8: ( 'if' )
-            // InternalChartDSL.g:102:10: 'if'
+            // InternalChartDSL.g:102:8: ( 'labelFontSize' )
+            // InternalChartDSL.g:102:10: 'labelFontSize'
             {
-            match("if"); 
+            match("labelFontSize"); 
 
 
             }
@@ -2095,10 +2120,10 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:103:8: ( 'else' )
-            // InternalChartDSL.g:103:10: 'else'
+            // InternalChartDSL.g:103:8: ( 'labelTextColor' )
+            // InternalChartDSL.g:103:10: 'labelTextColor'
             {
-            match("else"); 
+            match("labelTextColor"); 
 
 
             }
@@ -2116,10 +2141,10 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:104:8: ( 'switch' )
-            // InternalChartDSL.g:104:10: 'switch'
+            // InternalChartDSL.g:104:8: ( 'tickAngle' )
+            // InternalChartDSL.g:104:10: 'tickAngle'
             {
-            match("switch"); 
+            match("tickAngle"); 
 
 
             }
@@ -2137,10 +2162,11 @@
         try {
             int _type = T__107;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:105:8: ( ':' )
-            // InternalChartDSL.g:105:10: ':'
+            // InternalChartDSL.g:105:8: ( 'tickFontSize' )
+            // InternalChartDSL.g:105:10: 'tickFontSize'
             {
-            match(':'); 
+            match("tickFontSize"); 
+
 
             }
 
@@ -2157,10 +2183,10 @@
         try {
             int _type = T__108;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:106:8: ( 'default' )
-            // InternalChartDSL.g:106:10: 'default'
+            // InternalChartDSL.g:106:8: ( 'tickTextColor' )
+            // InternalChartDSL.g:106:10: 'tickTextColor'
             {
-            match("default"); 
+            match("tickTextColor"); 
 
 
             }
@@ -2178,10 +2204,10 @@
         try {
             int _type = T__109;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:107:8: ( 'case' )
-            // InternalChartDSL.g:107:10: 'case'
+            // InternalChartDSL.g:107:8: ( 'segmentcolor' )
+            // InternalChartDSL.g:107:10: 'segmentcolor'
             {
-            match("case"); 
+            match("segmentcolor"); 
 
 
             }
@@ -2199,11 +2225,10 @@
         try {
             int _type = T__110;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:108:8: ( 'for' )
-            // InternalChartDSL.g:108:10: 'for'
+            // InternalChartDSL.g:108:8: ( ';' )
+            // InternalChartDSL.g:108:10: ';'
             {
-            match("for"); 
-
+            match(';'); 
 
             }
 
@@ -2220,11 +2245,10 @@
         try {
             int _type = T__111;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:109:8: ( 'while' )
-            // InternalChartDSL.g:109:10: 'while'
+            // InternalChartDSL.g:109:8: ( '@' )
+            // InternalChartDSL.g:109:10: '@'
             {
-            match("while"); 
-
+            match('@'); 
 
             }
 
@@ -2241,11 +2265,10 @@
         try {
             int _type = T__112;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:110:8: ( 'do' )
-            // InternalChartDSL.g:110:10: 'do'
+            // InternalChartDSL.g:110:8: ( '(' )
+            // InternalChartDSL.g:110:10: '('
             {
-            match("do"); 
-
+            match('('); 
 
             }
 
@@ -2262,11 +2285,10 @@
         try {
             int _type = T__113;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:111:8: ( 'new' )
-            // InternalChartDSL.g:111:10: 'new'
+            // InternalChartDSL.g:111:8: ( ')' )
+            // InternalChartDSL.g:111:10: ')'
             {
-            match("new"); 
-
+            match(')'); 
 
             }
 
@@ -2283,11 +2305,10 @@
         try {
             int _type = T__114;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:112:8: ( 'null' )
-            // InternalChartDSL.g:112:10: 'null'
+            // InternalChartDSL.g:112:8: ( ',' )
+            // InternalChartDSL.g:112:10: ','
             {
-            match("null"); 
-
+            match(','); 
 
             }
 
@@ -2304,11 +2325,10 @@
         try {
             int _type = T__115;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:113:8: ( 'typeof' )
-            // InternalChartDSL.g:113:10: 'typeof'
+            // InternalChartDSL.g:113:8: ( ']' )
+            // InternalChartDSL.g:113:10: ']'
             {
-            match("typeof"); 
-
+            match(']'); 
 
             }
 
@@ -2325,11 +2345,10 @@
         try {
             int _type = T__116;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:114:8: ( 'throw' )
-            // InternalChartDSL.g:114:10: 'throw'
+            // InternalChartDSL.g:114:8: ( '#' )
+            // InternalChartDSL.g:114:10: '#'
             {
-            match("throw"); 
-
+            match('#'); 
 
             }
 
@@ -2346,11 +2365,10 @@
         try {
             int _type = T__117;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:115:8: ( 'return' )
-            // InternalChartDSL.g:115:10: 'return'
+            // InternalChartDSL.g:115:8: ( '[' )
+            // InternalChartDSL.g:115:10: '['
             {
-            match("return"); 
-
+            match('['); 
 
             }
 
@@ -2367,10 +2385,10 @@
         try {
             int _type = T__118;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:116:8: ( 'try' )
-            // InternalChartDSL.g:116:10: 'try'
+            // InternalChartDSL.g:116:8: ( 'instanceof' )
+            // InternalChartDSL.g:116:10: 'instanceof'
             {
-            match("try"); 
+            match("instanceof"); 
 
 
             }
@@ -2388,10 +2406,10 @@
         try {
             int _type = T__119;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:117:8: ( 'finally' )
-            // InternalChartDSL.g:117:10: 'finally'
+            // InternalChartDSL.g:117:8: ( 'if' )
+            // InternalChartDSL.g:117:10: 'if'
             {
-            match("finally"); 
+            match("if"); 
 
 
             }
@@ -2409,10 +2427,10 @@
         try {
             int _type = T__120;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:118:8: ( 'synchronized' )
-            // InternalChartDSL.g:118:10: 'synchronized'
+            // InternalChartDSL.g:118:8: ( 'else' )
+            // InternalChartDSL.g:118:10: 'else'
             {
-            match("synchronized"); 
+            match("else"); 
 
 
             }
@@ -2430,10 +2448,10 @@
         try {
             int _type = T__121;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:119:8: ( 'catch' )
-            // InternalChartDSL.g:119:10: 'catch'
+            // InternalChartDSL.g:119:8: ( 'switch' )
+            // InternalChartDSL.g:119:10: 'switch'
             {
-            match("catch"); 
+            match("switch"); 
 
 
             }
@@ -2451,10 +2469,10 @@
         try {
             int _type = T__122;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:120:8: ( '?' )
-            // InternalChartDSL.g:120:10: '?'
+            // InternalChartDSL.g:120:8: ( ':' )
+            // InternalChartDSL.g:120:10: ':'
             {
-            match('?'); 
+            match(':'); 
 
             }
 
@@ -2471,10 +2489,11 @@
         try {
             int _type = T__123;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:121:8: ( '&' )
-            // InternalChartDSL.g:121:10: '&'
+            // InternalChartDSL.g:121:8: ( 'default' )
+            // InternalChartDSL.g:121:10: 'default'
             {
-            match('&'); 
+            match("default"); 
+
 
             }
 
@@ -2491,10 +2510,10 @@
         try {
             int _type = T__124;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:122:8: ( 'describedBy' )
-            // InternalChartDSL.g:122:10: 'describedBy'
+            // InternalChartDSL.g:122:8: ( 'case' )
+            // InternalChartDSL.g:122:10: 'case'
             {
-            match("describedBy"); 
+            match("case"); 
 
 
             }
@@ -2512,10 +2531,10 @@
         try {
             int _type = T__125;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:123:8: ( 'selectById' )
-            // InternalChartDSL.g:123:10: 'selectById'
+            // InternalChartDSL.g:123:8: ( 'for' )
+            // InternalChartDSL.g:123:10: 'for'
             {
-            match("selectById"); 
+            match("for"); 
 
 
             }
@@ -2533,10 +2552,10 @@
         try {
             int _type = T__126;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:124:8: ( 'shaded' )
-            // InternalChartDSL.g:124:10: 'shaded'
+            // InternalChartDSL.g:124:8: ( 'while' )
+            // InternalChartDSL.g:124:10: 'while'
             {
-            match("shaded"); 
+            match("while"); 
 
 
             }
@@ -2554,10 +2573,10 @@
         try {
             int _type = T__127;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:125:8: ( 'animated' )
-            // InternalChartDSL.g:125:10: 'animated'
+            // InternalChartDSL.g:125:8: ( 'do' )
+            // InternalChartDSL.g:125:10: 'do'
             {
-            match("animated"); 
+            match("do"); 
 
 
             }
@@ -2575,10 +2594,10 @@
         try {
             int _type = T__128;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:126:8: ( 'swapped' )
-            // InternalChartDSL.g:126:10: 'swapped'
+            // InternalChartDSL.g:126:8: ( 'new' )
+            // InternalChartDSL.g:126:10: 'new'
             {
-            match("swapped"); 
+            match("new"); 
 
 
             }
@@ -2596,10 +2615,10 @@
         try {
             int _type = T__129;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:127:8: ( 'stacked' )
-            // InternalChartDSL.g:127:10: 'stacked'
+            // InternalChartDSL.g:127:8: ( 'null' )
+            // InternalChartDSL.g:127:10: 'null'
             {
-            match("stacked"); 
+            match("null"); 
 
 
             }
@@ -2617,10 +2636,10 @@
         try {
             int _type = T__130;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:128:8: ( 'showMarker' )
-            // InternalChartDSL.g:128:10: 'showMarker'
+            // InternalChartDSL.g:128:8: ( 'typeof' )
+            // InternalChartDSL.g:128:10: 'typeof'
             {
-            match("showMarker"); 
+            match("typeof"); 
 
 
             }
@@ -2638,10 +2657,10 @@
         try {
             int _type = T__131;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:129:8: ( 'trendLine' )
-            // InternalChartDSL.g:129:10: 'trendLine'
+            // InternalChartDSL.g:129:8: ( 'throw' )
+            // InternalChartDSL.g:129:10: 'throw'
             {
-            match("trendLine"); 
+            match("throw"); 
 
 
             }
@@ -2659,10 +2678,10 @@
         try {
             int _type = T__132;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:130:8: ( 'cursor' )
-            // InternalChartDSL.g:130:10: 'cursor'
+            // InternalChartDSL.g:130:8: ( 'return' )
+            // InternalChartDSL.g:130:10: 'return'
             {
-            match("cursor"); 
+            match("return"); 
 
 
             }
@@ -2680,10 +2699,10 @@
         try {
             int _type = T__133;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:131:8: ( 'zoom' )
-            // InternalChartDSL.g:131:10: 'zoom'
+            // InternalChartDSL.g:131:8: ( 'try' )
+            // InternalChartDSL.g:131:10: 'try'
             {
-            match("zoom"); 
+            match("try"); 
 
 
             }
@@ -2701,10 +2720,10 @@
         try {
             int _type = T__134;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:132:8: ( 'fillZero' )
-            // InternalChartDSL.g:132:10: 'fillZero'
+            // InternalChartDSL.g:132:8: ( 'finally' )
+            // InternalChartDSL.g:132:10: 'finally'
             {
-            match("fillZero"); 
+            match("finally"); 
 
 
             }
@@ -2722,10 +2741,10 @@
         try {
             int _type = T__135;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:133:8: ( 'filled' )
-            // InternalChartDSL.g:133:10: 'filled'
+            // InternalChartDSL.g:133:8: ( 'synchronized' )
+            // InternalChartDSL.g:133:10: 'synchronized'
             {
-            match("filled"); 
+            match("synchronized"); 
 
 
             }
@@ -2743,10 +2762,10 @@
         try {
             int _type = T__136;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:134:8: ( 'empty' )
-            // InternalChartDSL.g:134:10: 'empty'
+            // InternalChartDSL.g:134:8: ( 'catch' )
+            // InternalChartDSL.g:134:10: 'catch'
             {
-            match("empty"); 
+            match("catch"); 
 
 
             }
@@ -2764,11 +2783,10 @@
         try {
             int _type = T__137;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:135:8: ( 'multiplier' )
-            // InternalChartDSL.g:135:10: 'multiplier'
+            // InternalChartDSL.g:135:8: ( '?' )
+            // InternalChartDSL.g:135:10: '?'
             {
-            match("multiplier"); 
-
+            match('?'); 
 
             }
 
@@ -2785,11 +2803,10 @@
         try {
             int _type = T__138;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:136:8: ( 'gradient' )
-            // InternalChartDSL.g:136:10: 'gradient'
+            // InternalChartDSL.g:136:8: ( '&' )
+            // InternalChartDSL.g:136:10: '&'
             {
-            match("gradient"); 
-
+            match('&'); 
 
             }
 
@@ -2806,10 +2823,10 @@
         try {
             int _type = T__139;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:137:8: ( 'transparent' )
-            // InternalChartDSL.g:137:10: 'transparent'
+            // InternalChartDSL.g:137:8: ( 'seriesColors' )
+            // InternalChartDSL.g:137:10: 'seriesColors'
             {
-            match("transparent"); 
+            match("seriesColors"); 
 
 
             }
@@ -2827,10 +2844,10 @@
         try {
             int _type = T__140;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:138:8: ( 'label' )
-            // InternalChartDSL.g:138:10: 'label'
+            // InternalChartDSL.g:138:8: ( 'describedBy' )
+            // InternalChartDSL.g:138:10: 'describedBy'
             {
-            match("label"); 
+            match("describedBy"); 
 
 
             }
@@ -2848,10 +2865,10 @@
         try {
             int _type = T__141;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:139:8: ( 'hasTicks' )
-            // InternalChartDSL.g:139:10: 'hasTicks'
+            // InternalChartDSL.g:139:8: ( 'selectById' )
+            // InternalChartDSL.g:139:10: 'selectById'
             {
-            match("hasTicks"); 
+            match("selectById"); 
 
 
             }
@@ -2869,10 +2886,10 @@
         try {
             int _type = T__142;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:140:8: ( 'intervals' )
-            // InternalChartDSL.g:140:10: 'intervals'
+            // InternalChartDSL.g:140:8: ( 'shaded' )
+            // InternalChartDSL.g:140:10: 'shaded'
             {
-            match("intervals"); 
+            match("shaded"); 
 
 
             }
@@ -2890,10 +2907,10 @@
         try {
             int _type = T__143;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:141:8: ( 'map' )
-            // InternalChartDSL.g:141:10: 'map'
+            // InternalChartDSL.g:141:8: ( 'animated' )
+            // InternalChartDSL.g:141:10: 'animated'
             {
-            match("map"); 
+            match("animated"); 
 
 
             }
@@ -2911,10 +2928,10 @@
         try {
             int _type = T__144;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:142:8: ( 'collapsible' )
-            // InternalChartDSL.g:142:10: 'collapsible'
+            // InternalChartDSL.g:142:8: ( 'swapped' )
+            // InternalChartDSL.g:142:10: 'swapped'
             {
-            match("collapsible"); 
+            match("swapped"); 
 
 
             }
@@ -2932,10 +2949,10 @@
         try {
             int _type = T__145;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:143:8: ( 'toggle' )
-            // InternalChartDSL.g:143:10: 'toggle'
+            // InternalChartDSL.g:143:8: ( 'stacked' )
+            // InternalChartDSL.g:143:10: 'stacked'
             {
-            match("toggle"); 
+            match("stacked"); 
 
 
             }
@@ -2953,10 +2970,10 @@
         try {
             int _type = T__146;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:144:8: ( 'replot' )
-            // InternalChartDSL.g:144:10: 'replot'
+            // InternalChartDSL.g:144:8: ( 'showMarker' )
+            // InternalChartDSL.g:144:10: 'showMarker'
             {
-            match("replot"); 
+            match("showMarker"); 
 
 
             }
@@ -2974,10 +2991,10 @@
         try {
             int _type = T__147;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:145:8: ( 'always' )
-            // InternalChartDSL.g:145:10: 'always'
+            // InternalChartDSL.g:145:8: ( 'trendLine' )
+            // InternalChartDSL.g:145:10: 'trendLine'
             {
-            match("always"); 
+            match("trendLine"); 
 
 
             }
@@ -2995,10 +3012,10 @@
         try {
             int _type = T__148;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:146:8: ( 'shortLabel' )
-            // InternalChartDSL.g:146:10: 'shortLabel'
+            // InternalChartDSL.g:146:8: ( 'cursor' )
+            // InternalChartDSL.g:146:10: 'cursor'
             {
-            match("shortLabel"); 
+            match("cursor"); 
 
 
             }
@@ -3016,10 +3033,10 @@
         try {
             int _type = T__149;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:147:8: ( 'ns' )
-            // InternalChartDSL.g:147:10: 'ns'
+            // InternalChartDSL.g:147:8: ( 'zoom' )
+            // InternalChartDSL.g:147:10: 'zoom'
             {
-            match("ns"); 
+            match("zoom"); 
 
 
             }
@@ -3037,10 +3054,10 @@
         try {
             int _type = T__150;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:148:8: ( '::' )
-            // InternalChartDSL.g:148:10: '::'
+            // InternalChartDSL.g:148:8: ( 'fillZero' )
+            // InternalChartDSL.g:148:10: 'fillZero'
             {
-            match("::"); 
+            match("fillZero"); 
 
 
             }
@@ -3058,10 +3075,10 @@
         try {
             int _type = T__151;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:149:8: ( '?.' )
-            // InternalChartDSL.g:149:10: '?.'
+            // InternalChartDSL.g:149:8: ( 'filled' )
+            // InternalChartDSL.g:149:10: 'filled'
             {
-            match("?."); 
+            match("filled"); 
 
 
             }
@@ -3079,10 +3096,11 @@
         try {
             int _type = T__152;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:150:8: ( '|' )
-            // InternalChartDSL.g:150:10: '|'
+            // InternalChartDSL.g:150:8: ( 'empty' )
+            // InternalChartDSL.g:150:10: 'empty'
             {
-            match('|'); 
+            match("empty"); 
+
 
             }
 
@@ -3099,10 +3117,10 @@
         try {
             int _type = T__153;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:151:8: ( 'var' )
-            // InternalChartDSL.g:151:10: 'var'
+            // InternalChartDSL.g:151:8: ( 'multiplier' )
+            // InternalChartDSL.g:151:10: 'multiplier'
             {
-            match("var"); 
+            match("multiplier"); 
 
 
             }
@@ -3120,10 +3138,10 @@
         try {
             int _type = T__154;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:152:8: ( 'true' )
-            // InternalChartDSL.g:152:10: 'true'
+            // InternalChartDSL.g:152:8: ( 'gradient' )
+            // InternalChartDSL.g:152:10: 'gradient'
             {
-            match("true"); 
+            match("gradient"); 
 
 
             }
@@ -3136,15 +3154,371 @@
     }
     // $ANTLR end "T__154"
 
+    // $ANTLR start "T__155"
+    public final void mT__155() throws RecognitionException {
+        try {
+            int _type = T__155;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:153:8: ( 'transparent' )
+            // InternalChartDSL.g:153:10: 'transparent'
+            {
+            match("transparent"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__155"
+
+    // $ANTLR start "T__156"
+    public final void mT__156() throws RecognitionException {
+        try {
+            int _type = T__156;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:154:8: ( 'label' )
+            // InternalChartDSL.g:154:10: 'label'
+            {
+            match("label"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__156"
+
+    // $ANTLR start "T__157"
+    public final void mT__157() throws RecognitionException {
+        try {
+            int _type = T__157;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:155:8: ( 'hasTicks' )
+            // InternalChartDSL.g:155:10: 'hasTicks'
+            {
+            match("hasTicks"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__157"
+
+    // $ANTLR start "T__158"
+    public final void mT__158() throws RecognitionException {
+        try {
+            int _type = T__158;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:156:8: ( 'intervals' )
+            // InternalChartDSL.g:156:10: 'intervals'
+            {
+            match("intervals"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__158"
+
+    // $ANTLR start "T__159"
+    public final void mT__159() throws RecognitionException {
+        try {
+            int _type = T__159;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:157:8: ( 'map' )
+            // InternalChartDSL.g:157:10: 'map'
+            {
+            match("map"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__159"
+
+    // $ANTLR start "T__160"
+    public final void mT__160() throws RecognitionException {
+        try {
+            int _type = T__160;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:158:8: ( 'collapsible' )
+            // InternalChartDSL.g:158:10: 'collapsible'
+            {
+            match("collapsible"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__160"
+
+    // $ANTLR start "T__161"
+    public final void mT__161() throws RecognitionException {
+        try {
+            int _type = T__161;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:159:8: ( 'noLegend' )
+            // InternalChartDSL.g:159:10: 'noLegend'
+            {
+            match("noLegend"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__161"
+
+    // $ANTLR start "T__162"
+    public final void mT__162() throws RecognitionException {
+        try {
+            int _type = T__162;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:160:8: ( 'toggle' )
+            // InternalChartDSL.g:160:10: 'toggle'
+            {
+            match("toggle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__162"
+
+    // $ANTLR start "T__163"
+    public final void mT__163() throws RecognitionException {
+        try {
+            int _type = T__163;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:161:8: ( 'replot' )
+            // InternalChartDSL.g:161:10: 'replot'
+            {
+            match("replot"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__163"
+
+    // $ANTLR start "T__164"
+    public final void mT__164() throws RecognitionException {
+        try {
+            int _type = T__164;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:162:8: ( 'always' )
+            // InternalChartDSL.g:162:10: 'always'
+            {
+            match("always"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__164"
+
+    // $ANTLR start "T__165"
+    public final void mT__165() throws RecognitionException {
+        try {
+            int _type = T__165;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:163:8: ( 'shortLabel' )
+            // InternalChartDSL.g:163:10: 'shortLabel'
+            {
+            match("shortLabel"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__165"
+
+    // $ANTLR start "T__166"
+    public final void mT__166() throws RecognitionException {
+        try {
+            int _type = T__166;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:164:8: ( 'ns' )
+            // InternalChartDSL.g:164:10: 'ns'
+            {
+            match("ns"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__166"
+
+    // $ANTLR start "T__167"
+    public final void mT__167() throws RecognitionException {
+        try {
+            int _type = T__167;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:165:8: ( '::' )
+            // InternalChartDSL.g:165:10: '::'
+            {
+            match("::"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__167"
+
+    // $ANTLR start "T__168"
+    public final void mT__168() throws RecognitionException {
+        try {
+            int _type = T__168;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:166:8: ( '?.' )
+            // InternalChartDSL.g:166:10: '?.'
+            {
+            match("?."); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__168"
+
+    // $ANTLR start "T__169"
+    public final void mT__169() throws RecognitionException {
+        try {
+            int _type = T__169;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:167:8: ( '|' )
+            // InternalChartDSL.g:167:10: '|'
+            {
+            match('|'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__169"
+
+    // $ANTLR start "T__170"
+    public final void mT__170() throws RecognitionException {
+        try {
+            int _type = T__170;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:168:8: ( 'var' )
+            // InternalChartDSL.g:168:10: 'var'
+            {
+            match("var"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__170"
+
+    // $ANTLR start "T__171"
+    public final void mT__171() throws RecognitionException {
+        try {
+            int _type = T__171;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:169:8: ( 'true' )
+            // InternalChartDSL.g:169:10: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__171"
+
     // $ANTLR start "RULE_HEX"
     public final void mRULE_HEX() throws RecognitionException {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:23555:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalChartDSL.g:23555:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalChartDSL.g:24753:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalChartDSL.g:24753:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalChartDSL.g:23555:12: ( '0x' | '0X' )
+            // InternalChartDSL.g:24753:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -3172,7 +3546,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalChartDSL.g:23555:13: '0x'
+                    // InternalChartDSL.g:24753:13: '0x'
                     {
                     match("0x"); 
 
@@ -3180,7 +3554,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:23555:18: '0X'
+                    // InternalChartDSL.g:24753:18: '0X'
                     {
                     match("0X"); 
 
@@ -3190,7 +3564,7 @@
 
             }
 
-            // InternalChartDSL.g:23555:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalChartDSL.g:24753:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -3228,7 +3602,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalChartDSL.g:23555:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalChartDSL.g:24753:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -3237,10 +3611,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalChartDSL.g:23555:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalChartDSL.g:24753:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalChartDSL.g:23555:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalChartDSL.g:24753:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -3258,7 +3632,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalChartDSL.g:23555:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalChartDSL.g:24753:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -3282,7 +3656,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalChartDSL.g:23555:84: ( 'l' | 'L' )
+                            // InternalChartDSL.g:24753:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -3321,11 +3695,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:23557:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalChartDSL.g:23557:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalChartDSL.g:24755:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalChartDSL.g:24755:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalChartDSL.g:23557:21: ( '0' .. '9' | '_' )*
+            // InternalChartDSL.g:24755:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -3374,11 +3748,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:23559:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalChartDSL.g:23559:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalChartDSL.g:24757:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalChartDSL.g:24757:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalChartDSL.g:23559:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalChartDSL.g:24757:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -3387,7 +3761,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalChartDSL.g:23559:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalChartDSL.g:24757:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -3398,7 +3772,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalChartDSL.g:23559:36: ( '+' | '-' )?
+                    // InternalChartDSL.g:24757:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -3431,7 +3805,7 @@
 
             }
 
-            // InternalChartDSL.g:23559:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalChartDSL.g:24757:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -3443,7 +3817,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalChartDSL.g:23559:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalChartDSL.g:24757:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -3467,7 +3841,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:23559:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalChartDSL.g:24757: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();
@@ -3500,10 +3874,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:23561:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalChartDSL.g:23561:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalChartDSL.g:24759:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalChartDSL.g:24759:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalChartDSL.g:23561:11: ( '^' )?
+            // InternalChartDSL.g:24759:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -3512,7 +3886,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalChartDSL.g:23561:11: '^'
+                    // InternalChartDSL.g:24759:11: '^'
                     {
                     match('^'); 
 
@@ -3530,7 +3904,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalChartDSL.g:23561:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalChartDSL.g:24759:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -3579,10 +3953,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:23563:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalChartDSL.g:23563:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalChartDSL.g:24761:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalChartDSL.g:24761:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalChartDSL.g:23563:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalChartDSL.g:24761:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -3600,10 +3974,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalChartDSL.g:23563:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalChartDSL.g:24761:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalChartDSL.g:23563:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalChartDSL.g:24761:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -3619,7 +3993,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalChartDSL.g:23563:21: '\\\\' .
+                    	    // InternalChartDSL.g:24761:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3627,7 +4001,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalChartDSL.g:23563:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalChartDSL.g:24761:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3647,7 +4021,7 @@
                         }
                     } while (true);
 
-                    // InternalChartDSL.g:23563:44: ( '\"' )?
+                    // InternalChartDSL.g:24761:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -3656,7 +4030,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalChartDSL.g:23563:44: '\"'
+                            // InternalChartDSL.g:24761:44: '\"'
                             {
                             match('\"'); 
 
@@ -3669,10 +4043,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:23563:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalChartDSL.g:24761:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalChartDSL.g:23563:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalChartDSL.g:24761:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -3688,7 +4062,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalChartDSL.g:23563:55: '\\\\' .
+                    	    // InternalChartDSL.g:24761:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3696,7 +4070,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalChartDSL.g:23563:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalChartDSL.g:24761:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3716,7 +4090,7 @@
                         }
                     } while (true);
 
-                    // InternalChartDSL.g:23563:79: ( '\\'' )?
+                    // InternalChartDSL.g:24761:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -3725,7 +4099,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalChartDSL.g:23563:79: '\\''
+                            // InternalChartDSL.g:24761:79: '\\''
                             {
                             match('\''); 
 
@@ -3756,12 +4130,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:23565:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalChartDSL.g:23565:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalChartDSL.g:24763:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalChartDSL.g:24763:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalChartDSL.g:23565:24: ( options {greedy=false; } : . )*
+            // InternalChartDSL.g:24763:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -3786,7 +4160,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalChartDSL.g:23565:52: .
+            	    // InternalChartDSL.g:24763:52: .
             	    {
             	    matchAny(); 
 
@@ -3816,12 +4190,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:23567:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalChartDSL.g:23567:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalChartDSL.g:24765:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalChartDSL.g:24765:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalChartDSL.g:23567:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalChartDSL.g:24765:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -3834,7 +4208,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalChartDSL.g:23567:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalChartDSL.g:24765: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();
@@ -3854,7 +4228,7 @@
                 }
             } while (true);
 
-            // InternalChartDSL.g:23567:40: ( ( '\\r' )? '\\n' )?
+            // InternalChartDSL.g:24765:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -3863,9 +4237,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalChartDSL.g:23567:41: ( '\\r' )? '\\n'
+                    // InternalChartDSL.g:24765:41: ( '\\r' )? '\\n'
                     {
-                    // InternalChartDSL.g:23567:41: ( '\\r' )?
+                    // InternalChartDSL.g:24765:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -3874,7 +4248,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalChartDSL.g:23567:41: '\\r'
+                            // InternalChartDSL.g:24765:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3906,10 +4280,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:23569:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalChartDSL.g:23569:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalChartDSL.g:24767:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalChartDSL.g:24767:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalChartDSL.g:23569:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalChartDSL.g:24767:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -3963,8 +4337,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:23571:16: ( . )
-            // InternalChartDSL.g:23571:18: .
+            // InternalChartDSL.g:24769:16: ( . )
+            // InternalChartDSL.g:24769:18: .
             {
             matchAny(); 
 
@@ -3979,8 +4353,8 @@
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalChartDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=151;
+        // InternalChartDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=168;
         alt21 = dfa21.predict(input);
         switch (alt21) {
             case 1 :
@@ -4978,63 +5352,182 @@
                 }
                 break;
             case 143 :
-                // InternalChartDSL.g:1:917: RULE_HEX
+                // InternalChartDSL.g:1:917: T__155
+                {
+                mT__155(); 
+
+                }
+                break;
+            case 144 :
+                // InternalChartDSL.g:1:924: T__156
+                {
+                mT__156(); 
+
+                }
+                break;
+            case 145 :
+                // InternalChartDSL.g:1:931: T__157
+                {
+                mT__157(); 
+
+                }
+                break;
+            case 146 :
+                // InternalChartDSL.g:1:938: T__158
+                {
+                mT__158(); 
+
+                }
+                break;
+            case 147 :
+                // InternalChartDSL.g:1:945: T__159
+                {
+                mT__159(); 
+
+                }
+                break;
+            case 148 :
+                // InternalChartDSL.g:1:952: T__160
+                {
+                mT__160(); 
+
+                }
+                break;
+            case 149 :
+                // InternalChartDSL.g:1:959: T__161
+                {
+                mT__161(); 
+
+                }
+                break;
+            case 150 :
+                // InternalChartDSL.g:1:966: T__162
+                {
+                mT__162(); 
+
+                }
+                break;
+            case 151 :
+                // InternalChartDSL.g:1:973: T__163
+                {
+                mT__163(); 
+
+                }
+                break;
+            case 152 :
+                // InternalChartDSL.g:1:980: T__164
+                {
+                mT__164(); 
+
+                }
+                break;
+            case 153 :
+                // InternalChartDSL.g:1:987: T__165
+                {
+                mT__165(); 
+
+                }
+                break;
+            case 154 :
+                // InternalChartDSL.g:1:994: T__166
+                {
+                mT__166(); 
+
+                }
+                break;
+            case 155 :
+                // InternalChartDSL.g:1:1001: T__167
+                {
+                mT__167(); 
+
+                }
+                break;
+            case 156 :
+                // InternalChartDSL.g:1:1008: T__168
+                {
+                mT__168(); 
+
+                }
+                break;
+            case 157 :
+                // InternalChartDSL.g:1:1015: T__169
+                {
+                mT__169(); 
+
+                }
+                break;
+            case 158 :
+                // InternalChartDSL.g:1:1022: T__170
+                {
+                mT__170(); 
+
+                }
+                break;
+            case 159 :
+                // InternalChartDSL.g:1:1029: T__171
+                {
+                mT__171(); 
+
+                }
+                break;
+            case 160 :
+                // InternalChartDSL.g:1:1036: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 144 :
-                // InternalChartDSL.g:1:926: RULE_INT
+            case 161 :
+                // InternalChartDSL.g:1:1045: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 145 :
-                // InternalChartDSL.g:1:935: RULE_DECIMAL
+            case 162 :
+                // InternalChartDSL.g:1:1054: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 146 :
-                // InternalChartDSL.g:1:948: RULE_ID
+            case 163 :
+                // InternalChartDSL.g:1:1067: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 147 :
-                // InternalChartDSL.g:1:956: RULE_STRING
+            case 164 :
+                // InternalChartDSL.g:1:1075: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 148 :
-                // InternalChartDSL.g:1:968: RULE_ML_COMMENT
+            case 165 :
+                // InternalChartDSL.g:1:1087: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 149 :
-                // InternalChartDSL.g:1:984: RULE_SL_COMMENT
+            case 166 :
+                // InternalChartDSL.g:1:1103: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 150 :
-                // InternalChartDSL.g:1:1000: RULE_WS
+            case 167 :
+                // InternalChartDSL.g:1:1119: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 151 :
-                // InternalChartDSL.g:1:1008: RULE_ANY_OTHER
+            case 168 :
+                // InternalChartDSL.g:1:1127: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -5048,53 +5541,58 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\70\1\72\1\74\1\77\1\103\1\106\1\112\1\114\1\116\1\120\1\122\1\124\1\127\14\131\2\uffff\7\131\10\uffff\1\u009e\2\131\2\u00a3\1\65\5\uffff\1\u00a8\26\uffff\1\u00aa\5\uffff\1\u00ac\4\uffff\1\131\1\uffff\16\131\1\u00c1\7\131\1\u00cb\13\131\1\u00d9\4\131\2\uffff\1\u00df\21\131\12\uffff\2\131\1\uffff\1\u00a3\12\uffff\1\u00fb\1\u00fc\22\131\1\uffff\2\131\1\u0114\4\131\1\u011a\1\131\1\uffff\15\131\1\uffff\4\131\1\u012f\1\uffff\7\131\1\u0138\6\131\1\u013f\5\131\1\u0145\6\131\2\uffff\1\131\1\u014d\1\u014e\4\131\1\u0153\16\131\1\u0162\1\uffff\5\131\1\uffff\1\u0169\1\u016a\3\131\1\u016e\3\131\1\u0173\3\131\1\u0177\6\131\1\uffff\1\u017e\5\131\1\u0185\1\131\1\uffff\1\131\1\u0188\3\131\1\u018c\1\uffff\5\131\1\uffff\4\131\1\u0196\2\131\2\uffff\1\u019a\2\131\1\u019d\1\uffff\1\u019f\14\131\1\u01ac\1\uffff\5\131\1\u01b3\2\uffff\1\u01b4\1\131\1\u01b6\1\uffff\1\u01b7\3\131\1\uffff\2\131\1\u01bd\1\uffff\1\131\1\u01bf\4\131\1\uffff\1\u01c4\5\131\1\uffff\2\131\1\uffff\1\131\1\u01cd\1\u01ce\1\uffff\1\131\1\u01d0\7\131\1\uffff\3\131\1\uffff\1\u01db\1\131\3\uffff\2\131\1\u01e1\2\131\1\u01e4\2\131\1\u01e7\1\u01e9\2\131\1\uffff\2\131\1\u01ee\1\131\1\u01f0\3\uffff\1\131\2\uffff\1\u01f4\1\131\1\u01f6\1\131\1\u01f8\1\uffff\1\131\1\uffff\4\131\1\uffff\1\131\1\u01ff\2\131\1\u0202\2\131\1\u0205\2\uffff\1\u0206\1\uffff\5\131\1\u020c\1\u020d\1\131\1\u020f\1\131\1\uffff\1\u0211\2\uffff\2\131\1\uffff\1\u0214\1\131\1\uffff\2\131\3\uffff\2\131\1\u021a\1\131\1\uffff\1\u021d\3\uffff\1\131\1\uffff\1\131\1\uffff\1\131\1\uffff\1\131\1\u0222\1\131\1\u0224\1\u0225\1\131\1\uffff\1\u0227\1\u0228\1\uffff\2\131\2\uffff\1\131\1\u022c\1\u022d\1\131\1\u022f\2\uffff\1\131\1\uffff\1\131\1\uffff\2\131\1\uffff\5\131\1\uffff\1\u0239\2\uffff\1\u023a\2\131\1\u023d\1\uffff\1\131\2\uffff\1\u023f\2\uffff\2\131\1\u0242\2\uffff\1\131\1\uffff\1\u0244\1\u0245\6\131\1\u024c\2\uffff\2\131\1\uffff\1\131\1\uffff\1\u0250\1\131\1\uffff\1\131\2\uffff\1\131\1\u0254\1\131\1\u0256\1\u0257\1\u0258\1\uffff\3\131\1\uffff\1\131\1\u025d\1\131\1\uffff\1\131\3\uffff\1\u0260\1\u0261\1\u0262\1\u0263\1\uffff\1\u0264\1\u0265\6\uffff";
+        "\1\uffff\1\75\1\77\1\101\1\104\1\110\1\113\1\117\1\121\1\123\1\125\1\127\1\131\1\134\21\136\2\uffff\7\136\10\uffff\1\u00ab\2\136\2\u00b0\1\72\5\uffff\1\u00b5\26\uffff\1\u00b7\5\uffff\1\u00b9\4\uffff\1\136\1\uffff\17\136\1\u00d0\7\136\1\u00dc\13\136\1\u00ea\11\136\2\uffff\1\u00f5\23\136\12\uffff\2\136\1\uffff\1\u00b0\12\uffff\1\u0112\1\u0113\24\136\1\uffff\3\136\1\u012e\5\136\1\u0135\1\136\1\uffff\15\136\1\uffff\4\136\1\u014a\5\136\1\uffff\6\136\1\u0157\10\136\1\u0160\5\136\1\u0166\6\136\2\uffff\1\136\1\u016e\1\u016f\4\136\1\u0174\20\136\1\u0186\1\136\1\uffff\6\136\1\uffff\1\u0190\1\u0191\3\136\1\u0195\3\136\1\u019a\3\136\1\u019e\6\136\1\uffff\5\136\1\u01aa\4\136\1\u01b0\1\136\1\uffff\1\136\1\u01b3\5\136\1\u01bb\1\uffff\5\136\1\uffff\4\136\1\u01c5\2\136\2\uffff\1\u01c9\2\136\1\u01cc\1\uffff\1\u01ce\1\u01cf\3\136\1\uffff\12\136\1\u01dd\1\uffff\7\136\1\u01e6\1\136\2\uffff\1\u01e8\1\136\1\u01ea\1\uffff\1\u01eb\3\136\1\uffff\2\136\1\u01f4\1\uffff\1\136\1\u01f6\5\136\1\u01fc\3\136\1\uffff\5\136\1\uffff\2\136\1\uffff\5\136\1\u020c\1\u020d\1\uffff\1\136\1\u020f\7\136\1\uffff\3\136\1\uffff\1\u021a\1\136\4\uffff\3\136\1\u0221\2\136\1\u0224\2\136\1\u0227\1\u0229\2\136\1\uffff\4\136\1\u0230\1\136\1\u0232\2\uffff\1\136\1\uffff\1\136\2\uffff\1\u0237\1\136\1\u0239\1\136\1\u023b\3\136\1\uffff\1\136\1\uffff\5\136\1\uffff\1\136\1\uffff\2\136\1\u0248\2\136\1\u024b\6\136\1\u0252\2\uffff\1\u0253\1\uffff\5\136\1\u0259\1\u025a\1\136\1\u025c\1\136\1\uffff\1\u025e\2\uffff\3\136\1\uffff\1\u0262\1\136\1\uffff\2\136\3\uffff\4\136\1\u026a\1\136\1\uffff\1\u026d\3\uffff\2\136\1\uffff\1\136\1\uffff\1\136\1\uffff\4\136\1\u0276\1\136\1\u0278\1\u0279\1\u027a\1\u027b\2\136\1\uffff\1\u027e\1\u027f\1\uffff\6\136\2\uffff\1\136\1\u0287\1\u0288\1\136\1\u028a\2\uffff\1\136\1\uffff\1\136\1\uffff\3\136\1\uffff\6\136\1\u0296\1\uffff\1\u0297\2\uffff\1\u0298\1\u0299\5\136\1\u029f\1\uffff\1\136\5\uffff\1\u02a1\2\uffff\6\136\1\u02a8\2\uffff\1\136\1\uffff\1\u02aa\1\u02ab\7\136\1\u02b3\1\136\4\uffff\5\136\1\uffff\1\136\1\uffff\1\u02bb\1\136\1\u02bd\1\u02be\2\136\1\uffff\1\136\2\uffff\2\136\1\u02c4\1\136\1\u02c6\1\u02c7\1\u02c8\1\uffff\1\u02c9\2\136\1\u02cc\3\136\1\uffff\1\136\2\uffff\2\136\1\u02d3\2\136\1\uffff\1\136\4\uffff\1\u02d7\1\u02d8\1\uffff\2\136\1\u02db\1\u02dc\2\136\1\uffff\1\u02df\1\u02e0\1\u02e1\2\uffff\2\136\2\uffff\1\u02e4\1\136\3\uffff\1\u02e6\1\136\1\uffff\1\u02e8\1\uffff\1\u02e9\2\uffff";
     static final String DFA21_eofS =
-        "\u0266\uffff";
+        "\u02ea\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\2\141\1\145\1\146\1\141\1\165\2\145\4\141\2\uffff\1\154\1\150\1\160\3\141\1\145\10\uffff\1\72\1\157\1\141\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\uffff\1\164\2\163\1\160\1\141\1\160\1\157\1\165\1\147\1\141\1\156\1\141\1\160\1\163\1\44\1\154\1\162\1\154\1\164\1\162\1\167\1\154\1\44\1\163\1\151\1\163\1\141\1\162\1\154\1\156\2\147\1\142\1\164\1\44\1\146\1\162\1\143\1\145\2\uffff\1\44\1\151\1\147\1\167\1\147\1\141\1\160\1\162\1\151\1\124\1\162\1\142\1\165\1\141\1\156\1\160\1\154\1\156\12\uffff\1\157\1\163\1\uffff\1\60\12\uffff\2\44\1\145\1\164\1\145\1\164\1\143\1\145\1\167\1\164\1\155\1\145\1\164\1\160\1\143\1\144\1\162\1\157\1\151\1\145\1\uffff\1\163\1\164\1\44\1\141\1\154\1\163\1\155\1\44\1\154\1\uffff\1\164\1\154\1\143\1\145\1\162\1\163\1\154\1\145\1\141\2\145\1\141\1\165\1\uffff\1\141\1\143\1\141\1\153\1\44\1\uffff\1\163\1\154\1\155\1\141\1\154\1\147\1\145\1\44\1\156\2\145\1\157\1\156\1\157\1\44\1\142\1\147\1\144\2\151\1\44\1\164\1\144\1\165\1\154\1\155\1\124\2\uffff\1\156\2\44\1\171\1\151\1\153\1\162\1\44\1\150\1\145\2\143\1\160\1\150\1\145\1\115\1\164\1\162\1\144\1\141\1\162\1\145\1\44\1\uffff\1\154\1\132\1\151\1\141\1\150\1\uffff\2\44\1\145\1\147\1\150\1\44\1\164\1\157\1\141\1\44\1\162\1\156\1\154\1\44\1\155\1\164\1\165\1\162\1\155\1\141\1\uffff\1\44\1\145\1\141\1\171\1\142\1\154\1\44\1\144\1\uffff\1\163\1\44\1\157\1\167\1\147\1\44\1\uffff\1\154\1\145\1\151\2\155\1\uffff\1\151\1\145\1\162\1\157\1\44\1\151\1\144\2\uffff\1\44\1\143\1\145\1\44\1\uffff\1\44\1\156\1\164\1\150\1\145\1\162\1\144\1\141\1\114\1\164\1\145\1\156\1\166\1\44\1\uffff\1\154\1\145\2\144\1\154\1\44\2\uffff\1\44\1\157\1\44\1\uffff\1\44\1\162\1\160\1\162\1\uffff\1\151\1\144\1\44\1\uffff\1\141\1\44\1\154\2\151\1\147\1\uffff\1\44\1\164\1\163\1\141\1\151\1\145\1\uffff\1\114\1\160\1\uffff\1\146\2\44\1\uffff\1\145\1\44\1\145\2\165\1\160\1\162\1\156\1\164\1\uffff\1\143\1\163\1\151\1\uffff\1\44\1\144\1\uffff\1\145\1\uffff\1\164\1\102\1\44\1\144\1\157\1\44\1\162\1\141\2\44\1\143\1\141\1\uffff\1\171\1\162\1\44\1\145\1\44\1\145\2\uffff\1\162\2\uffff\1\44\1\163\1\44\1\164\1\44\1\uffff\1\162\1\uffff\1\164\1\142\1\144\1\145\1\uffff\1\145\1\44\1\162\1\160\1\44\1\151\1\141\1\44\2\uffff\1\44\1\uffff\1\156\2\155\1\154\1\163\2\44\1\153\1\44\1\157\1\uffff\1\44\2\uffff\1\143\1\171\1\uffff\1\44\1\156\1\uffff\1\153\1\142\3\uffff\1\145\1\154\1\44\1\157\1\uffff\1\44\3\uffff\1\171\1\uffff\1\151\1\uffff\1\150\1\uffff\1\164\1\44\1\145\2\44\1\144\1\uffff\2\44\1\uffff\1\156\1\162\2\uffff\1\164\2\44\1\151\1\44\2\uffff\1\163\1\uffff\1\156\1\uffff\1\157\1\111\1\uffff\1\151\2\145\1\157\1\163\1\uffff\1\44\2\uffff\1\44\1\142\1\155\1\44\1\uffff\1\144\2\uffff\1\44\2\uffff\2\145\1\44\2\uffff\1\145\1\uffff\2\44\1\154\1\144\1\172\1\162\1\154\1\146\1\44\2\uffff\1\154\1\151\1\uffff\1\102\1\uffff\1\44\1\156\1\uffff\1\162\2\uffff\1\157\1\44\1\145\3\44\1\uffff\1\145\1\143\1\171\1\uffff\1\164\1\44\1\162\1\uffff\1\144\3\uffff\4\44\1\uffff\2\44\6\uffff";
+        "\1\0\1\75\1\174\1\46\1\53\1\55\2\52\3\75\1\76\2\56\3\141\1\146\1\141\1\165\2\145\4\141\1\145\1\162\1\145\1\151\1\157\2\uffff\1\154\1\145\1\160\3\141\1\145\10\uffff\1\72\1\157\1\141\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\uffff\1\164\2\163\1\160\1\141\1\160\1\157\1\165\1\147\1\156\1\141\1\156\1\141\1\160\1\163\1\44\1\154\1\156\1\154\1\164\1\114\1\167\1\154\1\44\1\163\1\151\1\163\1\141\1\162\1\154\1\156\2\147\1\142\1\164\1\44\1\146\1\162\1\143\1\145\1\146\1\151\1\162\1\155\1\165\2\uffff\1\44\2\151\1\167\1\147\1\141\1\170\1\143\1\160\1\162\1\151\1\124\1\162\1\142\1\165\1\141\1\156\1\160\1\154\1\156\12\uffff\1\157\1\163\1\uffff\1\60\12\uffff\2\44\1\145\1\164\1\145\1\164\1\143\1\145\1\167\1\164\1\151\1\155\1\145\1\163\1\164\1\160\1\143\1\144\1\162\1\157\1\151\1\145\1\uffff\1\163\2\164\1\44\1\141\1\154\1\163\1\155\1\145\1\44\1\154\1\uffff\1\164\1\154\1\143\1\145\1\162\1\163\1\154\1\145\1\141\2\145\1\141\1\165\1\uffff\1\141\1\143\1\141\1\153\1\44\2\141\1\144\1\145\1\162\1\uffff\1\163\1\155\1\141\1\154\1\147\1\145\1\44\1\156\1\145\1\164\1\153\1\145\1\157\1\156\1\157\1\44\1\142\1\147\1\144\2\151\1\44\1\164\1\144\1\165\1\154\1\155\1\124\2\uffff\1\156\2\44\1\171\1\151\1\153\1\162\1\44\1\150\2\145\1\143\1\55\1\143\1\160\1\150\1\145\1\115\1\164\1\162\1\144\1\141\1\162\1\145\1\44\1\106\1\uffff\1\154\1\132\1\151\1\141\1\150\1\147\1\uffff\2\44\1\145\1\147\1\150\1\44\1\164\1\157\1\141\1\44\1\162\1\156\1\154\1\44\1\155\1\164\1\165\1\162\1\155\1\141\1\uffff\1\165\1\154\1\141\1\163\1\151\1\44\1\141\1\171\1\142\1\154\1\44\1\144\1\uffff\1\163\1\44\1\103\1\101\1\157\1\167\1\147\1\44\1\uffff\1\154\1\145\1\151\2\155\1\uffff\1\151\1\145\1\162\1\157\1\44\1\151\1\144\2\uffff\1\44\1\143\1\145\1\44\1\uffff\2\44\1\163\1\156\1\164\1\uffff\1\150\1\145\1\162\1\144\1\141\1\114\1\164\1\145\1\156\1\166\1\44\1\uffff\1\141\1\151\1\154\1\145\2\144\1\154\1\44\1\145\2\uffff\1\44\1\157\1\44\1\uffff\1\44\1\162\1\160\1\162\1\uffff\1\151\1\144\1\44\1\uffff\1\141\1\44\1\154\2\151\1\147\1\154\1\44\1\156\1\40\1\145\1\uffff\1\164\1\163\1\141\1\151\1\145\1\uffff\1\114\1\160\1\uffff\1\157\1\156\1\157\1\145\1\146\2\44\1\uffff\1\145\1\44\1\145\2\165\1\160\1\162\1\156\1\164\1\uffff\1\143\1\163\1\151\1\uffff\1\44\1\144\1\uffff\1\145\2\uffff\1\103\1\164\1\102\1\44\1\144\1\157\1\44\1\162\1\141\2\44\1\143\1\141\1\uffff\1\155\1\172\1\171\1\162\1\44\1\145\1\44\1\145\1\uffff\1\156\1\uffff\1\162\2\uffff\1\44\1\163\1\44\1\164\1\44\1\156\1\157\1\145\1\uffff\1\162\1\uffff\1\164\1\142\1\144\1\145\1\164\1\uffff\1\141\1\uffff\1\162\1\145\1\44\1\162\1\160\1\44\1\151\1\141\1\154\1\147\1\156\1\170\1\44\2\uffff\1\44\1\uffff\1\156\2\155\1\154\1\163\2\44\1\153\1\44\1\157\1\uffff\1\44\2\uffff\1\157\1\143\1\171\1\uffff\1\44\1\156\1\uffff\1\153\1\142\3\uffff\1\145\1\154\1\151\1\145\1\44\1\157\1\uffff\1\44\3\uffff\1\144\1\171\1\uffff\1\151\1\uffff\1\150\1\uffff\1\147\1\156\1\170\1\164\1\44\1\145\4\44\1\40\1\144\1\uffff\2\44\1\uffff\1\156\1\162\1\157\1\154\2\164\2\uffff\1\164\2\44\1\151\1\44\2\uffff\1\163\1\uffff\1\156\1\uffff\1\154\1\157\1\111\1\uffff\1\151\2\145\1\157\1\163\1\154\1\44\1\uffff\1\44\2\uffff\2\44\1\142\1\155\1\154\2\164\1\44\1\uffff\1\144\5\uffff\1\44\2\uffff\2\145\1\162\1\145\1\123\1\103\1\44\2\uffff\1\145\1\uffff\2\44\1\157\1\154\1\144\1\172\1\162\1\154\1\146\1\44\1\171\4\uffff\1\154\1\151\1\145\1\123\1\103\1\uffff\1\102\1\uffff\1\44\1\156\2\44\1\151\1\157\1\uffff\1\162\2\uffff\1\162\1\157\1\44\1\145\3\44\1\uffff\1\44\1\145\1\143\1\44\1\151\1\157\1\171\1\uffff\1\164\2\uffff\1\172\1\154\1\44\1\163\1\162\1\uffff\1\144\4\uffff\2\44\1\uffff\1\172\1\154\2\44\1\145\1\157\1\uffff\3\44\2\uffff\1\145\1\157\2\uffff\1\44\1\162\3\uffff\1\44\1\162\1\uffff\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\141\1\170\1\171\1\156\1\157\2\165\1\150\1\165\2\157\1\171\2\uffff\1\170\1\171\1\163\1\165\1\162\1\165\1\145\10\uffff\1\72\1\157\1\141\1\170\1\154\1\172\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\162\1\uffff\1\164\2\163\1\160\1\141\1\160\1\157\1\165\1\154\1\151\1\156\1\157\1\160\1\164\1\172\1\163\1\162\1\156\1\164\1\162\1\167\1\154\1\172\1\163\1\151\1\164\1\141\1\162\1\154\1\156\2\147\1\142\1\164\1\172\1\163\1\162\1\143\1\145\2\uffff\1\172\2\151\1\167\1\157\1\171\1\160\1\162\1\151\1\124\1\162\1\142\1\165\1\141\1\156\1\170\1\154\1\164\12\uffff\1\157\1\163\1\uffff\1\154\12\uffff\2\172\1\145\1\164\1\145\2\164\1\145\1\167\1\164\1\155\1\145\1\164\1\160\1\143\1\144\1\167\1\157\1\164\1\145\1\uffff\1\163\1\164\1\172\1\141\1\154\1\163\1\164\1\172\1\154\1\uffff\1\164\1\154\2\145\1\162\1\163\1\154\1\145\1\141\3\145\1\165\1\uffff\1\141\1\143\1\141\1\153\1\172\1\uffff\1\163\1\154\1\155\1\141\1\154\1\147\1\156\1\172\1\156\2\145\1\157\1\156\1\157\1\172\1\142\1\147\1\144\2\151\1\172\1\164\1\144\1\165\1\154\1\155\1\124\2\uffff\1\156\2\172\1\171\1\151\1\153\1\162\1\172\1\150\1\145\2\143\1\160\1\150\1\145\1\115\1\164\1\162\1\144\1\141\1\162\1\145\1\172\1\uffff\1\154\1\145\1\151\1\141\1\150\1\uffff\2\172\1\145\1\147\1\150\1\172\1\164\1\157\1\141\1\172\1\162\1\156\1\154\1\172\1\155\1\164\1\165\1\162\1\155\1\141\1\uffff\1\172\1\145\1\141\1\171\1\164\1\154\1\172\1\144\1\uffff\1\163\1\172\1\157\1\167\1\147\1\172\1\uffff\1\154\1\145\1\151\2\155\1\uffff\1\151\1\145\1\162\1\157\1\172\1\151\1\163\2\uffff\1\172\1\143\1\145\1\172\1\uffff\1\172\1\156\1\164\1\150\1\145\1\162\1\144\1\141\1\114\1\164\1\145\1\156\1\166\1\172\1\uffff\1\154\1\145\2\144\1\154\1\172\2\uffff\1\172\1\157\1\172\1\uffff\1\172\1\162\1\160\1\162\1\uffff\1\151\1\144\1\172\1\uffff\1\141\1\172\1\154\2\151\1\147\1\uffff\1\172\1\164\1\163\1\141\1\151\1\145\1\uffff\1\114\1\160\1\uffff\1\146\2\172\1\uffff\1\145\1\172\1\145\2\165\1\160\1\162\1\156\1\164\1\uffff\1\143\1\163\1\151\1\uffff\1\172\1\144\1\uffff\1\167\1\uffff\1\164\1\102\1\172\1\144\1\157\1\172\1\162\1\141\2\172\1\143\1\141\1\uffff\1\171\1\162\1\172\1\145\1\172\1\167\2\uffff\1\162\2\uffff\1\172\1\163\1\172\1\164\1\172\1\uffff\1\162\1\uffff\1\164\1\142\1\144\1\145\1\uffff\1\145\1\172\1\162\1\160\1\172\1\151\1\141\1\172\2\uffff\1\172\1\uffff\1\156\2\155\1\154\1\163\2\172\1\153\1\172\1\157\1\uffff\1\172\2\uffff\1\143\1\171\1\uffff\1\172\1\156\1\uffff\1\153\1\142\3\uffff\1\145\1\154\1\172\1\157\1\uffff\1\172\3\uffff\1\171\1\uffff\1\151\1\uffff\1\150\1\uffff\1\164\1\172\1\145\2\172\1\144\1\uffff\2\172\1\uffff\1\156\1\162\2\uffff\1\164\2\172\1\151\1\172\2\uffff\1\163\1\uffff\1\156\1\uffff\1\157\1\111\1\uffff\1\151\2\145\1\157\1\163\1\uffff\1\172\2\uffff\1\172\1\142\1\155\1\172\1\uffff\1\144\2\uffff\1\172\2\uffff\2\145\1\172\2\uffff\1\145\1\uffff\2\172\1\154\1\144\1\172\1\162\1\154\1\146\1\172\2\uffff\1\154\1\151\1\uffff\1\102\1\uffff\1\172\1\156\1\uffff\1\162\2\uffff\1\157\1\172\1\145\3\172\1\uffff\1\145\1\143\1\171\1\uffff\1\164\1\172\1\162\1\uffff\1\144\3\uffff\4\172\1\uffff\2\172\6\uffff";
+        "\1\uffff\1\76\1\174\1\46\1\75\1\76\5\75\1\76\1\56\1\72\1\141\1\170\1\171\1\156\1\157\2\165\1\150\1\165\2\157\1\171\1\145\1\162\1\145\1\151\1\157\2\uffff\1\170\1\171\1\163\1\165\1\162\1\165\1\145\10\uffff\1\72\1\157\1\141\1\170\1\154\1\172\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\162\1\uffff\1\164\2\163\1\160\1\141\1\160\1\157\1\165\1\162\1\156\1\151\1\156\1\157\1\160\1\164\1\172\1\163\1\162\1\156\1\164\1\162\1\167\1\154\1\172\1\163\1\151\1\164\1\141\1\162\1\154\1\156\2\147\1\142\1\164\1\172\1\163\1\162\1\143\1\145\1\146\1\151\1\162\1\155\1\165\2\uffff\1\172\2\151\1\167\1\157\1\171\1\170\1\143\1\160\1\162\1\151\1\124\1\162\1\142\1\165\1\141\1\156\1\170\1\154\1\164\12\uffff\1\157\1\163\1\uffff\1\154\12\uffff\2\172\1\145\1\164\1\145\2\164\1\145\1\167\1\164\1\151\1\155\1\145\1\163\1\164\1\160\1\143\1\144\1\167\1\157\1\164\1\145\1\uffff\1\163\2\164\1\172\1\141\1\154\1\163\1\164\1\145\1\172\1\154\1\uffff\1\164\1\154\2\145\1\162\1\163\1\154\1\145\1\141\3\145\1\165\1\uffff\1\141\1\143\1\141\1\153\1\172\2\141\1\144\1\145\1\162\1\uffff\1\163\1\155\1\141\1\154\1\147\1\156\1\172\1\156\1\145\1\164\1\153\1\145\1\157\1\156\1\157\1\172\1\142\1\147\1\144\2\151\1\172\1\164\1\144\1\165\1\154\1\155\1\124\2\uffff\1\156\2\172\1\171\1\151\1\153\1\162\1\172\1\150\1\146\1\145\1\143\1\55\1\143\1\160\1\150\1\145\1\115\1\164\1\162\1\144\1\141\1\162\1\145\1\172\1\123\1\uffff\1\154\1\145\1\151\1\141\1\150\1\147\1\uffff\2\172\1\145\1\147\1\150\1\172\1\164\1\157\1\141\1\172\1\162\1\156\1\154\1\172\1\155\1\164\1\165\1\162\1\155\1\141\1\uffff\1\165\1\154\1\141\1\163\1\151\1\172\1\141\1\171\1\164\1\154\1\172\1\144\1\uffff\1\163\1\172\1\103\1\124\1\157\1\167\1\147\1\172\1\uffff\1\154\1\145\1\151\2\155\1\uffff\1\151\1\145\1\162\1\157\1\172\1\151\1\163\2\uffff\1\172\1\143\1\145\1\172\1\uffff\2\172\1\163\1\156\1\164\1\uffff\1\150\1\145\1\162\1\144\1\141\1\114\1\164\1\145\1\156\1\166\1\172\1\uffff\1\141\1\151\1\154\1\145\2\144\1\154\1\172\1\145\2\uffff\1\172\1\157\1\172\1\uffff\1\172\1\162\1\160\1\162\1\uffff\1\151\1\144\1\172\1\uffff\1\141\1\172\1\154\2\151\1\147\1\154\1\172\1\156\1\40\1\145\1\uffff\1\164\1\163\1\141\1\151\1\145\1\uffff\1\114\1\160\1\uffff\1\157\1\156\1\157\1\145\1\146\2\172\1\uffff\1\145\1\172\1\145\2\165\1\160\1\162\1\156\1\164\1\uffff\1\143\1\163\1\151\1\uffff\1\172\1\144\1\uffff\1\167\2\uffff\1\103\1\164\1\102\1\172\1\144\1\157\1\172\1\162\1\141\2\172\1\143\1\141\1\uffff\1\155\1\172\1\171\1\162\1\172\1\145\1\172\1\167\1\uffff\1\156\1\uffff\1\162\2\uffff\1\172\1\163\1\172\1\164\1\172\1\156\1\157\1\145\1\uffff\1\162\1\uffff\1\164\1\142\1\144\1\145\1\164\1\uffff\1\141\1\uffff\1\162\1\145\1\172\1\162\1\160\1\172\1\151\1\141\1\154\1\147\1\156\1\170\1\172\2\uffff\1\172\1\uffff\1\156\2\155\1\154\1\163\2\172\1\153\1\172\1\157\1\uffff\1\172\2\uffff\1\157\1\143\1\171\1\uffff\1\172\1\156\1\uffff\1\153\1\142\3\uffff\1\145\1\154\1\151\1\145\1\172\1\157\1\uffff\1\172\3\uffff\1\144\1\171\1\uffff\1\151\1\uffff\1\150\1\uffff\1\147\1\156\1\170\1\164\1\172\1\145\4\172\1\40\1\144\1\uffff\2\172\1\uffff\1\156\1\162\1\157\1\154\2\164\2\uffff\1\164\2\172\1\151\1\172\2\uffff\1\163\1\uffff\1\156\1\uffff\1\154\1\157\1\111\1\uffff\1\151\2\145\1\157\1\163\1\154\1\172\1\uffff\1\172\2\uffff\2\172\1\142\1\155\1\154\2\164\1\172\1\uffff\1\144\5\uffff\1\172\2\uffff\2\145\1\162\1\145\1\123\1\103\1\172\2\uffff\1\145\1\uffff\2\172\1\157\1\154\1\144\1\172\1\162\1\154\1\146\1\172\1\171\4\uffff\1\154\1\151\1\145\1\123\1\103\1\uffff\1\102\1\uffff\1\172\1\156\2\172\1\151\1\157\1\uffff\1\162\2\uffff\1\162\1\157\1\172\1\145\3\172\1\uffff\1\172\1\145\1\143\1\172\1\151\1\157\1\171\1\uffff\1\164\2\uffff\1\172\1\154\1\172\1\163\1\162\1\uffff\1\144\4\uffff\2\172\1\uffff\1\172\1\154\2\172\1\145\1\157\1\uffff\3\172\2\uffff\1\145\1\157\2\uffff\1\172\1\162\3\uffff\1\172\1\162\1\uffff\1\172\1\uffff\1\172\2\uffff";
     static final String DFA21_acceptS =
-        "\32\uffff\1\74\1\75\7\uffff\1\123\1\124\1\125\1\126\1\127\1\130\1\131\1\132\6\uffff\1\u0092\2\u0093\1\u0096\1\u0097\1\uffff\1\23\1\1\1\2\1\u008c\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\u0094\1\u0095\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\u008b\1\156\1\uffff\1\u0092\47\uffff\1\74\1\75\22\uffff\1\123\1\124\1\125\1\126\1\127\1\130\1\131\1\132\1\u008a\1\137\2\uffff\1\u008f\1\uffff\1\u0090\1\u0091\1\u0093\1\u0096\1\13\1\11\1\14\1\12\1\21\1\22\24\uffff\1\134\11\uffff\1\u0089\15\uffff\1\144\5\uffff\1\77\33\uffff\1\40\1\u008d\27\uffff\1\142\5\uffff\1\145\24\uffff\1\104\10\uffff\1\152\6\uffff\1\102\5\uffff\1\u0083\7\uffff\1\60\1\135\4\uffff\1\54\16\uffff\1\55\6\uffff\1\146\1\64\3\uffff\1\141\4\uffff\1\103\3\uffff\1\70\6\uffff\1\117\6\uffff\1\112\2\uffff\1\u008e\3\uffff\1\113\11\uffff\1\171\3\uffff\1\174\2\uffff\1\45\1\uffff\1\62\14\uffff\1\46\6\uffff\1\56\1\143\1\uffff\1\155\1\76\5\uffff\1\u0080\1\uffff\1\105\4\uffff\1\121\10\uffff\1\150\1\101\1\uffff\1\107\12\uffff\1\42\1\uffff\1\61\1\63\2\uffff\1\136\2\uffff\1\162\2\uffff\1\43\1\50\1\47\4\uffff\1\173\1\uffff\1\53\1\57\1\65\1\uffff\1\170\1\uffff\1\67\1\uffff\1\115\6\uffff\1\u0087\2\uffff\1\u0085\2\uffff\1\147\1\106\5\uffff\1\151\1\u0086\1\uffff\1\41\1\uffff\1\165\2\uffff\1\164\5\uffff\1\153\1\uffff\1\52\1\51\4\uffff\1\140\1\uffff\1\72\1\73\1\uffff\1\100\1\116\3\uffff\1\110\1\111\1\uffff\1\120\11\uffff\1\172\1\66\2\uffff\1\114\1\uffff\1\163\2\uffff\1\176\1\uffff\1\u0081\1\44\6\uffff\1\u0082\3\uffff\1\167\3\uffff\1\161\1\uffff\1\166\1\u0088\1\133\4\uffff\1\175\2\uffff\1\u0084\1\71\1\160\1\177\1\122\1\154";
+        "\37\uffff\1\103\1\104\7\uffff\1\142\1\143\1\144\1\145\1\146\1\147\1\150\1\151\6\uffff\1\u00a3\2\u00a4\1\u00a7\1\u00a8\1\uffff\1\23\1\1\1\2\1\u009d\1\3\1\176\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\u00a5\1\u00a6\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\u009c\1\175\1\uffff\1\u00a3\55\uffff\1\103\1\104\24\uffff\1\142\1\143\1\144\1\145\1\146\1\147\1\150\1\151\1\u009b\1\156\2\uffff\1\u00a0\1\uffff\1\u00a1\1\u00a2\1\u00a4\1\u00a7\1\13\1\11\1\14\1\12\1\21\1\22\26\uffff\1\153\13\uffff\1\u009a\15\uffff\1\163\12\uffff\1\107\34\uffff\1\40\1\u009e\32\uffff\1\161\6\uffff\1\164\24\uffff\1\114\14\uffff\1\171\10\uffff\1\112\5\uffff\1\u0093\7\uffff\1\60\1\154\4\uffff\1\54\5\uffff\1\101\13\uffff\1\55\11\uffff\1\165\1\64\3\uffff\1\160\4\uffff\1\113\3\uffff\1\70\13\uffff\1\131\5\uffff\1\122\2\uffff\1\u009f\7\uffff\1\123\11\uffff\1\u0089\3\uffff\1\u008c\2\uffff\1\45\1\uffff\1\62\1\100\15\uffff\1\46\10\uffff\1\56\1\uffff\1\162\1\uffff\1\174\1\106\10\uffff\1\u0090\1\uffff\1\115\5\uffff\1\74\1\uffff\1\76\15\uffff\1\167\1\111\1\uffff\1\117\12\uffff\1\42\1\uffff\1\61\1\63\3\uffff\1\155\2\uffff\1\u0082\2\uffff\1\43\1\50\1\47\6\uffff\1\u008b\1\uffff\1\53\1\57\1\65\2\uffff\1\u0088\1\uffff\1\67\1\uffff\1\125\14\uffff\1\u0098\2\uffff\1\u0096\6\uffff\1\166\1\116\5\uffff\1\170\1\u0097\1\uffff\1\41\1\uffff\1\u0085\3\uffff\1\u0084\7\uffff\1\172\1\uffff\1\52\1\51\10\uffff\1\157\1\uffff\1\72\1\102\1\73\1\75\1\77\1\uffff\1\110\1\130\7\uffff\1\120\1\121\1\uffff\1\132\13\uffff\1\126\1\u008a\1\u0095\1\66\5\uffff\1\124\1\uffff\1\u0083\6\uffff\1\u008e\1\uffff\1\u0091\1\44\7\uffff\1\u0092\7\uffff\1\u0087\1\uffff\1\127\1\136\5\uffff\1\u0081\1\uffff\1\u0086\1\u0099\1\152\1\105\2\uffff\1\133\6\uffff\1\u008d\3\uffff\1\u0094\1\71\2\uffff\1\u0080\1\u008f\2\uffff\1\177\1\141\1\173\2\uffff\1\137\1\uffff\1\134\1\uffff\1\140\1\135";
     static final String DFA21_specialS =
-        "\1\0\u0265\uffff}>";
+        "\1\0\u02e9\uffff}>";
     static final String[] DFA21_transitionS = {
-            "\11\65\2\64\2\65\1\64\22\65\1\64\1\11\1\62\1\51\1\61\1\10\1\3\1\63\1\45\1\46\1\6\1\4\1\47\1\5\1\14\1\7\1\56\11\57\1\53\1\43\1\13\1\1\1\12\1\15\1\44\32\61\1\52\1\65\1\50\1\60\1\61\1\65\1\34\1\37\1\26\1\30\1\17\1\22\1\40\1\55\1\21\2\61\1\27\1\41\1\24\1\23\1\31\1\61\1\42\1\20\1\35\1\36\1\16\1\25\2\61\1\54\1\32\1\2\1\33\uff82\65",
-            "\1\66\1\67",
-            "\1\71",
-            "\1\73",
-            "\1\76\21\uffff\1\75",
-            "\1\102\17\uffff\1\100\1\101",
-            "\1\105\22\uffff\1\104",
-            "\1\110\4\uffff\1\111\15\uffff\1\107",
-            "\1\113",
-            "\1\115",
-            "\1\117",
-            "\1\121",
-            "\1\123",
-            "\1\126\13\uffff\1\125",
+            "\11\72\2\71\2\72\1\71\22\72\1\71\1\11\1\67\1\56\1\66\1\10\1\3\1\70\1\52\1\53\1\6\1\4\1\54\1\5\1\14\1\7\1\63\11\64\1\60\1\50\1\13\1\1\1\12\1\15\1\51\1\33\1\66\1\36\1\32\17\66\1\35\1\66\1\34\4\66\1\57\1\72\1\55\1\65\1\66\1\72\1\41\1\44\1\26\1\30\1\17\1\22\1\45\1\62\1\21\2\66\1\27\1\46\1\24\1\23\1\31\1\66\1\47\1\20\1\42\1\43\1\16\1\25\2\66\1\61\1\37\1\2\1\40\uff82\72",
+            "\1\73\1\74",
+            "\1\76",
+            "\1\100",
+            "\1\103\21\uffff\1\102",
+            "\1\107\17\uffff\1\105\1\106",
+            "\1\112\22\uffff\1\111",
+            "\1\115\4\uffff\1\116\15\uffff\1\114",
+            "\1\120",
+            "\1\122",
+            "\1\124",
+            "\1\126",
             "\1\130",
-            "\1\133\12\uffff\1\134\1\135\12\uffff\1\132",
-            "\1\142\2\uffff\1\145\3\uffff\1\140\2\uffff\1\141\4\uffff\1\136\1\137\1\uffff\1\143\1\uffff\1\144",
-            "\1\150\6\uffff\1\146\1\147",
-            "\1\151\7\uffff\1\153\5\uffff\1\152",
-            "\1\154",
-            "\1\156\11\uffff\1\155\3\uffff\1\160\1\uffff\1\157",
-            "\1\161\2\uffff\1\162",
-            "\1\163\6\uffff\1\164\6\uffff\1\166\5\uffff\1\165",
-            "\1\172\3\uffff\1\171\3\uffff\1\167\5\uffff\1\170",
-            "\1\173\3\uffff\1\175\11\uffff\1\174",
-            "\1\177\7\uffff\1\u0080\17\uffff\1\176",
+            "\1\133\13\uffff\1\132",
+            "\1\135",
+            "\1\140\12\uffff\1\141\1\142\12\uffff\1\137",
+            "\1\150\3\uffff\1\147\2\uffff\1\153\3\uffff\1\145\2\uffff\1\146\4\uffff\1\143\1\144\1\uffff\1\151\1\uffff\1\152",
+            "\1\156\6\uffff\1\154\1\155",
+            "\1\157\7\uffff\1\161\5\uffff\1\160",
+            "\1\162",
+            "\1\164\11\uffff\1\163\3\uffff\1\166\1\uffff\1\165",
+            "\1\167\2\uffff\1\170",
+            "\1\171\6\uffff\1\172\6\uffff\1\174\5\uffff\1\173",
+            "\1\u0080\3\uffff\1\177\3\uffff\1\175\5\uffff\1\176",
+            "\1\u0081\3\uffff\1\u0083\11\uffff\1\u0082",
+            "\1\u0085\7\uffff\1\u0086\17\uffff\1\u0084",
+            "\1\u0087",
+            "\1\u0088",
+            "\1\u0089",
+            "\1\u008a",
+            "\1\u008b",
             "",
             "",
-            "\1\u0086\1\uffff\1\u0085\4\uffff\1\u0083\4\uffff\1\u0084",
-            "\1\u008a\6\uffff\1\u0087\2\uffff\1\u0088\6\uffff\1\u0089",
-            "\1\u008c\2\uffff\1\u008b",
-            "\1\u008d\23\uffff\1\u008e",
-            "\1\u008f\20\uffff\1\u0090",
-            "\1\u0092\7\uffff\1\u0091\13\uffff\1\u0093",
-            "\1\u0094",
+            "\1\u0091\1\uffff\1\u0090\4\uffff\1\u008e\4\uffff\1\u008f",
+            "\1\u0094\2\uffff\1\u0097\1\u0095\5\uffff\1\u0092\2\uffff\1\u0093\6\uffff\1\u0096",
+            "\1\u0099\2\uffff\1\u0098",
+            "\1\u009a\23\uffff\1\u009b",
+            "\1\u009c\20\uffff\1\u009d",
+            "\1\u009f\7\uffff\1\u009e\13\uffff\1\u00a0",
+            "\1\u00a1",
             "",
             "",
             "",
@@ -5103,143 +5601,110 @@
             "",
             "",
             "",
-            "\1\u009d",
-            "\1\u009f",
-            "\1\u00a0",
-            "\12\u00a2\10\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4\13\uffff\1\u00a1\6\uffff\1\u00a2\2\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4\13\uffff\1\u00a1",
-            "\12\u00a2\10\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4\22\uffff\1\u00a2\2\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4",
-            "\1\131\34\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u00aa",
+            "\1\u00ac",
+            "\1\u00ad",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\13\uffff\1\u00ae\6\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\13\uffff\1\u00ae",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\22\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1",
+            "\1\136\34\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "",
             "",
             "",
             "",
             "",
-            "\1\u00a7",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00a9",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00ab",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00ad\5\uffff\1\u00ae",
-            "",
-            "\1\u00af",
-            "\1\u00b0",
-            "\1\u00b1",
-            "\1\u00b2",
-            "\1\u00b3",
             "\1\u00b4",
-            "\1\u00b5",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00b6",
-            "\1\u00b7\4\uffff\1\u00b8",
-            "\1\u00ba\7\uffff\1\u00b9",
-            "\1\u00bb",
-            "\1\u00bc\15\uffff\1\u00bd",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00b8",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00ba\5\uffff\1\u00bb",
+            "",
+            "\1\u00bc",
+            "\1\u00bd",
             "\1\u00be",
-            "\1\u00bf\1\u00c0",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u00c2\6\uffff\1\u00c3",
-            "\1\u00c4",
-            "\1\u00c6\1\uffff\1\u00c5",
+            "\1\u00bf",
+            "\1\u00c0",
+            "\1\u00c1",
+            "\1\u00c2",
+            "\1\u00c3",
+            "\1\u00c5\4\uffff\1\u00c6\5\uffff\1\u00c4",
             "\1\u00c7",
-            "\1\u00c8",
-            "\1\u00c9",
+            "\1\u00c9\7\uffff\1\u00c8",
             "\1\u00ca",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u00cc",
+            "\1\u00cb\15\uffff\1\u00cc",
             "\1\u00cd",
-            "\1\u00cf\1\u00ce",
-            "\1\u00d0",
-            "\1\u00d1",
-            "\1\u00d2",
-            "\1\u00d3",
-            "\1\u00d4",
-            "\1\u00d5",
-            "\1\u00d6",
+            "\1\u00ce\1\u00cf",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u00d1\6\uffff\1\u00d2",
+            "\1\u00d3\3\uffff\1\u00d4",
+            "\1\u00d6\1\uffff\1\u00d5",
             "\1\u00d7",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\15\131\1\u00d8\14\131",
-            "\1\u00da\14\uffff\1\u00db",
-            "\1\u00dc",
+            "\1\u00d9\45\uffff\1\u00d8",
+            "\1\u00da",
+            "\1\u00db",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u00dd",
             "\1\u00de",
-            "",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u00e0",
-            "\1\u00e1\1\uffff\1\u00e2",
+            "\1\u00e0\1\u00df",
+            "\1\u00e1",
+            "\1\u00e2",
             "\1\u00e3",
-            "\1\u00e5\7\uffff\1\u00e4",
-            "\1\u00e8\3\uffff\1\u00e6\17\uffff\1\u00e9\3\uffff\1\u00e7",
-            "\1\u00ea",
-            "\1\u00eb",
-            "\1\u00ec",
+            "\1\u00e4",
+            "\1\u00e5",
+            "\1\u00e6",
+            "\1\u00e7",
+            "\1\u00e8",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\15\136\1\u00e9\14\136",
+            "\1\u00eb\14\uffff\1\u00ec",
             "\1\u00ed",
             "\1\u00ee",
             "\1\u00ef",
             "\1\u00f0",
             "\1\u00f1",
             "\1\u00f2",
-            "\1\u00f4\7\uffff\1\u00f3",
-            "\1\u00f5",
-            "\1\u00f6\1\uffff\1\u00f8\3\uffff\1\u00f7",
+            "\1\u00f3",
+            "\1\u00f4",
             "",
             "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00f9",
-            "\1\u00fa",
-            "",
-            "\12\u00a2\10\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4\22\uffff\1\u00a2\2\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u00fd",
-            "\1\u00fe",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u00f6",
+            "\1\u00f7",
+            "\1\u00f8",
+            "\1\u00fa\7\uffff\1\u00f9",
+            "\1\u00fd\3\uffff\1\u00fb\17\uffff\1\u00fe\3\uffff\1\u00fc",
             "\1\u00ff",
             "\1\u0100",
-            "\1\u0102\20\uffff\1\u0101",
+            "\1\u0101",
+            "\1\u0102",
             "\1\u0103",
             "\1\u0104",
             "\1\u0105",
@@ -5247,84 +5712,100 @@
             "\1\u0107",
             "\1\u0108",
             "\1\u0109",
-            "\1\u010a",
-            "\1\u010b",
-            "\1\u010d\4\uffff\1\u010c",
-            "\1\u010e",
-            "\1\u010f\12\uffff\1\u0110",
+            "\1\u010b\7\uffff\1\u010a",
+            "\1\u010c",
+            "\1\u010d\1\uffff\1\u010f\3\uffff\1\u010e",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0110",
             "\1\u0111",
             "",
-            "\1\u0112",
-            "\1\u0113",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\22\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u0114",
             "\1\u0115",
             "\1\u0116",
             "\1\u0117",
-            "\1\u0118\6\uffff\1\u0119",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0119\20\uffff\1\u0118",
+            "\1\u011a",
             "\1\u011b",
-            "",
             "\1\u011c",
             "\1\u011d",
-            "\1\u011f\1\uffff\1\u011e",
+            "\1\u011e",
+            "\1\u011f",
             "\1\u0120",
             "\1\u0121",
             "\1\u0122",
             "\1\u0123",
             "\1\u0124",
-            "\1\u0125",
-            "\1\u0126",
+            "\1\u0126\4\uffff\1\u0125",
             "\1\u0127",
-            "\1\u0129\3\uffff\1\u0128",
+            "\1\u0128\12\uffff\1\u0129",
             "\1\u012a",
             "",
             "\1\u012b",
             "\1\u012c",
             "\1\u012d",
-            "\1\u012e",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u012f",
             "\1\u0130",
             "\1\u0131",
-            "\1\u0132",
-            "\1\u0133",
+            "\1\u0132\6\uffff\1\u0133",
             "\1\u0134",
-            "\1\u0135",
-            "\1\u0136\10\uffff\1\u0137",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u0139",
-            "\1\u013a",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u0136",
+            "",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\u013a\1\uffff\1\u0139",
             "\1\u013b",
             "\1\u013c",
             "\1\u013d",
             "\1\u013e",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u013f",
             "\1\u0140",
             "\1\u0141",
             "\1\u0142",
-            "\1\u0143",
-            "\1\u0144",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0144\3\uffff\1\u0143",
+            "\1\u0145",
+            "",
             "\1\u0146",
             "\1\u0147",
             "\1\u0148",
             "\1\u0149",
-            "\1\u014a",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u014b",
-            "",
-            "",
             "\1\u014c",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u014d",
+            "\1\u014e",
             "\1\u014f",
+            "",
             "\1\u0150",
             "\1\u0151",
             "\1\u0152",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0153",
             "\1\u0154",
-            "\1\u0155",
-            "\1\u0156",
-            "\1\u0157",
+            "\1\u0155\10\uffff\1\u0156",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u0158",
             "\1\u0159",
             "\1\u015a",
@@ -5333,346 +5814,490 @@
             "\1\u015d",
             "\1\u015e",
             "\1\u015f",
-            "\1\u0160",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u0161",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
+            "\1\u0162",
             "\1\u0163",
-            "\1\u0164\12\uffff\1\u0165",
-            "\1\u0166",
+            "\1\u0164",
+            "\1\u0165",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u0167",
             "\1\u0168",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0169",
+            "\1\u016a",
             "\1\u016b",
             "\1\u016c",
+            "",
+            "",
             "\1\u016d",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u016f",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u0170",
             "\1\u0171",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\1\u0172\31\131",
-            "\1\u0174",
+            "\1\u0172",
+            "\1\u0173",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u0175",
-            "\1\u0176",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0177\1\u0176",
             "\1\u0178",
             "\1\u0179",
             "\1\u017a",
             "\1\u017b",
             "\1\u017c",
             "\1\u017d",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u017e",
             "\1\u017f",
             "\1\u0180",
             "\1\u0181",
-            "\1\u0182\21\uffff\1\u0183",
+            "\1\u0182",
+            "\1\u0183",
             "\1\u0184",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u0186",
+            "\1\u0185",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u0187\14\uffff\1\u0188",
             "",
-            "\1\u0187",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u0189",
-            "\1\u018a",
-            "\1\u018b",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
+            "\1\u018a\12\uffff\1\u018b",
+            "\1\u018c",
             "\1\u018d",
             "\1\u018e",
             "\1\u018f",
-            "\1\u0190",
-            "\1\u0191",
             "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u0192",
             "\1\u0193",
             "\1\u0194",
-            "\1\u0195",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u0196",
             "\1\u0197",
-            "\1\u0198\16\uffff\1\u0199",
-            "",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0198",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\1\u0199\31\136",
             "\1\u019b",
             "\1\u019c",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "\1\131\10\uffff\1\u019e\2\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u019d",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u019f",
             "\1\u01a0",
             "\1\u01a1",
             "\1\u01a2",
             "\1\u01a3",
             "\1\u01a4",
+            "",
             "\1\u01a5",
             "\1\u01a6",
             "\1\u01a7",
             "\1\u01a8",
             "\1\u01a9",
-            "\1\u01aa",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u01ab",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "\1\u01ad",
-            "\1\u01ae",
+            "\1\u01ac",
+            "\1\u01ad\21\uffff\1\u01ae",
             "\1\u01af",
-            "\1\u01b0",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u01b1",
-            "\1\131\10\uffff\1\u01b2\2\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u01b5",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01b2",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u01b4",
+            "\1\u01b5\4\uffff\1\u01b6\15\uffff\1\u01b7",
             "\1\u01b8",
             "\1\u01b9",
             "\1\u01ba",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "",
-            "\1\u01bb",
             "\1\u01bc",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
+            "\1\u01bd",
             "\1\u01be",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01bf",
             "\1\u01c0",
+            "",
             "\1\u01c1",
             "\1\u01c2",
             "\1\u01c3",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u01c5",
+            "\1\u01c4",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u01c6",
-            "\1\u01c7",
-            "\1\u01c8",
-            "\1\u01c9",
+            "\1\u01c7\16\uffff\1\u01c8",
             "",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u01ca",
             "\1\u01cb",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "",
-            "\1\u01cc",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "\1\u01cf",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\136\10\uffff\1\u01cd\2\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u01d0",
             "\1\u01d1",
             "\1\u01d2",
+            "",
             "\1\u01d3",
             "\1\u01d4",
             "\1\u01d5",
             "\1\u01d6",
             "\1\u01d7",
-            "",
             "\1\u01d8",
             "\1\u01d9",
             "\1\u01da",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01db",
             "\1\u01dc",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "",
-            "\1\u01dd\21\uffff\1\u01de",
-            "",
+            "\1\u01de",
             "\1\u01df",
             "\1\u01e0",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01e1",
             "\1\u01e2",
             "\1\u01e3",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u01e5",
-            "\1\u01e6",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\10\uffff\1\u01e8\2\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u01ea",
-            "\1\u01eb",
+            "\1\u01e4",
+            "\1\136\10\uffff\1\u01e5\2\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u01e7",
             "",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u01e9",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u01ec",
             "\1\u01ed",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01ee",
+            "",
             "\1\u01ef",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u01f1\21\uffff\1\u01f2",
+            "\1\u01f0",
+            "\1\136\13\uffff\12\136\7\uffff\1\u01f1\4\136\1\u01f2\15\136\1\u01f3\6\136\4\uffff\1\136\1\uffff\32\136",
             "",
-            "",
-            "\1\u01f3",
-            "",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "\1\u01f5",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u01f7",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
+            "\1\u01f8",
             "\1\u01f9",
-            "",
             "\1\u01fa",
             "\1\u01fb",
-            "\1\u01fc",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u01fd",
-            "",
             "\1\u01fe",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u01ff",
+            "",
             "\1\u0200",
             "\1\u0201",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0202",
             "\1\u0203",
             "\1\u0204",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
             "",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0205",
+            "\1\u0206",
             "",
             "\1\u0207",
             "\1\u0208",
             "\1\u0209",
             "\1\u020a",
             "\1\u020b",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
             "\1\u020e",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u0210",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "",
+            "\1\u0211",
             "\1\u0212",
             "\1\u0213",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0214",
             "\1\u0215",
-            "",
             "\1\u0216",
+            "",
             "\1\u0217",
-            "",
-            "",
-            "",
             "\1\u0218",
             "\1\u0219",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u021b",
             "",
-            "\1\131\10\uffff\1\u021c\2\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
+            "\1\u021c\21\uffff\1\u021d",
             "",
             "",
             "\1\u021e",
-            "",
             "\1\u021f",
-            "",
             "\1\u0220",
-            "",
-            "\1\u0221",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u0222",
             "\1\u0223",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u0225",
             "\1\u0226",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "\1\u0229",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\10\uffff\1\u0228\2\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u022a",
-            "",
-            "",
             "\1\u022b",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "",
+            "\1\u022c",
+            "\1\u022d",
             "\1\u022e",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "",
-            "\1\u0230",
-            "",
+            "\1\u022f",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u0231",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u0233\21\uffff\1\u0234",
             "",
-            "\1\u0232",
-            "\1\u0233",
-            "",
-            "\1\u0234",
             "\1\u0235",
+            "",
             "\1\u0236",
-            "\1\u0237",
+            "",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u0238",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u023b",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u023a",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u023c",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
+            "\1\u023d",
             "\1\u023e",
             "",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
+            "\1\u023f",
             "",
             "\1\u0240",
             "\1\u0241",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "",
+            "\1\u0242",
             "\1\u0243",
+            "\1\u0244",
             "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0245",
+            "",
             "\1\u0246",
             "\1\u0247",
-            "\1\u0248",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u0249",
             "\1\u024a",
-            "\1\u024b",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u024c",
             "\1\u024d",
             "\1\u024e",
-            "",
             "\1\u024f",
-            "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0250",
             "\1\u0251",
-            "",
-            "\1\u0252",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "",
             "",
-            "\1\u0253",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "\1\u0254",
             "\1\u0255",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "",
-            "\1\u0259",
-            "\1\u025a",
+            "\1\u0256",
+            "\1\u0257",
+            "\1\u0258",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
             "\1\u025b",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u025d",
             "",
-            "\1\u025c",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\u025e",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
             "",
             "\1\u025f",
+            "\1\u0260",
+            "\1\u0261",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u0263",
+            "",
+            "\1\u0264",
+            "\1\u0265",
             "",
             "",
             "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\u0266",
+            "\1\u0267",
+            "\1\u0268",
+            "\1\u0269",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u026b",
             "",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
-            "\1\131\13\uffff\12\131\7\uffff\32\131\4\uffff\1\131\1\uffff\32\131",
+            "\1\136\10\uffff\1\u026c\2\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "",
+            "",
+            "\1\u026e",
+            "\1\u026f",
+            "",
+            "\1\u0270",
+            "",
+            "\1\u0271",
+            "",
+            "\1\u0272",
+            "\1\u0273",
+            "\1\u0274",
+            "\1\u0275",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u0277",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u027c",
+            "\1\u027d",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "\1\u0280",
+            "\1\u0281",
+            "\1\u0282",
+            "\1\u0283",
+            "\1\u0284",
+            "\1\u0285",
+            "",
+            "",
+            "\1\u0286",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u0289",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "",
+            "\1\u028b",
+            "",
+            "\1\u028c",
+            "",
+            "\1\u028d",
+            "\1\u028e",
+            "\1\u028f",
+            "",
+            "\1\u0290",
+            "\1\u0291",
+            "\1\u0292",
+            "\1\u0293",
+            "\1\u0294",
+            "\1\u0295",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u029a",
+            "\1\u029b",
+            "\1\u029c",
+            "\1\u029d",
+            "\1\u029e",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "\1\u02a0",
             "",
             "",
             "",
             "",
             "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "",
+            "\1\u02a2",
+            "\1\u02a3",
+            "\1\u02a4",
+            "\1\u02a5",
+            "\1\u02a6",
+            "\1\u02a7",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "",
+            "\1\u02a9",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u02ac",
+            "\1\u02ad",
+            "\1\u02ae",
+            "\1\u02af",
+            "\1\u02b0",
+            "\1\u02b1",
+            "\1\u02b2",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u02b4",
+            "",
+            "",
+            "",
+            "",
+            "\1\u02b5",
+            "\1\u02b6",
+            "\1\u02b7",
+            "\1\u02b8",
+            "\1\u02b9",
+            "",
+            "\1\u02ba",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u02bc",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u02bf",
+            "\1\u02c0",
+            "",
+            "\1\u02c1",
+            "",
+            "",
+            "\1\u02c2",
+            "\1\u02c3",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u02c5",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u02ca",
+            "\1\u02cb",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u02cd",
+            "\1\u02ce",
+            "\1\u02cf",
+            "",
+            "\1\u02d0",
+            "",
+            "",
+            "\1\u02d1",
+            "\1\u02d2",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u02d4",
+            "\1\u02d5",
+            "",
+            "\1\u02d6",
+            "",
+            "",
+            "",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "\1\u02d9",
+            "\1\u02da",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u02dd",
+            "\1\u02de",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "",
+            "\1\u02e2",
+            "\1\u02e3",
+            "",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u02e5",
+            "",
+            "",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "\1\u02e7",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
+            "\1\136\13\uffff\12\136\7\uffff\32\136\4\uffff\1\136\1\uffff\32\136",
+            "",
             ""
     };
 
@@ -5706,7 +6331,7 @@
             this.transition = DFA21_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | 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;
@@ -5766,61 +6391,71 @@
 
                         else if ( (LA21_0=='p') ) {s = 25;}
 
-                        else if ( (LA21_0=='{') ) {s = 26;}
+                        else if ( (LA21_0=='D') ) {s = 26;}
 
-                        else if ( (LA21_0=='}') ) {s = 27;}
+                        else if ( (LA21_0=='A') ) {s = 27;}
 
-                        else if ( (LA21_0=='a') ) {s = 28;}
+                        else if ( (LA21_0=='V') ) {s = 28;}
 
-                        else if ( (LA21_0=='t') ) {s = 29;}
+                        else if ( (LA21_0=='T') ) {s = 29;}
 
-                        else if ( (LA21_0=='u') ) {s = 30;}
+                        else if ( (LA21_0=='C') ) {s = 30;}
 
-                        else if ( (LA21_0=='b') ) {s = 31;}
+                        else if ( (LA21_0=='{') ) {s = 31;}
 
-                        else if ( (LA21_0=='g') ) {s = 32;}
+                        else if ( (LA21_0=='}') ) {s = 32;}
 
-                        else if ( (LA21_0=='m') ) {s = 33;}
+                        else if ( (LA21_0=='a') ) {s = 33;}
 
-                        else if ( (LA21_0=='r') ) {s = 34;}
+                        else if ( (LA21_0=='t') ) {s = 34;}
 
-                        else if ( (LA21_0==';') ) {s = 35;}
+                        else if ( (LA21_0=='u') ) {s = 35;}
 
-                        else if ( (LA21_0=='@') ) {s = 36;}
+                        else if ( (LA21_0=='b') ) {s = 36;}
 
-                        else if ( (LA21_0=='(') ) {s = 37;}
+                        else if ( (LA21_0=='g') ) {s = 37;}
 
-                        else if ( (LA21_0==')') ) {s = 38;}
+                        else if ( (LA21_0=='m') ) {s = 38;}
 
-                        else if ( (LA21_0==',') ) {s = 39;}
+                        else if ( (LA21_0=='r') ) {s = 39;}
 
-                        else if ( (LA21_0==']') ) {s = 40;}
+                        else if ( (LA21_0==';') ) {s = 40;}
 
-                        else if ( (LA21_0=='#') ) {s = 41;}
+                        else if ( (LA21_0=='@') ) {s = 41;}
 
-                        else if ( (LA21_0=='[') ) {s = 42;}
+                        else if ( (LA21_0=='(') ) {s = 42;}
 
-                        else if ( (LA21_0==':') ) {s = 43;}
+                        else if ( (LA21_0==')') ) {s = 43;}
 
-                        else if ( (LA21_0=='z') ) {s = 44;}
+                        else if ( (LA21_0==',') ) {s = 44;}
 
-                        else if ( (LA21_0=='h') ) {s = 45;}
+                        else if ( (LA21_0==']') ) {s = 45;}
 
-                        else if ( (LA21_0=='0') ) {s = 46;}
+                        else if ( (LA21_0=='#') ) {s = 46;}
 
-                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 47;}
+                        else if ( (LA21_0=='[') ) {s = 47;}
 
-                        else if ( (LA21_0=='^') ) {s = 48;}
+                        else if ( (LA21_0==':') ) {s = 48;}
 
-                        else if ( (LA21_0=='$'||(LA21_0>='A' && LA21_0<='Z')||LA21_0=='_'||(LA21_0>='j' && LA21_0<='k')||LA21_0=='q'||(LA21_0>='x' && LA21_0<='y')) ) {s = 49;}
+                        else if ( (LA21_0=='z') ) {s = 49;}
 
-                        else if ( (LA21_0=='\"') ) {s = 50;}
+                        else if ( (LA21_0=='h') ) {s = 50;}
 
-                        else if ( (LA21_0=='\'') ) {s = 51;}
+                        else if ( (LA21_0=='0') ) {s = 51;}
 
-                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 52;}
+                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 52;}
 
-                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 53;}
+                        else if ( (LA21_0=='^') ) {s = 53;}
+
+                        else if ( (LA21_0=='$'||LA21_0=='B'||(LA21_0>='E' && LA21_0<='S')||LA21_0=='U'||(LA21_0>='W' && LA21_0<='Z')||LA21_0=='_'||(LA21_0>='j' && LA21_0<='k')||LA21_0=='q'||(LA21_0>='x' && LA21_0<='y')) ) {s = 54;}
+
+                        else if ( (LA21_0=='\"') ) {s = 55;}
+
+                        else if ( (LA21_0=='\'') ) {s = 56;}
+
+                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 57;}
+
+                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 58;}
 
                         if ( s>=0 ) return s;
                         break;
diff --git a/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSLParser.java b/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSLParser.java
index dcb23cc..16e4017 100644
--- a/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSLParser.java
+++ b/org.eclipse.osbp.xtext.chart.ide/src-gen/org/eclipse/osbp/xtext/chart/ide/contentassist/antlr/internal/InternalChartDSLParser.java
@@ -40,7 +40,7 @@
 @SuppressWarnings("all")
 public class InternalChartDSLParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'inside'", "'inside-grid'", "'outside'", "'outside-grid'", "'normal'", "'slow'", "'fast'", "'north'", "'north-east'", "'east'", "'south-east'", "'south'", "'south-west'", "'west'", "'north-west'", "'category'", "'linear'", "'date'", "'logarithmic'", "'pyramid'", "'package'", "'{'", "'}'", "'chart'", "'as'", "'toolbar'", "'using'", "'bar'", "'line'", "'pie'", "'donut'", "'bubble'", "'gauge'", "'minimum'", "'maximum'", "'tree'", "'upTo'", "'datamart'", "'legend'", "'tooltip'", "'axis'", "'renders'", "'angle'", "'segmentcolor'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'describedBy'", "'selectById'", "'shaded'", "'animated'", "'swapped'", "'stacked'", "'showMarker'", "'trendLine'", "'cursor'", "'zoom'", "'fillZero'", "'filled'", "'empty'", "'multiplier'", "'gradient'", "'transparent'", "'label'", "'hasTicks'", "'intervals'", "'map'", "'collapsible'", "'toggle'", "'replot'", "'always'", "'shortLabel'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'inside'", "'inside-grid'", "'outside'", "'outside-grid'", "'normal'", "'slow'", "'fast'", "'north'", "'north-east'", "'east'", "'south-east'", "'south'", "'south-west'", "'west'", "'north-west'", "'category'", "'linear'", "'date'", "'logarithmic'", "'pyramid'", "'Default'", "'Arial'", "'Verdana'", "'Times New Roman'", "'Courier New'", "'serif'", "'sans-serif'", "'package'", "'{'", "'}'", "'fontFamily'", "'chart'", "'as'", "'toolbar'", "'using'", "'bar'", "'line'", "'pie'", "'donut'", "'bubble'", "'gauge'", "'minimum'", "'maximum'", "'tree'", "'upTo'", "'datamart'", "'legend'", "'fontSize'", "'textColor'", "'tooltip'", "'axis'", "'renders'", "'labelAngle'", "'labelFontSize'", "'labelTextColor'", "'tickAngle'", "'tickFontSize'", "'tickTextColor'", "'segmentcolor'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'seriesColors'", "'describedBy'", "'selectById'", "'shaded'", "'animated'", "'swapped'", "'stacked'", "'showMarker'", "'trendLine'", "'cursor'", "'zoom'", "'fillZero'", "'filled'", "'empty'", "'multiplier'", "'gradient'", "'transparent'", "'label'", "'hasTicks'", "'intervals'", "'map'", "'collapsible'", "'noLegend'", "'toggle'", "'replot'", "'always'", "'shortLabel'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
     };
     public static final int T__144=144;
     public static final int T__143=143;
@@ -88,6 +88,15 @@
     public static final int T__128=128;
     public static final int T__65=65;
     public static final int T__127=127;
+    public static final int T__166=166;
+    public static final int T__165=165;
+    public static final int T__168=168;
+    public static final int T__167=167;
+    public static final int T__162=162;
+    public static final int T__161=161;
+    public static final int T__164=164;
+    public static final int T__163=163;
+    public static final int T__160=160;
     public static final int T__37=37;
     public static final int T__38=38;
     public static final int T__39=39;
@@ -95,10 +104,15 @@
     public static final int T__34=34;
     public static final int T__35=35;
     public static final int T__36=36;
+    public static final int T__159=159;
     public static final int T__30=30;
+    public static final int T__158=158;
     public static final int T__31=31;
     public static final int T__32=32;
+    public static final int T__155=155;
     public static final int T__154=154;
+    public static final int T__157=157;
+    public static final int T__156=156;
     public static final int T__151=151;
     public static final int T__150=150;
     public static final int T__153=153;
@@ -136,6 +150,8 @@
     public static final int T__96=96;
     public static final int T__97=97;
     public static final int T__98=98;
+    public static final int T__171=171;
+    public static final int T__170=170;
     public static final int RULE_DECIMAL=8;
     public static final int T__26=26;
     public static final int T__27=27;
@@ -145,6 +161,7 @@
     public static final int T__23=23;
     public static final int T__24=24;
     public static final int T__25=25;
+    public static final int T__169=169;
     public static final int T__20=20;
     public static final int T__21=21;
     public static final int T__122=122;
@@ -400,12 +417,97 @@
     // $ANTLR end "ruleChartPackage"
 
 
+    // $ANTLR start "entryRuleSeriesColor"
+    // InternalChartDSL.g:119:1: entryRuleSeriesColor : ruleSeriesColor EOF ;
+    public final void entryRuleSeriesColor() throws RecognitionException {
+        try {
+            // InternalChartDSL.g:120:1: ( ruleSeriesColor EOF )
+            // InternalChartDSL.g:121:1: ruleSeriesColor EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSeriesColorRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleSeriesColor();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSeriesColorRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSeriesColor"
+
+
+    // $ANTLR start "ruleSeriesColor"
+    // InternalChartDSL.g:128:1: ruleSeriesColor : ( ( rule__SeriesColor__Group__0 ) ) ;
+    public final void ruleSeriesColor() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:132:2: ( ( ( rule__SeriesColor__Group__0 ) ) )
+            // InternalChartDSL.g:133:2: ( ( rule__SeriesColor__Group__0 ) )
+            {
+            // InternalChartDSL.g:133:2: ( ( rule__SeriesColor__Group__0 ) )
+            // InternalChartDSL.g:134:3: ( rule__SeriesColor__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSeriesColorAccess().getGroup()); 
+            }
+            // InternalChartDSL.g:135:3: ( rule__SeriesColor__Group__0 )
+            // InternalChartDSL.g:135:4: rule__SeriesColor__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__SeriesColor__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSeriesColorAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSeriesColor"
+
+
     // $ANTLR start "entryRuleChart"
-    // InternalChartDSL.g:119:1: entryRuleChart : ruleChart EOF ;
+    // InternalChartDSL.g:144:1: entryRuleChart : ruleChart EOF ;
     public final void entryRuleChart() throws RecognitionException {
         try {
-            // InternalChartDSL.g:120:1: ( ruleChart EOF )
-            // InternalChartDSL.g:121:1: ruleChart EOF
+            // InternalChartDSL.g:145:1: ( ruleChart EOF )
+            // InternalChartDSL.g:146:1: ruleChart EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartRule()); 
@@ -435,23 +537,23 @@
 
 
     // $ANTLR start "ruleChart"
-    // InternalChartDSL.g:128:1: ruleChart : ( ( rule__Chart__Group__0 ) ) ;
+    // InternalChartDSL.g:153:1: ruleChart : ( ( rule__Chart__Group__0 ) ) ;
     public final void ruleChart() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:132:2: ( ( ( rule__Chart__Group__0 ) ) )
-            // InternalChartDSL.g:133:2: ( ( rule__Chart__Group__0 ) )
+            // InternalChartDSL.g:157:2: ( ( ( rule__Chart__Group__0 ) ) )
+            // InternalChartDSL.g:158:2: ( ( rule__Chart__Group__0 ) )
             {
-            // InternalChartDSL.g:133:2: ( ( rule__Chart__Group__0 ) )
-            // InternalChartDSL.g:134:3: ( rule__Chart__Group__0 )
+            // InternalChartDSL.g:158:2: ( ( rule__Chart__Group__0 ) )
+            // InternalChartDSL.g:159:3: ( rule__Chart__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getGroup()); 
             }
-            // InternalChartDSL.g:135:3: ( rule__Chart__Group__0 )
-            // InternalChartDSL.g:135:4: rule__Chart__Group__0
+            // InternalChartDSL.g:160:3: ( rule__Chart__Group__0 )
+            // InternalChartDSL.g:160:4: rule__Chart__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__Chart__Group__0();
@@ -486,11 +588,11 @@
 
 
     // $ANTLR start "entryRuleChartOption"
-    // InternalChartDSL.g:144:1: entryRuleChartOption : ruleChartOption EOF ;
+    // InternalChartDSL.g:169:1: entryRuleChartOption : ruleChartOption EOF ;
     public final void entryRuleChartOption() throws RecognitionException {
         try {
-            // InternalChartDSL.g:145:1: ( ruleChartOption EOF )
-            // InternalChartDSL.g:146:1: ruleChartOption EOF
+            // InternalChartDSL.g:170:1: ( ruleChartOption EOF )
+            // InternalChartDSL.g:171:1: ruleChartOption EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartOptionRule()); 
@@ -520,23 +622,23 @@
 
 
     // $ANTLR start "ruleChartOption"
-    // InternalChartDSL.g:153:1: ruleChartOption : ( ( rule__ChartOption__Alternatives ) ) ;
+    // InternalChartDSL.g:178:1: ruleChartOption : ( ( rule__ChartOption__Alternatives ) ) ;
     public final void ruleChartOption() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:157:2: ( ( ( rule__ChartOption__Alternatives ) ) )
-            // InternalChartDSL.g:158:2: ( ( rule__ChartOption__Alternatives ) )
+            // InternalChartDSL.g:182:2: ( ( ( rule__ChartOption__Alternatives ) ) )
+            // InternalChartDSL.g:183:2: ( ( rule__ChartOption__Alternatives ) )
             {
-            // InternalChartDSL.g:158:2: ( ( rule__ChartOption__Alternatives ) )
-            // InternalChartDSL.g:159:3: ( rule__ChartOption__Alternatives )
+            // InternalChartDSL.g:183:2: ( ( rule__ChartOption__Alternatives ) )
+            // InternalChartDSL.g:184:3: ( rule__ChartOption__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartOptionAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:160:3: ( rule__ChartOption__Alternatives )
-            // InternalChartDSL.g:160:4: rule__ChartOption__Alternatives
+            // InternalChartDSL.g:185:3: ( rule__ChartOption__Alternatives )
+            // InternalChartDSL.g:185:4: rule__ChartOption__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__ChartOption__Alternatives();
@@ -571,11 +673,11 @@
 
 
     // $ANTLR start "entryRuleChartBar"
-    // InternalChartDSL.g:169:1: entryRuleChartBar : ruleChartBar EOF ;
+    // InternalChartDSL.g:194:1: entryRuleChartBar : ruleChartBar EOF ;
     public final void entryRuleChartBar() throws RecognitionException {
         try {
-            // InternalChartDSL.g:170:1: ( ruleChartBar EOF )
-            // InternalChartDSL.g:171:1: ruleChartBar EOF
+            // InternalChartDSL.g:195:1: ( ruleChartBar EOF )
+            // InternalChartDSL.g:196:1: ruleChartBar EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarRule()); 
@@ -605,23 +707,23 @@
 
 
     // $ANTLR start "ruleChartBar"
-    // InternalChartDSL.g:178:1: ruleChartBar : ( ( rule__ChartBar__Group__0 ) ) ;
+    // InternalChartDSL.g:203:1: ruleChartBar : ( ( rule__ChartBar__Group__0 ) ) ;
     public final void ruleChartBar() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:182:2: ( ( ( rule__ChartBar__Group__0 ) ) )
-            // InternalChartDSL.g:183:2: ( ( rule__ChartBar__Group__0 ) )
+            // InternalChartDSL.g:207:2: ( ( ( rule__ChartBar__Group__0 ) ) )
+            // InternalChartDSL.g:208:2: ( ( rule__ChartBar__Group__0 ) )
             {
-            // InternalChartDSL.g:183:2: ( ( rule__ChartBar__Group__0 ) )
-            // InternalChartDSL.g:184:3: ( rule__ChartBar__Group__0 )
+            // InternalChartDSL.g:208:2: ( ( rule__ChartBar__Group__0 ) )
+            // InternalChartDSL.g:209:3: ( rule__ChartBar__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getGroup()); 
             }
-            // InternalChartDSL.g:185:3: ( rule__ChartBar__Group__0 )
-            // InternalChartDSL.g:185:4: rule__ChartBar__Group__0
+            // InternalChartDSL.g:210:3: ( rule__ChartBar__Group__0 )
+            // InternalChartDSL.g:210:4: rule__ChartBar__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartBar__Group__0();
@@ -656,11 +758,11 @@
 
 
     // $ANTLR start "entryRuleChartLine"
-    // InternalChartDSL.g:194:1: entryRuleChartLine : ruleChartLine EOF ;
+    // InternalChartDSL.g:219:1: entryRuleChartLine : ruleChartLine EOF ;
     public final void entryRuleChartLine() throws RecognitionException {
         try {
-            // InternalChartDSL.g:195:1: ( ruleChartLine EOF )
-            // InternalChartDSL.g:196:1: ruleChartLine EOF
+            // InternalChartDSL.g:220:1: ( ruleChartLine EOF )
+            // InternalChartDSL.g:221:1: ruleChartLine EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineRule()); 
@@ -690,23 +792,23 @@
 
 
     // $ANTLR start "ruleChartLine"
-    // InternalChartDSL.g:203:1: ruleChartLine : ( ( rule__ChartLine__Group__0 ) ) ;
+    // InternalChartDSL.g:228:1: ruleChartLine : ( ( rule__ChartLine__Group__0 ) ) ;
     public final void ruleChartLine() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:207:2: ( ( ( rule__ChartLine__Group__0 ) ) )
-            // InternalChartDSL.g:208:2: ( ( rule__ChartLine__Group__0 ) )
+            // InternalChartDSL.g:232:2: ( ( ( rule__ChartLine__Group__0 ) ) )
+            // InternalChartDSL.g:233:2: ( ( rule__ChartLine__Group__0 ) )
             {
-            // InternalChartDSL.g:208:2: ( ( rule__ChartLine__Group__0 ) )
-            // InternalChartDSL.g:209:3: ( rule__ChartLine__Group__0 )
+            // InternalChartDSL.g:233:2: ( ( rule__ChartLine__Group__0 ) )
+            // InternalChartDSL.g:234:3: ( rule__ChartLine__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getGroup()); 
             }
-            // InternalChartDSL.g:210:3: ( rule__ChartLine__Group__0 )
-            // InternalChartDSL.g:210:4: rule__ChartLine__Group__0
+            // InternalChartDSL.g:235:3: ( rule__ChartLine__Group__0 )
+            // InternalChartDSL.g:235:4: rule__ChartLine__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartLine__Group__0();
@@ -741,11 +843,11 @@
 
 
     // $ANTLR start "entryRuleChartPie"
-    // InternalChartDSL.g:219:1: entryRuleChartPie : ruleChartPie EOF ;
+    // InternalChartDSL.g:244:1: entryRuleChartPie : ruleChartPie EOF ;
     public final void entryRuleChartPie() throws RecognitionException {
         try {
-            // InternalChartDSL.g:220:1: ( ruleChartPie EOF )
-            // InternalChartDSL.g:221:1: ruleChartPie EOF
+            // InternalChartDSL.g:245:1: ( ruleChartPie EOF )
+            // InternalChartDSL.g:246:1: ruleChartPie EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPieRule()); 
@@ -775,23 +877,23 @@
 
 
     // $ANTLR start "ruleChartPie"
-    // InternalChartDSL.g:228:1: ruleChartPie : ( ( rule__ChartPie__Group__0 ) ) ;
+    // InternalChartDSL.g:253:1: ruleChartPie : ( ( rule__ChartPie__Group__0 ) ) ;
     public final void ruleChartPie() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:232:2: ( ( ( rule__ChartPie__Group__0 ) ) )
-            // InternalChartDSL.g:233:2: ( ( rule__ChartPie__Group__0 ) )
+            // InternalChartDSL.g:257:2: ( ( ( rule__ChartPie__Group__0 ) ) )
+            // InternalChartDSL.g:258:2: ( ( rule__ChartPie__Group__0 ) )
             {
-            // InternalChartDSL.g:233:2: ( ( rule__ChartPie__Group__0 ) )
-            // InternalChartDSL.g:234:3: ( rule__ChartPie__Group__0 )
+            // InternalChartDSL.g:258:2: ( ( rule__ChartPie__Group__0 ) )
+            // InternalChartDSL.g:259:3: ( rule__ChartPie__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPieAccess().getGroup()); 
             }
-            // InternalChartDSL.g:235:3: ( rule__ChartPie__Group__0 )
-            // InternalChartDSL.g:235:4: rule__ChartPie__Group__0
+            // InternalChartDSL.g:260:3: ( rule__ChartPie__Group__0 )
+            // InternalChartDSL.g:260:4: rule__ChartPie__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartPie__Group__0();
@@ -826,11 +928,11 @@
 
 
     // $ANTLR start "entryRuleChartDonut"
-    // InternalChartDSL.g:244:1: entryRuleChartDonut : ruleChartDonut EOF ;
+    // InternalChartDSL.g:269:1: entryRuleChartDonut : ruleChartDonut EOF ;
     public final void entryRuleChartDonut() throws RecognitionException {
         try {
-            // InternalChartDSL.g:245:1: ( ruleChartDonut EOF )
-            // InternalChartDSL.g:246:1: ruleChartDonut EOF
+            // InternalChartDSL.g:270:1: ( ruleChartDonut EOF )
+            // InternalChartDSL.g:271:1: ruleChartDonut EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDonutRule()); 
@@ -860,23 +962,23 @@
 
 
     // $ANTLR start "ruleChartDonut"
-    // InternalChartDSL.g:253:1: ruleChartDonut : ( ( rule__ChartDonut__Group__0 ) ) ;
+    // InternalChartDSL.g:278:1: ruleChartDonut : ( ( rule__ChartDonut__Group__0 ) ) ;
     public final void ruleChartDonut() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:257:2: ( ( ( rule__ChartDonut__Group__0 ) ) )
-            // InternalChartDSL.g:258:2: ( ( rule__ChartDonut__Group__0 ) )
+            // InternalChartDSL.g:282:2: ( ( ( rule__ChartDonut__Group__0 ) ) )
+            // InternalChartDSL.g:283:2: ( ( rule__ChartDonut__Group__0 ) )
             {
-            // InternalChartDSL.g:258:2: ( ( rule__ChartDonut__Group__0 ) )
-            // InternalChartDSL.g:259:3: ( rule__ChartDonut__Group__0 )
+            // InternalChartDSL.g:283:2: ( ( rule__ChartDonut__Group__0 ) )
+            // InternalChartDSL.g:284:3: ( rule__ChartDonut__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDonutAccess().getGroup()); 
             }
-            // InternalChartDSL.g:260:3: ( rule__ChartDonut__Group__0 )
-            // InternalChartDSL.g:260:4: rule__ChartDonut__Group__0
+            // InternalChartDSL.g:285:3: ( rule__ChartDonut__Group__0 )
+            // InternalChartDSL.g:285:4: rule__ChartDonut__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartDonut__Group__0();
@@ -911,11 +1013,11 @@
 
 
     // $ANTLR start "entryRuleChartBubble"
-    // InternalChartDSL.g:269:1: entryRuleChartBubble : ruleChartBubble EOF ;
+    // InternalChartDSL.g:294:1: entryRuleChartBubble : ruleChartBubble EOF ;
     public final void entryRuleChartBubble() throws RecognitionException {
         try {
-            // InternalChartDSL.g:270:1: ( ruleChartBubble EOF )
-            // InternalChartDSL.g:271:1: ruleChartBubble EOF
+            // InternalChartDSL.g:295:1: ( ruleChartBubble EOF )
+            // InternalChartDSL.g:296:1: ruleChartBubble EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleRule()); 
@@ -945,23 +1047,23 @@
 
 
     // $ANTLR start "ruleChartBubble"
-    // InternalChartDSL.g:278:1: ruleChartBubble : ( ( rule__ChartBubble__Group__0 ) ) ;
+    // InternalChartDSL.g:303:1: ruleChartBubble : ( ( rule__ChartBubble__Group__0 ) ) ;
     public final void ruleChartBubble() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:282:2: ( ( ( rule__ChartBubble__Group__0 ) ) )
-            // InternalChartDSL.g:283:2: ( ( rule__ChartBubble__Group__0 ) )
+            // InternalChartDSL.g:307:2: ( ( ( rule__ChartBubble__Group__0 ) ) )
+            // InternalChartDSL.g:308:2: ( ( rule__ChartBubble__Group__0 ) )
             {
-            // InternalChartDSL.g:283:2: ( ( rule__ChartBubble__Group__0 ) )
-            // InternalChartDSL.g:284:3: ( rule__ChartBubble__Group__0 )
+            // InternalChartDSL.g:308:2: ( ( rule__ChartBubble__Group__0 ) )
+            // InternalChartDSL.g:309:3: ( rule__ChartBubble__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getGroup()); 
             }
-            // InternalChartDSL.g:285:3: ( rule__ChartBubble__Group__0 )
-            // InternalChartDSL.g:285:4: rule__ChartBubble__Group__0
+            // InternalChartDSL.g:310:3: ( rule__ChartBubble__Group__0 )
+            // InternalChartDSL.g:310:4: rule__ChartBubble__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartBubble__Group__0();
@@ -996,11 +1098,11 @@
 
 
     // $ANTLR start "entryRuleChartGauge"
-    // InternalChartDSL.g:294:1: entryRuleChartGauge : ruleChartGauge EOF ;
+    // InternalChartDSL.g:319:1: entryRuleChartGauge : ruleChartGauge EOF ;
     public final void entryRuleChartGauge() throws RecognitionException {
         try {
-            // InternalChartDSL.g:295:1: ( ruleChartGauge EOF )
-            // InternalChartDSL.g:296:1: ruleChartGauge EOF
+            // InternalChartDSL.g:320:1: ( ruleChartGauge EOF )
+            // InternalChartDSL.g:321:1: ruleChartGauge EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeRule()); 
@@ -1030,23 +1132,23 @@
 
 
     // $ANTLR start "ruleChartGauge"
-    // InternalChartDSL.g:303:1: ruleChartGauge : ( ( rule__ChartGauge__Group__0 ) ) ;
+    // InternalChartDSL.g:328:1: ruleChartGauge : ( ( rule__ChartGauge__Group__0 ) ) ;
     public final void ruleChartGauge() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:307:2: ( ( ( rule__ChartGauge__Group__0 ) ) )
-            // InternalChartDSL.g:308:2: ( ( rule__ChartGauge__Group__0 ) )
+            // InternalChartDSL.g:332:2: ( ( ( rule__ChartGauge__Group__0 ) ) )
+            // InternalChartDSL.g:333:2: ( ( rule__ChartGauge__Group__0 ) )
             {
-            // InternalChartDSL.g:308:2: ( ( rule__ChartGauge__Group__0 ) )
-            // InternalChartDSL.g:309:3: ( rule__ChartGauge__Group__0 )
+            // InternalChartDSL.g:333:2: ( ( rule__ChartGauge__Group__0 ) )
+            // InternalChartDSL.g:334:3: ( rule__ChartGauge__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getGroup()); 
             }
-            // InternalChartDSL.g:310:3: ( rule__ChartGauge__Group__0 )
-            // InternalChartDSL.g:310:4: rule__ChartGauge__Group__0
+            // InternalChartDSL.g:335:3: ( rule__ChartGauge__Group__0 )
+            // InternalChartDSL.g:335:4: rule__ChartGauge__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__Group__0();
@@ -1081,11 +1183,11 @@
 
 
     // $ANTLR start "entryRuleChartTree"
-    // InternalChartDSL.g:319:1: entryRuleChartTree : ruleChartTree EOF ;
+    // InternalChartDSL.g:344:1: entryRuleChartTree : ruleChartTree EOF ;
     public final void entryRuleChartTree() throws RecognitionException {
         try {
-            // InternalChartDSL.g:320:1: ( ruleChartTree EOF )
-            // InternalChartDSL.g:321:1: ruleChartTree EOF
+            // InternalChartDSL.g:345:1: ( ruleChartTree EOF )
+            // InternalChartDSL.g:346:1: ruleChartTree EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartTreeRule()); 
@@ -1115,23 +1217,23 @@
 
 
     // $ANTLR start "ruleChartTree"
-    // InternalChartDSL.g:328:1: ruleChartTree : ( ( rule__ChartTree__Group__0 ) ) ;
+    // InternalChartDSL.g:353:1: ruleChartTree : ( ( rule__ChartTree__Group__0 ) ) ;
     public final void ruleChartTree() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:332:2: ( ( ( rule__ChartTree__Group__0 ) ) )
-            // InternalChartDSL.g:333:2: ( ( rule__ChartTree__Group__0 ) )
+            // InternalChartDSL.g:357:2: ( ( ( rule__ChartTree__Group__0 ) ) )
+            // InternalChartDSL.g:358:2: ( ( rule__ChartTree__Group__0 ) )
             {
-            // InternalChartDSL.g:333:2: ( ( rule__ChartTree__Group__0 ) )
-            // InternalChartDSL.g:334:3: ( rule__ChartTree__Group__0 )
+            // InternalChartDSL.g:358:2: ( ( rule__ChartTree__Group__0 ) )
+            // InternalChartDSL.g:359:3: ( rule__ChartTree__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartTreeAccess().getGroup()); 
             }
-            // InternalChartDSL.g:335:3: ( rule__ChartTree__Group__0 )
-            // InternalChartDSL.g:335:4: rule__ChartTree__Group__0
+            // InternalChartDSL.g:360:3: ( rule__ChartTree__Group__0 )
+            // InternalChartDSL.g:360:4: rule__ChartTree__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartTree__Group__0();
@@ -1166,11 +1268,11 @@
 
 
     // $ANTLR start "entryRuleChartInterval"
-    // InternalChartDSL.g:344:1: entryRuleChartInterval : ruleChartInterval EOF ;
+    // InternalChartDSL.g:369:1: entryRuleChartInterval : ruleChartInterval EOF ;
     public final void entryRuleChartInterval() throws RecognitionException {
         try {
-            // InternalChartDSL.g:345:1: ( ruleChartInterval EOF )
-            // InternalChartDSL.g:346:1: ruleChartInterval EOF
+            // InternalChartDSL.g:370:1: ( ruleChartInterval EOF )
+            // InternalChartDSL.g:371:1: ruleChartInterval EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartIntervalRule()); 
@@ -1200,17 +1302,17 @@
 
 
     // $ANTLR start "ruleChartInterval"
-    // InternalChartDSL.g:353:1: ruleChartInterval : ( ruleChartNumberInterval ) ;
+    // InternalChartDSL.g:378:1: ruleChartInterval : ( ruleChartNumberInterval ) ;
     public final void ruleChartInterval() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:357:2: ( ( ruleChartNumberInterval ) )
-            // InternalChartDSL.g:358:2: ( ruleChartNumberInterval )
+            // InternalChartDSL.g:382:2: ( ( ruleChartNumberInterval ) )
+            // InternalChartDSL.g:383:2: ( ruleChartNumberInterval )
             {
-            // InternalChartDSL.g:358:2: ( ruleChartNumberInterval )
-            // InternalChartDSL.g:359:3: ruleChartNumberInterval
+            // InternalChartDSL.g:383:2: ( ruleChartNumberInterval )
+            // InternalChartDSL.g:384:3: ruleChartNumberInterval
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartIntervalAccess().getChartNumberIntervalParserRuleCall()); 
@@ -1245,11 +1347,11 @@
 
 
     // $ANTLR start "entryRuleChartNumberInterval"
-    // InternalChartDSL.g:369:1: entryRuleChartNumberInterval : ruleChartNumberInterval EOF ;
+    // InternalChartDSL.g:394:1: entryRuleChartNumberInterval : ruleChartNumberInterval EOF ;
     public final void entryRuleChartNumberInterval() throws RecognitionException {
         try {
-            // InternalChartDSL.g:370:1: ( ruleChartNumberInterval EOF )
-            // InternalChartDSL.g:371:1: ruleChartNumberInterval EOF
+            // InternalChartDSL.g:395:1: ( ruleChartNumberInterval EOF )
+            // InternalChartDSL.g:396:1: ruleChartNumberInterval EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartNumberIntervalRule()); 
@@ -1279,23 +1381,23 @@
 
 
     // $ANTLR start "ruleChartNumberInterval"
-    // InternalChartDSL.g:378:1: ruleChartNumberInterval : ( ( rule__ChartNumberInterval__Group__0 ) ) ;
+    // InternalChartDSL.g:403:1: ruleChartNumberInterval : ( ( rule__ChartNumberInterval__Group__0 ) ) ;
     public final void ruleChartNumberInterval() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:382:2: ( ( ( rule__ChartNumberInterval__Group__0 ) ) )
-            // InternalChartDSL.g:383:2: ( ( rule__ChartNumberInterval__Group__0 ) )
+            // InternalChartDSL.g:407:2: ( ( ( rule__ChartNumberInterval__Group__0 ) ) )
+            // InternalChartDSL.g:408:2: ( ( rule__ChartNumberInterval__Group__0 ) )
             {
-            // InternalChartDSL.g:383:2: ( ( rule__ChartNumberInterval__Group__0 ) )
-            // InternalChartDSL.g:384:3: ( rule__ChartNumberInterval__Group__0 )
+            // InternalChartDSL.g:408:2: ( ( rule__ChartNumberInterval__Group__0 ) )
+            // InternalChartDSL.g:409:3: ( rule__ChartNumberInterval__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartNumberIntervalAccess().getGroup()); 
             }
-            // InternalChartDSL.g:385:3: ( rule__ChartNumberInterval__Group__0 )
-            // InternalChartDSL.g:385:4: rule__ChartNumberInterval__Group__0
+            // InternalChartDSL.g:410:3: ( rule__ChartNumberInterval__Group__0 )
+            // InternalChartDSL.g:410:4: rule__ChartNumberInterval__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartNumberInterval__Group__0();
@@ -1330,11 +1432,11 @@
 
 
     // $ANTLR start "entryRuleChartDatamart"
-    // InternalChartDSL.g:394:1: entryRuleChartDatamart : ruleChartDatamart EOF ;
+    // InternalChartDSL.g:419:1: entryRuleChartDatamart : ruleChartDatamart EOF ;
     public final void entryRuleChartDatamart() throws RecognitionException {
         try {
-            // InternalChartDSL.g:395:1: ( ruleChartDatamart EOF )
-            // InternalChartDSL.g:396:1: ruleChartDatamart EOF
+            // InternalChartDSL.g:420:1: ( ruleChartDatamart EOF )
+            // InternalChartDSL.g:421:1: ruleChartDatamart EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDatamartRule()); 
@@ -1364,23 +1466,23 @@
 
 
     // $ANTLR start "ruleChartDatamart"
-    // InternalChartDSL.g:403:1: ruleChartDatamart : ( ( rule__ChartDatamart__Group__0 ) ) ;
+    // InternalChartDSL.g:428:1: ruleChartDatamart : ( ( rule__ChartDatamart__Group__0 ) ) ;
     public final void ruleChartDatamart() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:407:2: ( ( ( rule__ChartDatamart__Group__0 ) ) )
-            // InternalChartDSL.g:408:2: ( ( rule__ChartDatamart__Group__0 ) )
+            // InternalChartDSL.g:432:2: ( ( ( rule__ChartDatamart__Group__0 ) ) )
+            // InternalChartDSL.g:433:2: ( ( rule__ChartDatamart__Group__0 ) )
             {
-            // InternalChartDSL.g:408:2: ( ( rule__ChartDatamart__Group__0 ) )
-            // InternalChartDSL.g:409:3: ( rule__ChartDatamart__Group__0 )
+            // InternalChartDSL.g:433:2: ( ( rule__ChartDatamart__Group__0 ) )
+            // InternalChartDSL.g:434:3: ( rule__ChartDatamart__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDatamartAccess().getGroup()); 
             }
-            // InternalChartDSL.g:410:3: ( rule__ChartDatamart__Group__0 )
-            // InternalChartDSL.g:410:4: rule__ChartDatamart__Group__0
+            // InternalChartDSL.g:435:3: ( rule__ChartDatamart__Group__0 )
+            // InternalChartDSL.g:435:4: rule__ChartDatamart__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartDatamart__Group__0();
@@ -1415,11 +1517,11 @@
 
 
     // $ANTLR start "entryRuleChartElement"
-    // InternalChartDSL.g:419:1: entryRuleChartElement : ruleChartElement EOF ;
+    // InternalChartDSL.g:444:1: entryRuleChartElement : ruleChartElement EOF ;
     public final void entryRuleChartElement() throws RecognitionException {
         try {
-            // InternalChartDSL.g:420:1: ( ruleChartElement EOF )
-            // InternalChartDSL.g:421:1: ruleChartElement EOF
+            // InternalChartDSL.g:445:1: ( ruleChartElement EOF )
+            // InternalChartDSL.g:446:1: ruleChartElement EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartElementRule()); 
@@ -1449,23 +1551,23 @@
 
 
     // $ANTLR start "ruleChartElement"
-    // InternalChartDSL.g:428:1: ruleChartElement : ( ( rule__ChartElement__Alternatives ) ) ;
+    // InternalChartDSL.g:453:1: ruleChartElement : ( ( rule__ChartElement__Alternatives ) ) ;
     public final void ruleChartElement() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:432:2: ( ( ( rule__ChartElement__Alternatives ) ) )
-            // InternalChartDSL.g:433:2: ( ( rule__ChartElement__Alternatives ) )
+            // InternalChartDSL.g:457:2: ( ( ( rule__ChartElement__Alternatives ) ) )
+            // InternalChartDSL.g:458:2: ( ( rule__ChartElement__Alternatives ) )
             {
-            // InternalChartDSL.g:433:2: ( ( rule__ChartElement__Alternatives ) )
-            // InternalChartDSL.g:434:3: ( rule__ChartElement__Alternatives )
+            // InternalChartDSL.g:458:2: ( ( rule__ChartElement__Alternatives ) )
+            // InternalChartDSL.g:459:3: ( rule__ChartElement__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartElementAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:435:3: ( rule__ChartElement__Alternatives )
-            // InternalChartDSL.g:435:4: rule__ChartElement__Alternatives
+            // InternalChartDSL.g:460:3: ( rule__ChartElement__Alternatives )
+            // InternalChartDSL.g:460:4: rule__ChartElement__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__ChartElement__Alternatives();
@@ -1500,11 +1602,11 @@
 
 
     // $ANTLR start "entryRuleChartLegend"
-    // InternalChartDSL.g:444:1: entryRuleChartLegend : ruleChartLegend EOF ;
+    // InternalChartDSL.g:469:1: entryRuleChartLegend : ruleChartLegend EOF ;
     public final void entryRuleChartLegend() throws RecognitionException {
         try {
-            // InternalChartDSL.g:445:1: ( ruleChartLegend EOF )
-            // InternalChartDSL.g:446:1: ruleChartLegend EOF
+            // InternalChartDSL.g:470:1: ( ruleChartLegend EOF )
+            // InternalChartDSL.g:471:1: ruleChartLegend EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLegendRule()); 
@@ -1534,23 +1636,23 @@
 
 
     // $ANTLR start "ruleChartLegend"
-    // InternalChartDSL.g:453:1: ruleChartLegend : ( ( rule__ChartLegend__Group__0 ) ) ;
+    // InternalChartDSL.g:478:1: ruleChartLegend : ( ( rule__ChartLegend__Group__0 ) ) ;
     public final void ruleChartLegend() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:457:2: ( ( ( rule__ChartLegend__Group__0 ) ) )
-            // InternalChartDSL.g:458:2: ( ( rule__ChartLegend__Group__0 ) )
+            // InternalChartDSL.g:482:2: ( ( ( rule__ChartLegend__Group__0 ) ) )
+            // InternalChartDSL.g:483:2: ( ( rule__ChartLegend__Group__0 ) )
             {
-            // InternalChartDSL.g:458:2: ( ( rule__ChartLegend__Group__0 ) )
-            // InternalChartDSL.g:459:3: ( rule__ChartLegend__Group__0 )
+            // InternalChartDSL.g:483:2: ( ( rule__ChartLegend__Group__0 ) )
+            // InternalChartDSL.g:484:3: ( rule__ChartLegend__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLegendAccess().getGroup()); 
             }
-            // InternalChartDSL.g:460:3: ( rule__ChartLegend__Group__0 )
-            // InternalChartDSL.g:460:4: rule__ChartLegend__Group__0
+            // InternalChartDSL.g:485:3: ( rule__ChartLegend__Group__0 )
+            // InternalChartDSL.g:485:4: rule__ChartLegend__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartLegend__Group__0();
@@ -1585,11 +1687,11 @@
 
 
     // $ANTLR start "entryRuleChartHighlighter"
-    // InternalChartDSL.g:469:1: entryRuleChartHighlighter : ruleChartHighlighter EOF ;
+    // InternalChartDSL.g:494:1: entryRuleChartHighlighter : ruleChartHighlighter EOF ;
     public final void entryRuleChartHighlighter() throws RecognitionException {
         try {
-            // InternalChartDSL.g:470:1: ( ruleChartHighlighter EOF )
-            // InternalChartDSL.g:471:1: ruleChartHighlighter EOF
+            // InternalChartDSL.g:495:1: ( ruleChartHighlighter EOF )
+            // InternalChartDSL.g:496:1: ruleChartHighlighter EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterRule()); 
@@ -1619,23 +1721,23 @@
 
 
     // $ANTLR start "ruleChartHighlighter"
-    // InternalChartDSL.g:478:1: ruleChartHighlighter : ( ( rule__ChartHighlighter__Group__0 ) ) ;
+    // InternalChartDSL.g:503:1: ruleChartHighlighter : ( ( rule__ChartHighlighter__Group__0 ) ) ;
     public final void ruleChartHighlighter() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:482:2: ( ( ( rule__ChartHighlighter__Group__0 ) ) )
-            // InternalChartDSL.g:483:2: ( ( rule__ChartHighlighter__Group__0 ) )
+            // InternalChartDSL.g:507:2: ( ( ( rule__ChartHighlighter__Group__0 ) ) )
+            // InternalChartDSL.g:508:2: ( ( rule__ChartHighlighter__Group__0 ) )
             {
-            // InternalChartDSL.g:483:2: ( ( rule__ChartHighlighter__Group__0 ) )
-            // InternalChartDSL.g:484:3: ( rule__ChartHighlighter__Group__0 )
+            // InternalChartDSL.g:508:2: ( ( rule__ChartHighlighter__Group__0 ) )
+            // InternalChartDSL.g:509:3: ( rule__ChartHighlighter__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterAccess().getGroup()); 
             }
-            // InternalChartDSL.g:485:3: ( rule__ChartHighlighter__Group__0 )
-            // InternalChartDSL.g:485:4: rule__ChartHighlighter__Group__0
+            // InternalChartDSL.g:510:3: ( rule__ChartHighlighter__Group__0 )
+            // InternalChartDSL.g:510:4: rule__ChartHighlighter__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartHighlighter__Group__0();
@@ -1670,11 +1772,11 @@
 
 
     // $ANTLR start "entryRuleChartAxis"
-    // InternalChartDSL.g:494:1: entryRuleChartAxis : ruleChartAxis EOF ;
+    // InternalChartDSL.g:519:1: entryRuleChartAxis : ruleChartAxis EOF ;
     public final void entryRuleChartAxis() throws RecognitionException {
         try {
-            // InternalChartDSL.g:495:1: ( ruleChartAxis EOF )
-            // InternalChartDSL.g:496:1: ruleChartAxis EOF
+            // InternalChartDSL.g:520:1: ( ruleChartAxis EOF )
+            // InternalChartDSL.g:521:1: ruleChartAxis EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisRule()); 
@@ -1704,23 +1806,23 @@
 
 
     // $ANTLR start "ruleChartAxis"
-    // InternalChartDSL.g:503:1: ruleChartAxis : ( ( rule__ChartAxis__Group__0 ) ) ;
+    // InternalChartDSL.g:528:1: ruleChartAxis : ( ( rule__ChartAxis__Group__0 ) ) ;
     public final void ruleChartAxis() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:507:2: ( ( ( rule__ChartAxis__Group__0 ) ) )
-            // InternalChartDSL.g:508:2: ( ( rule__ChartAxis__Group__0 ) )
+            // InternalChartDSL.g:532:2: ( ( ( rule__ChartAxis__Group__0 ) ) )
+            // InternalChartDSL.g:533:2: ( ( rule__ChartAxis__Group__0 ) )
             {
-            // InternalChartDSL.g:508:2: ( ( rule__ChartAxis__Group__0 ) )
-            // InternalChartDSL.g:509:3: ( rule__ChartAxis__Group__0 )
+            // InternalChartDSL.g:533:2: ( ( rule__ChartAxis__Group__0 ) )
+            // InternalChartDSL.g:534:3: ( rule__ChartAxis__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getGroup()); 
             }
-            // InternalChartDSL.g:510:3: ( rule__ChartAxis__Group__0 )
-            // InternalChartDSL.g:510:4: rule__ChartAxis__Group__0
+            // InternalChartDSL.g:535:3: ( rule__ChartAxis__Group__0 )
+            // InternalChartDSL.g:535:4: rule__ChartAxis__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartAxis__Group__0();
@@ -1755,11 +1857,11 @@
 
 
     // $ANTLR start "entryRuleChartRangeElement"
-    // InternalChartDSL.g:519:1: entryRuleChartRangeElement : ruleChartRangeElement EOF ;
+    // InternalChartDSL.g:544:1: entryRuleChartRangeElement : ruleChartRangeElement EOF ;
     public final void entryRuleChartRangeElement() throws RecognitionException {
         try {
-            // InternalChartDSL.g:520:1: ( ruleChartRangeElement EOF )
-            // InternalChartDSL.g:521:1: ruleChartRangeElement EOF
+            // InternalChartDSL.g:545:1: ( ruleChartRangeElement EOF )
+            // InternalChartDSL.g:546:1: ruleChartRangeElement EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartRangeElementRule()); 
@@ -1789,17 +1891,17 @@
 
 
     // $ANTLR start "ruleChartRangeElement"
-    // InternalChartDSL.g:528:1: ruleChartRangeElement : ( ruleChartSegmentColor ) ;
+    // InternalChartDSL.g:553:1: ruleChartRangeElement : ( ruleChartSegmentColor ) ;
     public final void ruleChartRangeElement() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:532:2: ( ( ruleChartSegmentColor ) )
-            // InternalChartDSL.g:533:2: ( ruleChartSegmentColor )
+            // InternalChartDSL.g:557:2: ( ( ruleChartSegmentColor ) )
+            // InternalChartDSL.g:558:2: ( ruleChartSegmentColor )
             {
-            // InternalChartDSL.g:533:2: ( ruleChartSegmentColor )
-            // InternalChartDSL.g:534:3: ruleChartSegmentColor
+            // InternalChartDSL.g:558:2: ( ruleChartSegmentColor )
+            // InternalChartDSL.g:559:3: ruleChartSegmentColor
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartRangeElementAccess().getChartSegmentColorParserRuleCall()); 
@@ -1834,11 +1936,11 @@
 
 
     // $ANTLR start "entryRuleChartSegmentColor"
-    // InternalChartDSL.g:544:1: entryRuleChartSegmentColor : ruleChartSegmentColor EOF ;
+    // InternalChartDSL.g:569:1: entryRuleChartSegmentColor : ruleChartSegmentColor EOF ;
     public final void entryRuleChartSegmentColor() throws RecognitionException {
         try {
-            // InternalChartDSL.g:545:1: ( ruleChartSegmentColor EOF )
-            // InternalChartDSL.g:546:1: ruleChartSegmentColor EOF
+            // InternalChartDSL.g:570:1: ( ruleChartSegmentColor EOF )
+            // InternalChartDSL.g:571:1: ruleChartSegmentColor EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartSegmentColorRule()); 
@@ -1868,23 +1970,23 @@
 
 
     // $ANTLR start "ruleChartSegmentColor"
-    // InternalChartDSL.g:553:1: ruleChartSegmentColor : ( ( rule__ChartSegmentColor__Group__0 ) ) ;
+    // InternalChartDSL.g:578:1: ruleChartSegmentColor : ( ( rule__ChartSegmentColor__Group__0 ) ) ;
     public final void ruleChartSegmentColor() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:557:2: ( ( ( rule__ChartSegmentColor__Group__0 ) ) )
-            // InternalChartDSL.g:558:2: ( ( rule__ChartSegmentColor__Group__0 ) )
+            // InternalChartDSL.g:582:2: ( ( ( rule__ChartSegmentColor__Group__0 ) ) )
+            // InternalChartDSL.g:583:2: ( ( rule__ChartSegmentColor__Group__0 ) )
             {
-            // InternalChartDSL.g:558:2: ( ( rule__ChartSegmentColor__Group__0 ) )
-            // InternalChartDSL.g:559:3: ( rule__ChartSegmentColor__Group__0 )
+            // InternalChartDSL.g:583:2: ( ( rule__ChartSegmentColor__Group__0 ) )
+            // InternalChartDSL.g:584:3: ( rule__ChartSegmentColor__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartSegmentColorAccess().getGroup()); 
             }
-            // InternalChartDSL.g:560:3: ( rule__ChartSegmentColor__Group__0 )
-            // InternalChartDSL.g:560:4: rule__ChartSegmentColor__Group__0
+            // InternalChartDSL.g:585:3: ( rule__ChartSegmentColor__Group__0 )
+            // InternalChartDSL.g:585:4: rule__ChartSegmentColor__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartSegmentColor__Group__0();
@@ -1919,11 +2021,11 @@
 
 
     // $ANTLR start "entryRuleSignedNumber"
-    // InternalChartDSL.g:569:1: entryRuleSignedNumber : ruleSignedNumber EOF ;
+    // InternalChartDSL.g:594:1: entryRuleSignedNumber : ruleSignedNumber EOF ;
     public final void entryRuleSignedNumber() throws RecognitionException {
         try {
-            // InternalChartDSL.g:570:1: ( ruleSignedNumber EOF )
-            // InternalChartDSL.g:571:1: ruleSignedNumber EOF
+            // InternalChartDSL.g:595:1: ( ruleSignedNumber EOF )
+            // InternalChartDSL.g:596:1: ruleSignedNumber EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignedNumberRule()); 
@@ -1953,22 +2055,22 @@
 
 
     // $ANTLR start "ruleSignedNumber"
-    // InternalChartDSL.g:578:1: ruleSignedNumber : ( ( rule__SignedNumber__Group__0 )? ) ;
+    // InternalChartDSL.g:603:1: ruleSignedNumber : ( ( rule__SignedNumber__Group__0 )? ) ;
     public final void ruleSignedNumber() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:582:2: ( ( ( rule__SignedNumber__Group__0 )? ) )
-            // InternalChartDSL.g:583:2: ( ( rule__SignedNumber__Group__0 )? )
+            // InternalChartDSL.g:607:2: ( ( ( rule__SignedNumber__Group__0 )? ) )
+            // InternalChartDSL.g:608:2: ( ( rule__SignedNumber__Group__0 )? )
             {
-            // InternalChartDSL.g:583:2: ( ( rule__SignedNumber__Group__0 )? )
-            // InternalChartDSL.g:584:3: ( rule__SignedNumber__Group__0 )?
+            // InternalChartDSL.g:608:2: ( ( rule__SignedNumber__Group__0 )? )
+            // InternalChartDSL.g:609:3: ( rule__SignedNumber__Group__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignedNumberAccess().getGroup()); 
             }
-            // InternalChartDSL.g:585:3: ( rule__SignedNumber__Group__0 )?
+            // InternalChartDSL.g:610:3: ( rule__SignedNumber__Group__0 )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1977,7 +2079,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalChartDSL.g:585:4: rule__SignedNumber__Group__0
+                    // InternalChartDSL.g:610:4: rule__SignedNumber__Group__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__SignedNumber__Group__0();
@@ -2015,11 +2117,11 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLESTRING"
-    // InternalChartDSL.g:594:1: entryRuleTRANSLATABLESTRING : ruleTRANSLATABLESTRING EOF ;
+    // InternalChartDSL.g:619:1: entryRuleTRANSLATABLESTRING : ruleTRANSLATABLESTRING EOF ;
     public final void entryRuleTRANSLATABLESTRING() throws RecognitionException {
         try {
-            // InternalChartDSL.g:595:1: ( ruleTRANSLATABLESTRING EOF )
-            // InternalChartDSL.g:596:1: ruleTRANSLATABLESTRING EOF
+            // InternalChartDSL.g:620:1: ( ruleTRANSLATABLESTRING EOF )
+            // InternalChartDSL.g:621:1: ruleTRANSLATABLESTRING EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLESTRINGRule()); 
@@ -2049,17 +2151,17 @@
 
 
     // $ANTLR start "ruleTRANSLATABLESTRING"
-    // InternalChartDSL.g:603:1: ruleTRANSLATABLESTRING : ( RULE_STRING ) ;
+    // InternalChartDSL.g:628:1: ruleTRANSLATABLESTRING : ( RULE_STRING ) ;
     public final void ruleTRANSLATABLESTRING() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:607:2: ( ( RULE_STRING ) )
-            // InternalChartDSL.g:608:2: ( RULE_STRING )
+            // InternalChartDSL.g:632:2: ( ( RULE_STRING ) )
+            // InternalChartDSL.g:633:2: ( RULE_STRING )
             {
-            // InternalChartDSL.g:608:2: ( RULE_STRING )
-            // InternalChartDSL.g:609:3: RULE_STRING
+            // InternalChartDSL.g:633:2: ( RULE_STRING )
+            // InternalChartDSL.g:634:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
@@ -2090,11 +2192,11 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLEID"
-    // InternalChartDSL.g:619:1: entryRuleTRANSLATABLEID : ruleTRANSLATABLEID EOF ;
+    // InternalChartDSL.g:644:1: entryRuleTRANSLATABLEID : ruleTRANSLATABLEID EOF ;
     public final void entryRuleTRANSLATABLEID() throws RecognitionException {
         try {
-            // InternalChartDSL.g:620:1: ( ruleTRANSLATABLEID EOF )
-            // InternalChartDSL.g:621:1: ruleTRANSLATABLEID EOF
+            // InternalChartDSL.g:645:1: ( ruleTRANSLATABLEID EOF )
+            // InternalChartDSL.g:646:1: ruleTRANSLATABLEID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLEIDRule()); 
@@ -2124,17 +2226,17 @@
 
 
     // $ANTLR start "ruleTRANSLATABLEID"
-    // InternalChartDSL.g:628:1: ruleTRANSLATABLEID : ( RULE_ID ) ;
+    // InternalChartDSL.g:653:1: ruleTRANSLATABLEID : ( RULE_ID ) ;
     public final void ruleTRANSLATABLEID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:632:2: ( ( RULE_ID ) )
-            // InternalChartDSL.g:633:2: ( RULE_ID )
+            // InternalChartDSL.g:657:2: ( ( RULE_ID ) )
+            // InternalChartDSL.g:658:2: ( RULE_ID )
             {
-            // InternalChartDSL.g:633:2: ( RULE_ID )
-            // InternalChartDSL.g:634:3: RULE_ID
+            // InternalChartDSL.g:658:2: ( RULE_ID )
+            // InternalChartDSL.g:659:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
@@ -2165,11 +2267,11 @@
 
 
     // $ANTLR start "entryRuleXImportDeclaration"
-    // InternalChartDSL.g:644:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
+    // InternalChartDSL.g:669:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
     public final void entryRuleXImportDeclaration() throws RecognitionException {
         try {
-            // InternalChartDSL.g:645:1: ( ruleXImportDeclaration EOF )
-            // InternalChartDSL.g:646:1: ruleXImportDeclaration EOF
+            // InternalChartDSL.g:670:1: ( ruleXImportDeclaration EOF )
+            // InternalChartDSL.g:671:1: ruleXImportDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationRule()); 
@@ -2199,23 +2301,23 @@
 
 
     // $ANTLR start "ruleXImportDeclaration"
-    // InternalChartDSL.g:653:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
+    // InternalChartDSL.g:678:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
     public final void ruleXImportDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:657:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
-            // InternalChartDSL.g:658:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            // InternalChartDSL.g:682:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
+            // InternalChartDSL.g:683:2: ( ( rule__XImportDeclaration__Group__0 ) )
             {
-            // InternalChartDSL.g:658:2: ( ( rule__XImportDeclaration__Group__0 ) )
-            // InternalChartDSL.g:659:3: ( rule__XImportDeclaration__Group__0 )
+            // InternalChartDSL.g:683:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            // InternalChartDSL.g:684:3: ( rule__XImportDeclaration__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getGroup()); 
             }
-            // InternalChartDSL.g:660:3: ( rule__XImportDeclaration__Group__0 )
-            // InternalChartDSL.g:660:4: rule__XImportDeclaration__Group__0
+            // InternalChartDSL.g:685:3: ( rule__XImportDeclaration__Group__0 )
+            // InternalChartDSL.g:685:4: rule__XImportDeclaration__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__0();
@@ -2250,11 +2352,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotation"
-    // InternalChartDSL.g:669:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
+    // InternalChartDSL.g:694:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
     public final void entryRuleXAnnotation() throws RecognitionException {
         try {
-            // InternalChartDSL.g:670:1: ( ruleXAnnotation EOF )
-            // InternalChartDSL.g:671:1: ruleXAnnotation EOF
+            // InternalChartDSL.g:695:1: ( ruleXAnnotation EOF )
+            // InternalChartDSL.g:696:1: ruleXAnnotation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationRule()); 
@@ -2284,23 +2386,23 @@
 
 
     // $ANTLR start "ruleXAnnotation"
-    // InternalChartDSL.g:678:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
+    // InternalChartDSL.g:703:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
     public final void ruleXAnnotation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:682:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
-            // InternalChartDSL.g:683:2: ( ( rule__XAnnotation__Group__0 ) )
+            // InternalChartDSL.g:707:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
+            // InternalChartDSL.g:708:2: ( ( rule__XAnnotation__Group__0 ) )
             {
-            // InternalChartDSL.g:683:2: ( ( rule__XAnnotation__Group__0 ) )
-            // InternalChartDSL.g:684:3: ( rule__XAnnotation__Group__0 )
+            // InternalChartDSL.g:708:2: ( ( rule__XAnnotation__Group__0 ) )
+            // InternalChartDSL.g:709:3: ( rule__XAnnotation__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup()); 
             }
-            // InternalChartDSL.g:685:3: ( rule__XAnnotation__Group__0 )
-            // InternalChartDSL.g:685:4: rule__XAnnotation__Group__0
+            // InternalChartDSL.g:710:3: ( rule__XAnnotation__Group__0 )
+            // InternalChartDSL.g:710:4: rule__XAnnotation__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__0();
@@ -2335,11 +2437,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // InternalChartDSL.g:694:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
+    // InternalChartDSL.g:719:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
     public final void entryRuleXAnnotationElementValuePair() throws RecognitionException {
         try {
-            // InternalChartDSL.g:695:1: ( ruleXAnnotationElementValuePair EOF )
-            // InternalChartDSL.g:696:1: ruleXAnnotationElementValuePair EOF
+            // InternalChartDSL.g:720:1: ( ruleXAnnotationElementValuePair EOF )
+            // InternalChartDSL.g:721:1: ruleXAnnotationElementValuePair EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairRule()); 
@@ -2369,23 +2471,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValuePair"
-    // InternalChartDSL.g:703:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
+    // InternalChartDSL.g:728:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
     public final void ruleXAnnotationElementValuePair() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:707:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
-            // InternalChartDSL.g:708:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // InternalChartDSL.g:732:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
+            // InternalChartDSL.g:733:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
             {
-            // InternalChartDSL.g:708:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
-            // InternalChartDSL.g:709:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            // InternalChartDSL.g:733:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // InternalChartDSL.g:734:3: ( rule__XAnnotationElementValuePair__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
             }
-            // InternalChartDSL.g:710:3: ( rule__XAnnotationElementValuePair__Group__0 )
-            // InternalChartDSL.g:710:4: rule__XAnnotationElementValuePair__Group__0
+            // InternalChartDSL.g:735:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            // InternalChartDSL.g:735:4: rule__XAnnotationElementValuePair__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__0();
@@ -2420,11 +2522,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // InternalChartDSL.g:719:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
+    // InternalChartDSL.g:744:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
     public final void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
         try {
-            // InternalChartDSL.g:720:1: ( ruleXAnnotationElementValueOrCommaList EOF )
-            // InternalChartDSL.g:721:1: ruleXAnnotationElementValueOrCommaList EOF
+            // InternalChartDSL.g:745:1: ( ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalChartDSL.g:746:1: ruleXAnnotationElementValueOrCommaList EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
@@ -2454,23 +2556,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // InternalChartDSL.g:728:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
+    // InternalChartDSL.g:753:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
     public final void ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:732:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
-            // InternalChartDSL.g:733:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // InternalChartDSL.g:757:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
+            // InternalChartDSL.g:758:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
             {
-            // InternalChartDSL.g:733:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
-            // InternalChartDSL.g:734:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // InternalChartDSL.g:758:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // InternalChartDSL.g:759:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:735:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
-            // InternalChartDSL.g:735:4: rule__XAnnotationElementValueOrCommaList__Alternatives
+            // InternalChartDSL.g:760:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // InternalChartDSL.g:760:4: rule__XAnnotationElementValueOrCommaList__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Alternatives();
@@ -2505,11 +2607,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValue"
-    // InternalChartDSL.g:744:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
+    // InternalChartDSL.g:769:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
     public final void entryRuleXAnnotationElementValue() throws RecognitionException {
         try {
-            // InternalChartDSL.g:745:1: ( ruleXAnnotationElementValue EOF )
-            // InternalChartDSL.g:746:1: ruleXAnnotationElementValue EOF
+            // InternalChartDSL.g:770:1: ( ruleXAnnotationElementValue EOF )
+            // InternalChartDSL.g:771:1: ruleXAnnotationElementValue EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueRule()); 
@@ -2539,23 +2641,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValue"
-    // InternalChartDSL.g:753:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
+    // InternalChartDSL.g:778:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
     public final void ruleXAnnotationElementValue() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:757:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
-            // InternalChartDSL.g:758:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // InternalChartDSL.g:782:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
+            // InternalChartDSL.g:783:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
             {
-            // InternalChartDSL.g:758:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
-            // InternalChartDSL.g:759:3: ( rule__XAnnotationElementValue__Alternatives )
+            // InternalChartDSL.g:783:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // InternalChartDSL.g:784:3: ( rule__XAnnotationElementValue__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:760:3: ( rule__XAnnotationElementValue__Alternatives )
-            // InternalChartDSL.g:760:4: rule__XAnnotationElementValue__Alternatives
+            // InternalChartDSL.g:785:3: ( rule__XAnnotationElementValue__Alternatives )
+            // InternalChartDSL.g:785:4: rule__XAnnotationElementValue__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Alternatives();
@@ -2590,11 +2692,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // InternalChartDSL.g:769:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
+    // InternalChartDSL.g:794:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
     public final void entryRuleXAnnotationOrExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:770:1: ( ruleXAnnotationOrExpression EOF )
-            // InternalChartDSL.g:771:1: ruleXAnnotationOrExpression EOF
+            // InternalChartDSL.g:795:1: ( ruleXAnnotationOrExpression EOF )
+            // InternalChartDSL.g:796:1: ruleXAnnotationOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationOrExpressionRule()); 
@@ -2624,23 +2726,23 @@
 
 
     // $ANTLR start "ruleXAnnotationOrExpression"
-    // InternalChartDSL.g:778:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
+    // InternalChartDSL.g:803:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
     public final void ruleXAnnotationOrExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:782:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
-            // InternalChartDSL.g:783:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // InternalChartDSL.g:807:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
+            // InternalChartDSL.g:808:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
             {
-            // InternalChartDSL.g:783:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
-            // InternalChartDSL.g:784:3: ( rule__XAnnotationOrExpression__Alternatives )
+            // InternalChartDSL.g:808:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // InternalChartDSL.g:809:3: ( rule__XAnnotationOrExpression__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:785:3: ( rule__XAnnotationOrExpression__Alternatives )
-            // InternalChartDSL.g:785:4: rule__XAnnotationOrExpression__Alternatives
+            // InternalChartDSL.g:810:3: ( rule__XAnnotationOrExpression__Alternatives )
+            // InternalChartDSL.g:810:4: rule__XAnnotationOrExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationOrExpression__Alternatives();
@@ -2675,11 +2777,11 @@
 
 
     // $ANTLR start "entryRuleXExpression"
-    // InternalChartDSL.g:794:1: entryRuleXExpression : ruleXExpression EOF ;
+    // InternalChartDSL.g:819:1: entryRuleXExpression : ruleXExpression EOF ;
     public final void entryRuleXExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:795:1: ( ruleXExpression EOF )
-            // InternalChartDSL.g:796:1: ruleXExpression EOF
+            // InternalChartDSL.g:820:1: ( ruleXExpression EOF )
+            // InternalChartDSL.g:821:1: ruleXExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionRule()); 
@@ -2709,17 +2811,17 @@
 
 
     // $ANTLR start "ruleXExpression"
-    // InternalChartDSL.g:803:1: ruleXExpression : ( ruleXAssignment ) ;
+    // InternalChartDSL.g:828:1: ruleXExpression : ( ruleXAssignment ) ;
     public final void ruleXExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:807:2: ( ( ruleXAssignment ) )
-            // InternalChartDSL.g:808:2: ( ruleXAssignment )
+            // InternalChartDSL.g:832:2: ( ( ruleXAssignment ) )
+            // InternalChartDSL.g:833:2: ( ruleXAssignment )
             {
-            // InternalChartDSL.g:808:2: ( ruleXAssignment )
-            // InternalChartDSL.g:809:3: ruleXAssignment
+            // InternalChartDSL.g:833:2: ( ruleXAssignment )
+            // InternalChartDSL.g:834:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
@@ -2754,11 +2856,11 @@
 
 
     // $ANTLR start "entryRuleXAssignment"
-    // InternalChartDSL.g:819:1: entryRuleXAssignment : ruleXAssignment EOF ;
+    // InternalChartDSL.g:844:1: entryRuleXAssignment : ruleXAssignment EOF ;
     public final void entryRuleXAssignment() throws RecognitionException {
         try {
-            // InternalChartDSL.g:820:1: ( ruleXAssignment EOF )
-            // InternalChartDSL.g:821:1: ruleXAssignment EOF
+            // InternalChartDSL.g:845:1: ( ruleXAssignment EOF )
+            // InternalChartDSL.g:846:1: ruleXAssignment EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentRule()); 
@@ -2788,23 +2890,23 @@
 
 
     // $ANTLR start "ruleXAssignment"
-    // InternalChartDSL.g:828:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
+    // InternalChartDSL.g:853:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
     public final void ruleXAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:832:2: ( ( ( rule__XAssignment__Alternatives ) ) )
-            // InternalChartDSL.g:833:2: ( ( rule__XAssignment__Alternatives ) )
+            // InternalChartDSL.g:857:2: ( ( ( rule__XAssignment__Alternatives ) ) )
+            // InternalChartDSL.g:858:2: ( ( rule__XAssignment__Alternatives ) )
             {
-            // InternalChartDSL.g:833:2: ( ( rule__XAssignment__Alternatives ) )
-            // InternalChartDSL.g:834:3: ( rule__XAssignment__Alternatives )
+            // InternalChartDSL.g:858:2: ( ( rule__XAssignment__Alternatives ) )
+            // InternalChartDSL.g:859:3: ( rule__XAssignment__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:835:3: ( rule__XAssignment__Alternatives )
-            // InternalChartDSL.g:835:4: rule__XAssignment__Alternatives
+            // InternalChartDSL.g:860:3: ( rule__XAssignment__Alternatives )
+            // InternalChartDSL.g:860:4: rule__XAssignment__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Alternatives();
@@ -2839,11 +2941,11 @@
 
 
     // $ANTLR start "entryRuleOpSingleAssign"
-    // InternalChartDSL.g:844:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
+    // InternalChartDSL.g:869:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
     public final void entryRuleOpSingleAssign() throws RecognitionException {
         try {
-            // InternalChartDSL.g:845:1: ( ruleOpSingleAssign EOF )
-            // InternalChartDSL.g:846:1: ruleOpSingleAssign EOF
+            // InternalChartDSL.g:870:1: ( ruleOpSingleAssign EOF )
+            // InternalChartDSL.g:871:1: ruleOpSingleAssign EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpSingleAssignRule()); 
@@ -2873,17 +2975,17 @@
 
 
     // $ANTLR start "ruleOpSingleAssign"
-    // InternalChartDSL.g:853:1: ruleOpSingleAssign : ( '=' ) ;
+    // InternalChartDSL.g:878:1: ruleOpSingleAssign : ( '=' ) ;
     public final void ruleOpSingleAssign() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:857:2: ( ( '=' ) )
-            // InternalChartDSL.g:858:2: ( '=' )
+            // InternalChartDSL.g:882:2: ( ( '=' ) )
+            // InternalChartDSL.g:883:2: ( '=' )
             {
-            // InternalChartDSL.g:858:2: ( '=' )
-            // InternalChartDSL.g:859:3: '='
+            // InternalChartDSL.g:883:2: ( '=' )
+            // InternalChartDSL.g:884:3: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
@@ -2914,11 +3016,11 @@
 
 
     // $ANTLR start "entryRuleOpMultiAssign"
-    // InternalChartDSL.g:869:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
+    // InternalChartDSL.g:894:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
     public final void entryRuleOpMultiAssign() throws RecognitionException {
         try {
-            // InternalChartDSL.g:870:1: ( ruleOpMultiAssign EOF )
-            // InternalChartDSL.g:871:1: ruleOpMultiAssign EOF
+            // InternalChartDSL.g:895:1: ( ruleOpMultiAssign EOF )
+            // InternalChartDSL.g:896:1: ruleOpMultiAssign EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignRule()); 
@@ -2948,23 +3050,23 @@
 
 
     // $ANTLR start "ruleOpMultiAssign"
-    // InternalChartDSL.g:878:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
+    // InternalChartDSL.g:903:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
     public final void ruleOpMultiAssign() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:882:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
-            // InternalChartDSL.g:883:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            // InternalChartDSL.g:907:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
+            // InternalChartDSL.g:908:2: ( ( rule__OpMultiAssign__Alternatives ) )
             {
-            // InternalChartDSL.g:883:2: ( ( rule__OpMultiAssign__Alternatives ) )
-            // InternalChartDSL.g:884:3: ( rule__OpMultiAssign__Alternatives )
+            // InternalChartDSL.g:908:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            // InternalChartDSL.g:909:3: ( rule__OpMultiAssign__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:885:3: ( rule__OpMultiAssign__Alternatives )
-            // InternalChartDSL.g:885:4: rule__OpMultiAssign__Alternatives
+            // InternalChartDSL.g:910:3: ( rule__OpMultiAssign__Alternatives )
+            // InternalChartDSL.g:910:4: rule__OpMultiAssign__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Alternatives();
@@ -2999,11 +3101,11 @@
 
 
     // $ANTLR start "entryRuleXOrExpression"
-    // InternalChartDSL.g:894:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
+    // InternalChartDSL.g:919:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
     public final void entryRuleXOrExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:895:1: ( ruleXOrExpression EOF )
-            // InternalChartDSL.g:896:1: ruleXOrExpression EOF
+            // InternalChartDSL.g:920:1: ( ruleXOrExpression EOF )
+            // InternalChartDSL.g:921:1: ruleXOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionRule()); 
@@ -3033,23 +3135,23 @@
 
 
     // $ANTLR start "ruleXOrExpression"
-    // InternalChartDSL.g:903:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:928:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
     public final void ruleXOrExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:907:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
-            // InternalChartDSL.g:908:2: ( ( rule__XOrExpression__Group__0 ) )
+            // InternalChartDSL.g:932:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
+            // InternalChartDSL.g:933:2: ( ( rule__XOrExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:908:2: ( ( rule__XOrExpression__Group__0 ) )
-            // InternalChartDSL.g:909:3: ( rule__XOrExpression__Group__0 )
+            // InternalChartDSL.g:933:2: ( ( rule__XOrExpression__Group__0 ) )
+            // InternalChartDSL.g:934:3: ( rule__XOrExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:910:3: ( rule__XOrExpression__Group__0 )
-            // InternalChartDSL.g:910:4: rule__XOrExpression__Group__0
+            // InternalChartDSL.g:935:3: ( rule__XOrExpression__Group__0 )
+            // InternalChartDSL.g:935:4: rule__XOrExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__0();
@@ -3084,11 +3186,11 @@
 
 
     // $ANTLR start "entryRuleOpOr"
-    // InternalChartDSL.g:919:1: entryRuleOpOr : ruleOpOr EOF ;
+    // InternalChartDSL.g:944:1: entryRuleOpOr : ruleOpOr EOF ;
     public final void entryRuleOpOr() throws RecognitionException {
         try {
-            // InternalChartDSL.g:920:1: ( ruleOpOr EOF )
-            // InternalChartDSL.g:921:1: ruleOpOr EOF
+            // InternalChartDSL.g:945:1: ( ruleOpOr EOF )
+            // InternalChartDSL.g:946:1: ruleOpOr EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOrRule()); 
@@ -3118,17 +3220,17 @@
 
 
     // $ANTLR start "ruleOpOr"
-    // InternalChartDSL.g:928:1: ruleOpOr : ( '||' ) ;
+    // InternalChartDSL.g:953:1: ruleOpOr : ( '||' ) ;
     public final void ruleOpOr() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:932:2: ( ( '||' ) )
-            // InternalChartDSL.g:933:2: ( '||' )
+            // InternalChartDSL.g:957:2: ( ( '||' ) )
+            // InternalChartDSL.g:958:2: ( '||' )
             {
-            // InternalChartDSL.g:933:2: ( '||' )
-            // InternalChartDSL.g:934:3: '||'
+            // InternalChartDSL.g:958:2: ( '||' )
+            // InternalChartDSL.g:959:3: '||'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
@@ -3159,11 +3261,11 @@
 
 
     // $ANTLR start "entryRuleXAndExpression"
-    // InternalChartDSL.g:944:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
+    // InternalChartDSL.g:969:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
     public final void entryRuleXAndExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:945:1: ( ruleXAndExpression EOF )
-            // InternalChartDSL.g:946:1: ruleXAndExpression EOF
+            // InternalChartDSL.g:970:1: ( ruleXAndExpression EOF )
+            // InternalChartDSL.g:971:1: ruleXAndExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionRule()); 
@@ -3193,23 +3295,23 @@
 
 
     // $ANTLR start "ruleXAndExpression"
-    // InternalChartDSL.g:953:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:978:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
     public final void ruleXAndExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:957:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
-            // InternalChartDSL.g:958:2: ( ( rule__XAndExpression__Group__0 ) )
+            // InternalChartDSL.g:982:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
+            // InternalChartDSL.g:983:2: ( ( rule__XAndExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:958:2: ( ( rule__XAndExpression__Group__0 ) )
-            // InternalChartDSL.g:959:3: ( rule__XAndExpression__Group__0 )
+            // InternalChartDSL.g:983:2: ( ( rule__XAndExpression__Group__0 ) )
+            // InternalChartDSL.g:984:3: ( rule__XAndExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:960:3: ( rule__XAndExpression__Group__0 )
-            // InternalChartDSL.g:960:4: rule__XAndExpression__Group__0
+            // InternalChartDSL.g:985:3: ( rule__XAndExpression__Group__0 )
+            // InternalChartDSL.g:985:4: rule__XAndExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__0();
@@ -3244,11 +3346,11 @@
 
 
     // $ANTLR start "entryRuleOpAnd"
-    // InternalChartDSL.g:969:1: entryRuleOpAnd : ruleOpAnd EOF ;
+    // InternalChartDSL.g:994:1: entryRuleOpAnd : ruleOpAnd EOF ;
     public final void entryRuleOpAnd() throws RecognitionException {
         try {
-            // InternalChartDSL.g:970:1: ( ruleOpAnd EOF )
-            // InternalChartDSL.g:971:1: ruleOpAnd EOF
+            // InternalChartDSL.g:995:1: ( ruleOpAnd EOF )
+            // InternalChartDSL.g:996:1: ruleOpAnd EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAndRule()); 
@@ -3278,17 +3380,17 @@
 
 
     // $ANTLR start "ruleOpAnd"
-    // InternalChartDSL.g:978:1: ruleOpAnd : ( '&&' ) ;
+    // InternalChartDSL.g:1003:1: ruleOpAnd : ( '&&' ) ;
     public final void ruleOpAnd() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:982:2: ( ( '&&' ) )
-            // InternalChartDSL.g:983:2: ( '&&' )
+            // InternalChartDSL.g:1007:2: ( ( '&&' ) )
+            // InternalChartDSL.g:1008:2: ( '&&' )
             {
-            // InternalChartDSL.g:983:2: ( '&&' )
-            // InternalChartDSL.g:984:3: '&&'
+            // InternalChartDSL.g:1008:2: ( '&&' )
+            // InternalChartDSL.g:1009:3: '&&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
@@ -3319,11 +3421,11 @@
 
 
     // $ANTLR start "entryRuleXEqualityExpression"
-    // InternalChartDSL.g:994:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
+    // InternalChartDSL.g:1019:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
     public final void entryRuleXEqualityExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:995:1: ( ruleXEqualityExpression EOF )
-            // InternalChartDSL.g:996:1: ruleXEqualityExpression EOF
+            // InternalChartDSL.g:1020:1: ( ruleXEqualityExpression EOF )
+            // InternalChartDSL.g:1021:1: ruleXEqualityExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionRule()); 
@@ -3353,23 +3455,23 @@
 
 
     // $ANTLR start "ruleXEqualityExpression"
-    // InternalChartDSL.g:1003:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1028:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
     public final void ruleXEqualityExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1007:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1008:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            // InternalChartDSL.g:1032:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1033:2: ( ( rule__XEqualityExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1008:2: ( ( rule__XEqualityExpression__Group__0 ) )
-            // InternalChartDSL.g:1009:3: ( rule__XEqualityExpression__Group__0 )
+            // InternalChartDSL.g:1033:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            // InternalChartDSL.g:1034:3: ( rule__XEqualityExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1010:3: ( rule__XEqualityExpression__Group__0 )
-            // InternalChartDSL.g:1010:4: rule__XEqualityExpression__Group__0
+            // InternalChartDSL.g:1035:3: ( rule__XEqualityExpression__Group__0 )
+            // InternalChartDSL.g:1035:4: rule__XEqualityExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__0();
@@ -3404,11 +3506,11 @@
 
 
     // $ANTLR start "entryRuleOpEquality"
-    // InternalChartDSL.g:1019:1: entryRuleOpEquality : ruleOpEquality EOF ;
+    // InternalChartDSL.g:1044:1: entryRuleOpEquality : ruleOpEquality EOF ;
     public final void entryRuleOpEquality() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1020:1: ( ruleOpEquality EOF )
-            // InternalChartDSL.g:1021:1: ruleOpEquality EOF
+            // InternalChartDSL.g:1045:1: ( ruleOpEquality EOF )
+            // InternalChartDSL.g:1046:1: ruleOpEquality EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpEqualityRule()); 
@@ -3438,23 +3540,23 @@
 
 
     // $ANTLR start "ruleOpEquality"
-    // InternalChartDSL.g:1028:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
+    // InternalChartDSL.g:1053:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
     public final void ruleOpEquality() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1032:2: ( ( ( rule__OpEquality__Alternatives ) ) )
-            // InternalChartDSL.g:1033:2: ( ( rule__OpEquality__Alternatives ) )
+            // InternalChartDSL.g:1057:2: ( ( ( rule__OpEquality__Alternatives ) ) )
+            // InternalChartDSL.g:1058:2: ( ( rule__OpEquality__Alternatives ) )
             {
-            // InternalChartDSL.g:1033:2: ( ( rule__OpEquality__Alternatives ) )
-            // InternalChartDSL.g:1034:3: ( rule__OpEquality__Alternatives )
+            // InternalChartDSL.g:1058:2: ( ( rule__OpEquality__Alternatives ) )
+            // InternalChartDSL.g:1059:3: ( rule__OpEquality__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpEqualityAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1035:3: ( rule__OpEquality__Alternatives )
-            // InternalChartDSL.g:1035:4: rule__OpEquality__Alternatives
+            // InternalChartDSL.g:1060:3: ( rule__OpEquality__Alternatives )
+            // InternalChartDSL.g:1060:4: rule__OpEquality__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpEquality__Alternatives();
@@ -3489,11 +3591,11 @@
 
 
     // $ANTLR start "entryRuleXRelationalExpression"
-    // InternalChartDSL.g:1044:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
+    // InternalChartDSL.g:1069:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
     public final void entryRuleXRelationalExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1045:1: ( ruleXRelationalExpression EOF )
-            // InternalChartDSL.g:1046:1: ruleXRelationalExpression EOF
+            // InternalChartDSL.g:1070:1: ( ruleXRelationalExpression EOF )
+            // InternalChartDSL.g:1071:1: ruleXRelationalExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionRule()); 
@@ -3523,23 +3625,23 @@
 
 
     // $ANTLR start "ruleXRelationalExpression"
-    // InternalChartDSL.g:1053:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1078:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
     public final void ruleXRelationalExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1057:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1058:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            // InternalChartDSL.g:1082:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1083:2: ( ( rule__XRelationalExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1058:2: ( ( rule__XRelationalExpression__Group__0 ) )
-            // InternalChartDSL.g:1059:3: ( rule__XRelationalExpression__Group__0 )
+            // InternalChartDSL.g:1083:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            // InternalChartDSL.g:1084:3: ( rule__XRelationalExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1060:3: ( rule__XRelationalExpression__Group__0 )
-            // InternalChartDSL.g:1060:4: rule__XRelationalExpression__Group__0
+            // InternalChartDSL.g:1085:3: ( rule__XRelationalExpression__Group__0 )
+            // InternalChartDSL.g:1085:4: rule__XRelationalExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group__0();
@@ -3574,11 +3676,11 @@
 
 
     // $ANTLR start "entryRuleOpCompare"
-    // InternalChartDSL.g:1069:1: entryRuleOpCompare : ruleOpCompare EOF ;
+    // InternalChartDSL.g:1094:1: entryRuleOpCompare : ruleOpCompare EOF ;
     public final void entryRuleOpCompare() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1070:1: ( ruleOpCompare EOF )
-            // InternalChartDSL.g:1071:1: ruleOpCompare EOF
+            // InternalChartDSL.g:1095:1: ( ruleOpCompare EOF )
+            // InternalChartDSL.g:1096:1: ruleOpCompare EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareRule()); 
@@ -3608,23 +3710,23 @@
 
 
     // $ANTLR start "ruleOpCompare"
-    // InternalChartDSL.g:1078:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
+    // InternalChartDSL.g:1103:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
     public final void ruleOpCompare() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1082:2: ( ( ( rule__OpCompare__Alternatives ) ) )
-            // InternalChartDSL.g:1083:2: ( ( rule__OpCompare__Alternatives ) )
+            // InternalChartDSL.g:1107:2: ( ( ( rule__OpCompare__Alternatives ) ) )
+            // InternalChartDSL.g:1108:2: ( ( rule__OpCompare__Alternatives ) )
             {
-            // InternalChartDSL.g:1083:2: ( ( rule__OpCompare__Alternatives ) )
-            // InternalChartDSL.g:1084:3: ( rule__OpCompare__Alternatives )
+            // InternalChartDSL.g:1108:2: ( ( rule__OpCompare__Alternatives ) )
+            // InternalChartDSL.g:1109:3: ( rule__OpCompare__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1085:3: ( rule__OpCompare__Alternatives )
-            // InternalChartDSL.g:1085:4: rule__OpCompare__Alternatives
+            // InternalChartDSL.g:1110:3: ( rule__OpCompare__Alternatives )
+            // InternalChartDSL.g:1110:4: rule__OpCompare__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpCompare__Alternatives();
@@ -3659,11 +3761,11 @@
 
 
     // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // InternalChartDSL.g:1094:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
+    // InternalChartDSL.g:1119:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
     public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1095:1: ( ruleXOtherOperatorExpression EOF )
-            // InternalChartDSL.g:1096:1: ruleXOtherOperatorExpression EOF
+            // InternalChartDSL.g:1120:1: ( ruleXOtherOperatorExpression EOF )
+            // InternalChartDSL.g:1121:1: ruleXOtherOperatorExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionRule()); 
@@ -3693,23 +3795,23 @@
 
 
     // $ANTLR start "ruleXOtherOperatorExpression"
-    // InternalChartDSL.g:1103:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1128:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
     public final void ruleXOtherOperatorExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1107:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1108:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // InternalChartDSL.g:1132:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1133:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1108:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
-            // InternalChartDSL.g:1109:3: ( rule__XOtherOperatorExpression__Group__0 )
+            // InternalChartDSL.g:1133:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // InternalChartDSL.g:1134:3: ( rule__XOtherOperatorExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1110:3: ( rule__XOtherOperatorExpression__Group__0 )
-            // InternalChartDSL.g:1110:4: rule__XOtherOperatorExpression__Group__0
+            // InternalChartDSL.g:1135:3: ( rule__XOtherOperatorExpression__Group__0 )
+            // InternalChartDSL.g:1135:4: rule__XOtherOperatorExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group__0();
@@ -3744,11 +3846,11 @@
 
 
     // $ANTLR start "entryRuleOpOther"
-    // InternalChartDSL.g:1119:1: entryRuleOpOther : ruleOpOther EOF ;
+    // InternalChartDSL.g:1144:1: entryRuleOpOther : ruleOpOther EOF ;
     public final void entryRuleOpOther() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1120:1: ( ruleOpOther EOF )
-            // InternalChartDSL.g:1121:1: ruleOpOther EOF
+            // InternalChartDSL.g:1145:1: ( ruleOpOther EOF )
+            // InternalChartDSL.g:1146:1: ruleOpOther EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherRule()); 
@@ -3778,23 +3880,23 @@
 
 
     // $ANTLR start "ruleOpOther"
-    // InternalChartDSL.g:1128:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
+    // InternalChartDSL.g:1153:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
     public final void ruleOpOther() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1132:2: ( ( ( rule__OpOther__Alternatives ) ) )
-            // InternalChartDSL.g:1133:2: ( ( rule__OpOther__Alternatives ) )
+            // InternalChartDSL.g:1157:2: ( ( ( rule__OpOther__Alternatives ) ) )
+            // InternalChartDSL.g:1158:2: ( ( rule__OpOther__Alternatives ) )
             {
-            // InternalChartDSL.g:1133:2: ( ( rule__OpOther__Alternatives ) )
-            // InternalChartDSL.g:1134:3: ( rule__OpOther__Alternatives )
+            // InternalChartDSL.g:1158:2: ( ( rule__OpOther__Alternatives ) )
+            // InternalChartDSL.g:1159:3: ( rule__OpOther__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1135:3: ( rule__OpOther__Alternatives )
-            // InternalChartDSL.g:1135:4: rule__OpOther__Alternatives
+            // InternalChartDSL.g:1160:3: ( rule__OpOther__Alternatives )
+            // InternalChartDSL.g:1160:4: rule__OpOther__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives();
@@ -3829,11 +3931,11 @@
 
 
     // $ANTLR start "entryRuleXAdditiveExpression"
-    // InternalChartDSL.g:1144:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
+    // InternalChartDSL.g:1169:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
     public final void entryRuleXAdditiveExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1145:1: ( ruleXAdditiveExpression EOF )
-            // InternalChartDSL.g:1146:1: ruleXAdditiveExpression EOF
+            // InternalChartDSL.g:1170:1: ( ruleXAdditiveExpression EOF )
+            // InternalChartDSL.g:1171:1: ruleXAdditiveExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionRule()); 
@@ -3863,23 +3965,23 @@
 
 
     // $ANTLR start "ruleXAdditiveExpression"
-    // InternalChartDSL.g:1153:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1178:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
     public final void ruleXAdditiveExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1157:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1158:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // InternalChartDSL.g:1182:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1183:2: ( ( rule__XAdditiveExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1158:2: ( ( rule__XAdditiveExpression__Group__0 ) )
-            // InternalChartDSL.g:1159:3: ( rule__XAdditiveExpression__Group__0 )
+            // InternalChartDSL.g:1183:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // InternalChartDSL.g:1184:3: ( rule__XAdditiveExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1160:3: ( rule__XAdditiveExpression__Group__0 )
-            // InternalChartDSL.g:1160:4: rule__XAdditiveExpression__Group__0
+            // InternalChartDSL.g:1185:3: ( rule__XAdditiveExpression__Group__0 )
+            // InternalChartDSL.g:1185:4: rule__XAdditiveExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group__0();
@@ -3914,11 +4016,11 @@
 
 
     // $ANTLR start "entryRuleOpAdd"
-    // InternalChartDSL.g:1169:1: entryRuleOpAdd : ruleOpAdd EOF ;
+    // InternalChartDSL.g:1194:1: entryRuleOpAdd : ruleOpAdd EOF ;
     public final void entryRuleOpAdd() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1170:1: ( ruleOpAdd EOF )
-            // InternalChartDSL.g:1171:1: ruleOpAdd EOF
+            // InternalChartDSL.g:1195:1: ( ruleOpAdd EOF )
+            // InternalChartDSL.g:1196:1: ruleOpAdd EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAddRule()); 
@@ -3948,23 +4050,23 @@
 
 
     // $ANTLR start "ruleOpAdd"
-    // InternalChartDSL.g:1178:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
+    // InternalChartDSL.g:1203:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
     public final void ruleOpAdd() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1182:2: ( ( ( rule__OpAdd__Alternatives ) ) )
-            // InternalChartDSL.g:1183:2: ( ( rule__OpAdd__Alternatives ) )
+            // InternalChartDSL.g:1207:2: ( ( ( rule__OpAdd__Alternatives ) ) )
+            // InternalChartDSL.g:1208:2: ( ( rule__OpAdd__Alternatives ) )
             {
-            // InternalChartDSL.g:1183:2: ( ( rule__OpAdd__Alternatives ) )
-            // InternalChartDSL.g:1184:3: ( rule__OpAdd__Alternatives )
+            // InternalChartDSL.g:1208:2: ( ( rule__OpAdd__Alternatives ) )
+            // InternalChartDSL.g:1209:3: ( rule__OpAdd__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAddAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1185:3: ( rule__OpAdd__Alternatives )
-            // InternalChartDSL.g:1185:4: rule__OpAdd__Alternatives
+            // InternalChartDSL.g:1210:3: ( rule__OpAdd__Alternatives )
+            // InternalChartDSL.g:1210:4: rule__OpAdd__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpAdd__Alternatives();
@@ -3999,11 +4101,11 @@
 
 
     // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // InternalChartDSL.g:1194:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
+    // InternalChartDSL.g:1219:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
     public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1195:1: ( ruleXMultiplicativeExpression EOF )
-            // InternalChartDSL.g:1196:1: ruleXMultiplicativeExpression EOF
+            // InternalChartDSL.g:1220:1: ( ruleXMultiplicativeExpression EOF )
+            // InternalChartDSL.g:1221:1: ruleXMultiplicativeExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionRule()); 
@@ -4033,23 +4135,23 @@
 
 
     // $ANTLR start "ruleXMultiplicativeExpression"
-    // InternalChartDSL.g:1203:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1228:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
     public final void ruleXMultiplicativeExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1207:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1208:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // InternalChartDSL.g:1232:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1233:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1208:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
-            // InternalChartDSL.g:1209:3: ( rule__XMultiplicativeExpression__Group__0 )
+            // InternalChartDSL.g:1233:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // InternalChartDSL.g:1234:3: ( rule__XMultiplicativeExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1210:3: ( rule__XMultiplicativeExpression__Group__0 )
-            // InternalChartDSL.g:1210:4: rule__XMultiplicativeExpression__Group__0
+            // InternalChartDSL.g:1235:3: ( rule__XMultiplicativeExpression__Group__0 )
+            // InternalChartDSL.g:1235:4: rule__XMultiplicativeExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group__0();
@@ -4084,11 +4186,11 @@
 
 
     // $ANTLR start "entryRuleOpMulti"
-    // InternalChartDSL.g:1219:1: entryRuleOpMulti : ruleOpMulti EOF ;
+    // InternalChartDSL.g:1244:1: entryRuleOpMulti : ruleOpMulti EOF ;
     public final void entryRuleOpMulti() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1220:1: ( ruleOpMulti EOF )
-            // InternalChartDSL.g:1221:1: ruleOpMulti EOF
+            // InternalChartDSL.g:1245:1: ( ruleOpMulti EOF )
+            // InternalChartDSL.g:1246:1: ruleOpMulti EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiRule()); 
@@ -4118,23 +4220,23 @@
 
 
     // $ANTLR start "ruleOpMulti"
-    // InternalChartDSL.g:1228:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
+    // InternalChartDSL.g:1253:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
     public final void ruleOpMulti() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1232:2: ( ( ( rule__OpMulti__Alternatives ) ) )
-            // InternalChartDSL.g:1233:2: ( ( rule__OpMulti__Alternatives ) )
+            // InternalChartDSL.g:1257:2: ( ( ( rule__OpMulti__Alternatives ) ) )
+            // InternalChartDSL.g:1258:2: ( ( rule__OpMulti__Alternatives ) )
             {
-            // InternalChartDSL.g:1233:2: ( ( rule__OpMulti__Alternatives ) )
-            // InternalChartDSL.g:1234:3: ( rule__OpMulti__Alternatives )
+            // InternalChartDSL.g:1258:2: ( ( rule__OpMulti__Alternatives ) )
+            // InternalChartDSL.g:1259:3: ( rule__OpMulti__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1235:3: ( rule__OpMulti__Alternatives )
-            // InternalChartDSL.g:1235:4: rule__OpMulti__Alternatives
+            // InternalChartDSL.g:1260:3: ( rule__OpMulti__Alternatives )
+            // InternalChartDSL.g:1260:4: rule__OpMulti__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpMulti__Alternatives();
@@ -4169,11 +4271,11 @@
 
 
     // $ANTLR start "entryRuleXUnaryOperation"
-    // InternalChartDSL.g:1244:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
+    // InternalChartDSL.g:1269:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
     public final void entryRuleXUnaryOperation() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1245:1: ( ruleXUnaryOperation EOF )
-            // InternalChartDSL.g:1246:1: ruleXUnaryOperation EOF
+            // InternalChartDSL.g:1270:1: ( ruleXUnaryOperation EOF )
+            // InternalChartDSL.g:1271:1: ruleXUnaryOperation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationRule()); 
@@ -4203,23 +4305,23 @@
 
 
     // $ANTLR start "ruleXUnaryOperation"
-    // InternalChartDSL.g:1253:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
+    // InternalChartDSL.g:1278:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
     public final void ruleXUnaryOperation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1257:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
-            // InternalChartDSL.g:1258:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            // InternalChartDSL.g:1282:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
+            // InternalChartDSL.g:1283:2: ( ( rule__XUnaryOperation__Alternatives ) )
             {
-            // InternalChartDSL.g:1258:2: ( ( rule__XUnaryOperation__Alternatives ) )
-            // InternalChartDSL.g:1259:3: ( rule__XUnaryOperation__Alternatives )
+            // InternalChartDSL.g:1283:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            // InternalChartDSL.g:1284:3: ( rule__XUnaryOperation__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1260:3: ( rule__XUnaryOperation__Alternatives )
-            // InternalChartDSL.g:1260:4: rule__XUnaryOperation__Alternatives
+            // InternalChartDSL.g:1285:3: ( rule__XUnaryOperation__Alternatives )
+            // InternalChartDSL.g:1285:4: rule__XUnaryOperation__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__Alternatives();
@@ -4254,11 +4356,11 @@
 
 
     // $ANTLR start "entryRuleOpUnary"
-    // InternalChartDSL.g:1269:1: entryRuleOpUnary : ruleOpUnary EOF ;
+    // InternalChartDSL.g:1294:1: entryRuleOpUnary : ruleOpUnary EOF ;
     public final void entryRuleOpUnary() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1270:1: ( ruleOpUnary EOF )
-            // InternalChartDSL.g:1271:1: ruleOpUnary EOF
+            // InternalChartDSL.g:1295:1: ( ruleOpUnary EOF )
+            // InternalChartDSL.g:1296:1: ruleOpUnary EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpUnaryRule()); 
@@ -4288,23 +4390,23 @@
 
 
     // $ANTLR start "ruleOpUnary"
-    // InternalChartDSL.g:1278:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
+    // InternalChartDSL.g:1303:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
     public final void ruleOpUnary() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1282:2: ( ( ( rule__OpUnary__Alternatives ) ) )
-            // InternalChartDSL.g:1283:2: ( ( rule__OpUnary__Alternatives ) )
+            // InternalChartDSL.g:1307:2: ( ( ( rule__OpUnary__Alternatives ) ) )
+            // InternalChartDSL.g:1308:2: ( ( rule__OpUnary__Alternatives ) )
             {
-            // InternalChartDSL.g:1283:2: ( ( rule__OpUnary__Alternatives ) )
-            // InternalChartDSL.g:1284:3: ( rule__OpUnary__Alternatives )
+            // InternalChartDSL.g:1308:2: ( ( rule__OpUnary__Alternatives ) )
+            // InternalChartDSL.g:1309:3: ( rule__OpUnary__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpUnaryAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1285:3: ( rule__OpUnary__Alternatives )
-            // InternalChartDSL.g:1285:4: rule__OpUnary__Alternatives
+            // InternalChartDSL.g:1310:3: ( rule__OpUnary__Alternatives )
+            // InternalChartDSL.g:1310:4: rule__OpUnary__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpUnary__Alternatives();
@@ -4339,11 +4441,11 @@
 
 
     // $ANTLR start "entryRuleXCastedExpression"
-    // InternalChartDSL.g:1294:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
+    // InternalChartDSL.g:1319:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
     public final void entryRuleXCastedExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1295:1: ( ruleXCastedExpression EOF )
-            // InternalChartDSL.g:1296:1: ruleXCastedExpression EOF
+            // InternalChartDSL.g:1320:1: ( ruleXCastedExpression EOF )
+            // InternalChartDSL.g:1321:1: ruleXCastedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionRule()); 
@@ -4373,23 +4475,23 @@
 
 
     // $ANTLR start "ruleXCastedExpression"
-    // InternalChartDSL.g:1303:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1328:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
     public final void ruleXCastedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1307:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1308:2: ( ( rule__XCastedExpression__Group__0 ) )
+            // InternalChartDSL.g:1332:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1333:2: ( ( rule__XCastedExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1308:2: ( ( rule__XCastedExpression__Group__0 ) )
-            // InternalChartDSL.g:1309:3: ( rule__XCastedExpression__Group__0 )
+            // InternalChartDSL.g:1333:2: ( ( rule__XCastedExpression__Group__0 ) )
+            // InternalChartDSL.g:1334:3: ( rule__XCastedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1310:3: ( rule__XCastedExpression__Group__0 )
-            // InternalChartDSL.g:1310:4: rule__XCastedExpression__Group__0
+            // InternalChartDSL.g:1335:3: ( rule__XCastedExpression__Group__0 )
+            // InternalChartDSL.g:1335:4: rule__XCastedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group__0();
@@ -4424,11 +4526,11 @@
 
 
     // $ANTLR start "entryRuleXPostfixOperation"
-    // InternalChartDSL.g:1319:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
+    // InternalChartDSL.g:1344:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
     public final void entryRuleXPostfixOperation() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1320:1: ( ruleXPostfixOperation EOF )
-            // InternalChartDSL.g:1321:1: ruleXPostfixOperation EOF
+            // InternalChartDSL.g:1345:1: ( ruleXPostfixOperation EOF )
+            // InternalChartDSL.g:1346:1: ruleXPostfixOperation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationRule()); 
@@ -4458,23 +4560,23 @@
 
 
     // $ANTLR start "ruleXPostfixOperation"
-    // InternalChartDSL.g:1328:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
+    // InternalChartDSL.g:1353:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
     public final void ruleXPostfixOperation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1332:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
-            // InternalChartDSL.g:1333:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            // InternalChartDSL.g:1357:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
+            // InternalChartDSL.g:1358:2: ( ( rule__XPostfixOperation__Group__0 ) )
             {
-            // InternalChartDSL.g:1333:2: ( ( rule__XPostfixOperation__Group__0 ) )
-            // InternalChartDSL.g:1334:3: ( rule__XPostfixOperation__Group__0 )
+            // InternalChartDSL.g:1358:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            // InternalChartDSL.g:1359:3: ( rule__XPostfixOperation__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1335:3: ( rule__XPostfixOperation__Group__0 )
-            // InternalChartDSL.g:1335:4: rule__XPostfixOperation__Group__0
+            // InternalChartDSL.g:1360:3: ( rule__XPostfixOperation__Group__0 )
+            // InternalChartDSL.g:1360:4: rule__XPostfixOperation__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group__0();
@@ -4509,11 +4611,11 @@
 
 
     // $ANTLR start "entryRuleOpPostfix"
-    // InternalChartDSL.g:1344:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
+    // InternalChartDSL.g:1369:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
     public final void entryRuleOpPostfix() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1345:1: ( ruleOpPostfix EOF )
-            // InternalChartDSL.g:1346:1: ruleOpPostfix EOF
+            // InternalChartDSL.g:1370:1: ( ruleOpPostfix EOF )
+            // InternalChartDSL.g:1371:1: ruleOpPostfix EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpPostfixRule()); 
@@ -4543,23 +4645,23 @@
 
 
     // $ANTLR start "ruleOpPostfix"
-    // InternalChartDSL.g:1353:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
+    // InternalChartDSL.g:1378:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
     public final void ruleOpPostfix() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1357:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
-            // InternalChartDSL.g:1358:2: ( ( rule__OpPostfix__Alternatives ) )
+            // InternalChartDSL.g:1382:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
+            // InternalChartDSL.g:1383:2: ( ( rule__OpPostfix__Alternatives ) )
             {
-            // InternalChartDSL.g:1358:2: ( ( rule__OpPostfix__Alternatives ) )
-            // InternalChartDSL.g:1359:3: ( rule__OpPostfix__Alternatives )
+            // InternalChartDSL.g:1383:2: ( ( rule__OpPostfix__Alternatives ) )
+            // InternalChartDSL.g:1384:3: ( rule__OpPostfix__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1360:3: ( rule__OpPostfix__Alternatives )
-            // InternalChartDSL.g:1360:4: rule__OpPostfix__Alternatives
+            // InternalChartDSL.g:1385:3: ( rule__OpPostfix__Alternatives )
+            // InternalChartDSL.g:1385:4: rule__OpPostfix__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpPostfix__Alternatives();
@@ -4594,11 +4696,11 @@
 
 
     // $ANTLR start "entryRuleXMemberFeatureCall"
-    // InternalChartDSL.g:1369:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
+    // InternalChartDSL.g:1394:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
     public final void entryRuleXMemberFeatureCall() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1370:1: ( ruleXMemberFeatureCall EOF )
-            // InternalChartDSL.g:1371:1: ruleXMemberFeatureCall EOF
+            // InternalChartDSL.g:1395:1: ( ruleXMemberFeatureCall EOF )
+            // InternalChartDSL.g:1396:1: ruleXMemberFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallRule()); 
@@ -4628,23 +4730,23 @@
 
 
     // $ANTLR start "ruleXMemberFeatureCall"
-    // InternalChartDSL.g:1378:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
+    // InternalChartDSL.g:1403:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
     public final void ruleXMemberFeatureCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1382:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
-            // InternalChartDSL.g:1383:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // InternalChartDSL.g:1407:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
+            // InternalChartDSL.g:1408:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
             {
-            // InternalChartDSL.g:1383:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
-            // InternalChartDSL.g:1384:3: ( rule__XMemberFeatureCall__Group__0 )
+            // InternalChartDSL.g:1408:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // InternalChartDSL.g:1409:3: ( rule__XMemberFeatureCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1385:3: ( rule__XMemberFeatureCall__Group__0 )
-            // InternalChartDSL.g:1385:4: rule__XMemberFeatureCall__Group__0
+            // InternalChartDSL.g:1410:3: ( rule__XMemberFeatureCall__Group__0 )
+            // InternalChartDSL.g:1410:4: rule__XMemberFeatureCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group__0();
@@ -4679,11 +4781,11 @@
 
 
     // $ANTLR start "entryRuleXPrimaryExpression"
-    // InternalChartDSL.g:1394:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
+    // InternalChartDSL.g:1419:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
     public final void entryRuleXPrimaryExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1395:1: ( ruleXPrimaryExpression EOF )
-            // InternalChartDSL.g:1396:1: ruleXPrimaryExpression EOF
+            // InternalChartDSL.g:1420:1: ( ruleXPrimaryExpression EOF )
+            // InternalChartDSL.g:1421:1: ruleXPrimaryExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPrimaryExpressionRule()); 
@@ -4713,23 +4815,23 @@
 
 
     // $ANTLR start "ruleXPrimaryExpression"
-    // InternalChartDSL.g:1403:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
+    // InternalChartDSL.g:1428:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
     public final void ruleXPrimaryExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1407:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
-            // InternalChartDSL.g:1408:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // InternalChartDSL.g:1432:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
+            // InternalChartDSL.g:1433:2: ( ( rule__XPrimaryExpression__Alternatives ) )
             {
-            // InternalChartDSL.g:1408:2: ( ( rule__XPrimaryExpression__Alternatives ) )
-            // InternalChartDSL.g:1409:3: ( rule__XPrimaryExpression__Alternatives )
+            // InternalChartDSL.g:1433:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // InternalChartDSL.g:1434:3: ( rule__XPrimaryExpression__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1410:3: ( rule__XPrimaryExpression__Alternatives )
-            // InternalChartDSL.g:1410:4: rule__XPrimaryExpression__Alternatives
+            // InternalChartDSL.g:1435:3: ( rule__XPrimaryExpression__Alternatives )
+            // InternalChartDSL.g:1435:4: rule__XPrimaryExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XPrimaryExpression__Alternatives();
@@ -4764,11 +4866,11 @@
 
 
     // $ANTLR start "entryRuleXLiteral"
-    // InternalChartDSL.g:1419:1: entryRuleXLiteral : ruleXLiteral EOF ;
+    // InternalChartDSL.g:1444:1: entryRuleXLiteral : ruleXLiteral EOF ;
     public final void entryRuleXLiteral() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1420:1: ( ruleXLiteral EOF )
-            // InternalChartDSL.g:1421:1: ruleXLiteral EOF
+            // InternalChartDSL.g:1445:1: ( ruleXLiteral EOF )
+            // InternalChartDSL.g:1446:1: ruleXLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXLiteralRule()); 
@@ -4798,23 +4900,23 @@
 
 
     // $ANTLR start "ruleXLiteral"
-    // InternalChartDSL.g:1428:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
+    // InternalChartDSL.g:1453:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
     public final void ruleXLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1432:2: ( ( ( rule__XLiteral__Alternatives ) ) )
-            // InternalChartDSL.g:1433:2: ( ( rule__XLiteral__Alternatives ) )
+            // InternalChartDSL.g:1457:2: ( ( ( rule__XLiteral__Alternatives ) ) )
+            // InternalChartDSL.g:1458:2: ( ( rule__XLiteral__Alternatives ) )
             {
-            // InternalChartDSL.g:1433:2: ( ( rule__XLiteral__Alternatives ) )
-            // InternalChartDSL.g:1434:3: ( rule__XLiteral__Alternatives )
+            // InternalChartDSL.g:1458:2: ( ( rule__XLiteral__Alternatives ) )
+            // InternalChartDSL.g:1459:3: ( rule__XLiteral__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXLiteralAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1435:3: ( rule__XLiteral__Alternatives )
-            // InternalChartDSL.g:1435:4: rule__XLiteral__Alternatives
+            // InternalChartDSL.g:1460:3: ( rule__XLiteral__Alternatives )
+            // InternalChartDSL.g:1460:4: rule__XLiteral__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XLiteral__Alternatives();
@@ -4849,11 +4951,11 @@
 
 
     // $ANTLR start "entryRuleXCollectionLiteral"
-    // InternalChartDSL.g:1444:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
+    // InternalChartDSL.g:1469:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
     public final void entryRuleXCollectionLiteral() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1445:1: ( ruleXCollectionLiteral EOF )
-            // InternalChartDSL.g:1446:1: ruleXCollectionLiteral EOF
+            // InternalChartDSL.g:1470:1: ( ruleXCollectionLiteral EOF )
+            // InternalChartDSL.g:1471:1: ruleXCollectionLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCollectionLiteralRule()); 
@@ -4883,23 +4985,23 @@
 
 
     // $ANTLR start "ruleXCollectionLiteral"
-    // InternalChartDSL.g:1453:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
+    // InternalChartDSL.g:1478:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
     public final void ruleXCollectionLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1457:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
-            // InternalChartDSL.g:1458:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // InternalChartDSL.g:1482:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
+            // InternalChartDSL.g:1483:2: ( ( rule__XCollectionLiteral__Alternatives ) )
             {
-            // InternalChartDSL.g:1458:2: ( ( rule__XCollectionLiteral__Alternatives ) )
-            // InternalChartDSL.g:1459:3: ( rule__XCollectionLiteral__Alternatives )
+            // InternalChartDSL.g:1483:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // InternalChartDSL.g:1484:3: ( rule__XCollectionLiteral__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1460:3: ( rule__XCollectionLiteral__Alternatives )
-            // InternalChartDSL.g:1460:4: rule__XCollectionLiteral__Alternatives
+            // InternalChartDSL.g:1485:3: ( rule__XCollectionLiteral__Alternatives )
+            // InternalChartDSL.g:1485:4: rule__XCollectionLiteral__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XCollectionLiteral__Alternatives();
@@ -4934,11 +5036,11 @@
 
 
     // $ANTLR start "entryRuleXSetLiteral"
-    // InternalChartDSL.g:1469:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
+    // InternalChartDSL.g:1494:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
     public final void entryRuleXSetLiteral() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1470:1: ( ruleXSetLiteral EOF )
-            // InternalChartDSL.g:1471:1: ruleXSetLiteral EOF
+            // InternalChartDSL.g:1495:1: ( ruleXSetLiteral EOF )
+            // InternalChartDSL.g:1496:1: ruleXSetLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralRule()); 
@@ -4968,23 +5070,23 @@
 
 
     // $ANTLR start "ruleXSetLiteral"
-    // InternalChartDSL.g:1478:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
+    // InternalChartDSL.g:1503:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
     public final void ruleXSetLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1482:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
-            // InternalChartDSL.g:1483:2: ( ( rule__XSetLiteral__Group__0 ) )
+            // InternalChartDSL.g:1507:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
+            // InternalChartDSL.g:1508:2: ( ( rule__XSetLiteral__Group__0 ) )
             {
-            // InternalChartDSL.g:1483:2: ( ( rule__XSetLiteral__Group__0 ) )
-            // InternalChartDSL.g:1484:3: ( rule__XSetLiteral__Group__0 )
+            // InternalChartDSL.g:1508:2: ( ( rule__XSetLiteral__Group__0 ) )
+            // InternalChartDSL.g:1509:3: ( rule__XSetLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1485:3: ( rule__XSetLiteral__Group__0 )
-            // InternalChartDSL.g:1485:4: rule__XSetLiteral__Group__0
+            // InternalChartDSL.g:1510:3: ( rule__XSetLiteral__Group__0 )
+            // InternalChartDSL.g:1510:4: rule__XSetLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group__0();
@@ -5019,11 +5121,11 @@
 
 
     // $ANTLR start "entryRuleXListLiteral"
-    // InternalChartDSL.g:1494:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
+    // InternalChartDSL.g:1519:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
     public final void entryRuleXListLiteral() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1495:1: ( ruleXListLiteral EOF )
-            // InternalChartDSL.g:1496:1: ruleXListLiteral EOF
+            // InternalChartDSL.g:1520:1: ( ruleXListLiteral EOF )
+            // InternalChartDSL.g:1521:1: ruleXListLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralRule()); 
@@ -5053,23 +5155,23 @@
 
 
     // $ANTLR start "ruleXListLiteral"
-    // InternalChartDSL.g:1503:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
+    // InternalChartDSL.g:1528:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
     public final void ruleXListLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1507:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
-            // InternalChartDSL.g:1508:2: ( ( rule__XListLiteral__Group__0 ) )
+            // InternalChartDSL.g:1532:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
+            // InternalChartDSL.g:1533:2: ( ( rule__XListLiteral__Group__0 ) )
             {
-            // InternalChartDSL.g:1508:2: ( ( rule__XListLiteral__Group__0 ) )
-            // InternalChartDSL.g:1509:3: ( rule__XListLiteral__Group__0 )
+            // InternalChartDSL.g:1533:2: ( ( rule__XListLiteral__Group__0 ) )
+            // InternalChartDSL.g:1534:3: ( rule__XListLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1510:3: ( rule__XListLiteral__Group__0 )
-            // InternalChartDSL.g:1510:4: rule__XListLiteral__Group__0
+            // InternalChartDSL.g:1535:3: ( rule__XListLiteral__Group__0 )
+            // InternalChartDSL.g:1535:4: rule__XListLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group__0();
@@ -5104,11 +5206,11 @@
 
 
     // $ANTLR start "entryRuleXClosure"
-    // InternalChartDSL.g:1519:1: entryRuleXClosure : ruleXClosure EOF ;
+    // InternalChartDSL.g:1544:1: entryRuleXClosure : ruleXClosure EOF ;
     public final void entryRuleXClosure() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1520:1: ( ruleXClosure EOF )
-            // InternalChartDSL.g:1521:1: ruleXClosure EOF
+            // InternalChartDSL.g:1545:1: ( ruleXClosure EOF )
+            // InternalChartDSL.g:1546:1: ruleXClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureRule()); 
@@ -5138,23 +5240,23 @@
 
 
     // $ANTLR start "ruleXClosure"
-    // InternalChartDSL.g:1528:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
+    // InternalChartDSL.g:1553:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
     public final void ruleXClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1532:2: ( ( ( rule__XClosure__Group__0 ) ) )
-            // InternalChartDSL.g:1533:2: ( ( rule__XClosure__Group__0 ) )
+            // InternalChartDSL.g:1557:2: ( ( ( rule__XClosure__Group__0 ) ) )
+            // InternalChartDSL.g:1558:2: ( ( rule__XClosure__Group__0 ) )
             {
-            // InternalChartDSL.g:1533:2: ( ( rule__XClosure__Group__0 ) )
-            // InternalChartDSL.g:1534:3: ( rule__XClosure__Group__0 )
+            // InternalChartDSL.g:1558:2: ( ( rule__XClosure__Group__0 ) )
+            // InternalChartDSL.g:1559:3: ( rule__XClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1535:3: ( rule__XClosure__Group__0 )
-            // InternalChartDSL.g:1535:4: rule__XClosure__Group__0
+            // InternalChartDSL.g:1560:3: ( rule__XClosure__Group__0 )
+            // InternalChartDSL.g:1560:4: rule__XClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group__0();
@@ -5189,11 +5291,11 @@
 
 
     // $ANTLR start "entryRuleXExpressionInClosure"
-    // InternalChartDSL.g:1544:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
+    // InternalChartDSL.g:1569:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
     public final void entryRuleXExpressionInClosure() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1545:1: ( ruleXExpressionInClosure EOF )
-            // InternalChartDSL.g:1546:1: ruleXExpressionInClosure EOF
+            // InternalChartDSL.g:1570:1: ( ruleXExpressionInClosure EOF )
+            // InternalChartDSL.g:1571:1: ruleXExpressionInClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureRule()); 
@@ -5223,23 +5325,23 @@
 
 
     // $ANTLR start "ruleXExpressionInClosure"
-    // InternalChartDSL.g:1553:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
+    // InternalChartDSL.g:1578:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
     public final void ruleXExpressionInClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1557:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
-            // InternalChartDSL.g:1558:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // InternalChartDSL.g:1582:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
+            // InternalChartDSL.g:1583:2: ( ( rule__XExpressionInClosure__Group__0 ) )
             {
-            // InternalChartDSL.g:1558:2: ( ( rule__XExpressionInClosure__Group__0 ) )
-            // InternalChartDSL.g:1559:3: ( rule__XExpressionInClosure__Group__0 )
+            // InternalChartDSL.g:1583:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // InternalChartDSL.g:1584:3: ( rule__XExpressionInClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1560:3: ( rule__XExpressionInClosure__Group__0 )
-            // InternalChartDSL.g:1560:4: rule__XExpressionInClosure__Group__0
+            // InternalChartDSL.g:1585:3: ( rule__XExpressionInClosure__Group__0 )
+            // InternalChartDSL.g:1585:4: rule__XExpressionInClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group__0();
@@ -5274,11 +5376,11 @@
 
 
     // $ANTLR start "entryRuleXShortClosure"
-    // InternalChartDSL.g:1569:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
+    // InternalChartDSL.g:1594:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
     public final void entryRuleXShortClosure() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1570:1: ( ruleXShortClosure EOF )
-            // InternalChartDSL.g:1571:1: ruleXShortClosure EOF
+            // InternalChartDSL.g:1595:1: ( ruleXShortClosure EOF )
+            // InternalChartDSL.g:1596:1: ruleXShortClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureRule()); 
@@ -5308,23 +5410,23 @@
 
 
     // $ANTLR start "ruleXShortClosure"
-    // InternalChartDSL.g:1578:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
+    // InternalChartDSL.g:1603:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
     public final void ruleXShortClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1582:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
-            // InternalChartDSL.g:1583:2: ( ( rule__XShortClosure__Group__0 ) )
+            // InternalChartDSL.g:1607:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
+            // InternalChartDSL.g:1608:2: ( ( rule__XShortClosure__Group__0 ) )
             {
-            // InternalChartDSL.g:1583:2: ( ( rule__XShortClosure__Group__0 ) )
-            // InternalChartDSL.g:1584:3: ( rule__XShortClosure__Group__0 )
+            // InternalChartDSL.g:1608:2: ( ( rule__XShortClosure__Group__0 ) )
+            // InternalChartDSL.g:1609:3: ( rule__XShortClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1585:3: ( rule__XShortClosure__Group__0 )
-            // InternalChartDSL.g:1585:4: rule__XShortClosure__Group__0
+            // InternalChartDSL.g:1610:3: ( rule__XShortClosure__Group__0 )
+            // InternalChartDSL.g:1610:4: rule__XShortClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group__0();
@@ -5359,11 +5461,11 @@
 
 
     // $ANTLR start "entryRuleXParenthesizedExpression"
-    // InternalChartDSL.g:1594:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
+    // InternalChartDSL.g:1619:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
     public final void entryRuleXParenthesizedExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1595:1: ( ruleXParenthesizedExpression EOF )
-            // InternalChartDSL.g:1596:1: ruleXParenthesizedExpression EOF
+            // InternalChartDSL.g:1620:1: ( ruleXParenthesizedExpression EOF )
+            // InternalChartDSL.g:1621:1: ruleXParenthesizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionRule()); 
@@ -5393,23 +5495,23 @@
 
 
     // $ANTLR start "ruleXParenthesizedExpression"
-    // InternalChartDSL.g:1603:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1628:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
     public final void ruleXParenthesizedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1607:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1608:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // InternalChartDSL.g:1632:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1633:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1608:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
-            // InternalChartDSL.g:1609:3: ( rule__XParenthesizedExpression__Group__0 )
+            // InternalChartDSL.g:1633:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // InternalChartDSL.g:1634:3: ( rule__XParenthesizedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1610:3: ( rule__XParenthesizedExpression__Group__0 )
-            // InternalChartDSL.g:1610:4: rule__XParenthesizedExpression__Group__0
+            // InternalChartDSL.g:1635:3: ( rule__XParenthesizedExpression__Group__0 )
+            // InternalChartDSL.g:1635:4: rule__XParenthesizedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XParenthesizedExpression__Group__0();
@@ -5444,11 +5546,11 @@
 
 
     // $ANTLR start "entryRuleXIfExpression"
-    // InternalChartDSL.g:1619:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
+    // InternalChartDSL.g:1644:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
     public final void entryRuleXIfExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1620:1: ( ruleXIfExpression EOF )
-            // InternalChartDSL.g:1621:1: ruleXIfExpression EOF
+            // InternalChartDSL.g:1645:1: ( ruleXIfExpression EOF )
+            // InternalChartDSL.g:1646:1: ruleXIfExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionRule()); 
@@ -5478,23 +5580,23 @@
 
 
     // $ANTLR start "ruleXIfExpression"
-    // InternalChartDSL.g:1628:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1653:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
     public final void ruleXIfExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1632:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1633:2: ( ( rule__XIfExpression__Group__0 ) )
+            // InternalChartDSL.g:1657:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1658:2: ( ( rule__XIfExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1633:2: ( ( rule__XIfExpression__Group__0 ) )
-            // InternalChartDSL.g:1634:3: ( rule__XIfExpression__Group__0 )
+            // InternalChartDSL.g:1658:2: ( ( rule__XIfExpression__Group__0 ) )
+            // InternalChartDSL.g:1659:3: ( rule__XIfExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1635:3: ( rule__XIfExpression__Group__0 )
-            // InternalChartDSL.g:1635:4: rule__XIfExpression__Group__0
+            // InternalChartDSL.g:1660:3: ( rule__XIfExpression__Group__0 )
+            // InternalChartDSL.g:1660:4: rule__XIfExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group__0();
@@ -5529,11 +5631,11 @@
 
 
     // $ANTLR start "entryRuleXSwitchExpression"
-    // InternalChartDSL.g:1644:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
+    // InternalChartDSL.g:1669:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
     public final void entryRuleXSwitchExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1645:1: ( ruleXSwitchExpression EOF )
-            // InternalChartDSL.g:1646:1: ruleXSwitchExpression EOF
+            // InternalChartDSL.g:1670:1: ( ruleXSwitchExpression EOF )
+            // InternalChartDSL.g:1671:1: ruleXSwitchExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionRule()); 
@@ -5563,23 +5665,23 @@
 
 
     // $ANTLR start "ruleXSwitchExpression"
-    // InternalChartDSL.g:1653:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1678:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
     public final void ruleXSwitchExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1657:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1658:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            // InternalChartDSL.g:1682:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1683:2: ( ( rule__XSwitchExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1658:2: ( ( rule__XSwitchExpression__Group__0 ) )
-            // InternalChartDSL.g:1659:3: ( rule__XSwitchExpression__Group__0 )
+            // InternalChartDSL.g:1683:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            // InternalChartDSL.g:1684:3: ( rule__XSwitchExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1660:3: ( rule__XSwitchExpression__Group__0 )
-            // InternalChartDSL.g:1660:4: rule__XSwitchExpression__Group__0
+            // InternalChartDSL.g:1685:3: ( rule__XSwitchExpression__Group__0 )
+            // InternalChartDSL.g:1685:4: rule__XSwitchExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group__0();
@@ -5614,11 +5716,11 @@
 
 
     // $ANTLR start "entryRuleXCasePart"
-    // InternalChartDSL.g:1669:1: entryRuleXCasePart : ruleXCasePart EOF ;
+    // InternalChartDSL.g:1694:1: entryRuleXCasePart : ruleXCasePart EOF ;
     public final void entryRuleXCasePart() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1670:1: ( ruleXCasePart EOF )
-            // InternalChartDSL.g:1671:1: ruleXCasePart EOF
+            // InternalChartDSL.g:1695:1: ( ruleXCasePart EOF )
+            // InternalChartDSL.g:1696:1: ruleXCasePart EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartRule()); 
@@ -5648,23 +5750,23 @@
 
 
     // $ANTLR start "ruleXCasePart"
-    // InternalChartDSL.g:1678:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
+    // InternalChartDSL.g:1703:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
     public final void ruleXCasePart() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1682:2: ( ( ( rule__XCasePart__Group__0 ) ) )
-            // InternalChartDSL.g:1683:2: ( ( rule__XCasePart__Group__0 ) )
+            // InternalChartDSL.g:1707:2: ( ( ( rule__XCasePart__Group__0 ) ) )
+            // InternalChartDSL.g:1708:2: ( ( rule__XCasePart__Group__0 ) )
             {
-            // InternalChartDSL.g:1683:2: ( ( rule__XCasePart__Group__0 ) )
-            // InternalChartDSL.g:1684:3: ( rule__XCasePart__Group__0 )
+            // InternalChartDSL.g:1708:2: ( ( rule__XCasePart__Group__0 ) )
+            // InternalChartDSL.g:1709:3: ( rule__XCasePart__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1685:3: ( rule__XCasePart__Group__0 )
-            // InternalChartDSL.g:1685:4: rule__XCasePart__Group__0
+            // InternalChartDSL.g:1710:3: ( rule__XCasePart__Group__0 )
+            // InternalChartDSL.g:1710:4: rule__XCasePart__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group__0();
@@ -5699,11 +5801,11 @@
 
 
     // $ANTLR start "entryRuleXForLoopExpression"
-    // InternalChartDSL.g:1694:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
+    // InternalChartDSL.g:1719:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
     public final void entryRuleXForLoopExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1695:1: ( ruleXForLoopExpression EOF )
-            // InternalChartDSL.g:1696:1: ruleXForLoopExpression EOF
+            // InternalChartDSL.g:1720:1: ( ruleXForLoopExpression EOF )
+            // InternalChartDSL.g:1721:1: ruleXForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionRule()); 
@@ -5733,23 +5835,23 @@
 
 
     // $ANTLR start "ruleXForLoopExpression"
-    // InternalChartDSL.g:1703:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1728:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
     public final void ruleXForLoopExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1707:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1708:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            // InternalChartDSL.g:1732:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1733:2: ( ( rule__XForLoopExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1708:2: ( ( rule__XForLoopExpression__Group__0 ) )
-            // InternalChartDSL.g:1709:3: ( rule__XForLoopExpression__Group__0 )
+            // InternalChartDSL.g:1733:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            // InternalChartDSL.g:1734:3: ( rule__XForLoopExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1710:3: ( rule__XForLoopExpression__Group__0 )
-            // InternalChartDSL.g:1710:4: rule__XForLoopExpression__Group__0
+            // InternalChartDSL.g:1735:3: ( rule__XForLoopExpression__Group__0 )
+            // InternalChartDSL.g:1735:4: rule__XForLoopExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group__0();
@@ -5784,11 +5886,11 @@
 
 
     // $ANTLR start "entryRuleXBasicForLoopExpression"
-    // InternalChartDSL.g:1719:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
+    // InternalChartDSL.g:1744:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
     public final void entryRuleXBasicForLoopExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1720:1: ( ruleXBasicForLoopExpression EOF )
-            // InternalChartDSL.g:1721:1: ruleXBasicForLoopExpression EOF
+            // InternalChartDSL.g:1745:1: ( ruleXBasicForLoopExpression EOF )
+            // InternalChartDSL.g:1746:1: ruleXBasicForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionRule()); 
@@ -5818,23 +5920,23 @@
 
 
     // $ANTLR start "ruleXBasicForLoopExpression"
-    // InternalChartDSL.g:1728:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1753:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
     public final void ruleXBasicForLoopExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1732:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1733:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // InternalChartDSL.g:1757:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1758:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1733:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
-            // InternalChartDSL.g:1734:3: ( rule__XBasicForLoopExpression__Group__0 )
+            // InternalChartDSL.g:1758:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // InternalChartDSL.g:1759:3: ( rule__XBasicForLoopExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1735:3: ( rule__XBasicForLoopExpression__Group__0 )
-            // InternalChartDSL.g:1735:4: rule__XBasicForLoopExpression__Group__0
+            // InternalChartDSL.g:1760:3: ( rule__XBasicForLoopExpression__Group__0 )
+            // InternalChartDSL.g:1760:4: rule__XBasicForLoopExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group__0();
@@ -5869,11 +5971,11 @@
 
 
     // $ANTLR start "entryRuleXWhileExpression"
-    // InternalChartDSL.g:1744:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
+    // InternalChartDSL.g:1769:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
     public final void entryRuleXWhileExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1745:1: ( ruleXWhileExpression EOF )
-            // InternalChartDSL.g:1746:1: ruleXWhileExpression EOF
+            // InternalChartDSL.g:1770:1: ( ruleXWhileExpression EOF )
+            // InternalChartDSL.g:1771:1: ruleXWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionRule()); 
@@ -5903,23 +6005,23 @@
 
 
     // $ANTLR start "ruleXWhileExpression"
-    // InternalChartDSL.g:1753:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1778:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
     public final void ruleXWhileExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1757:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1758:2: ( ( rule__XWhileExpression__Group__0 ) )
+            // InternalChartDSL.g:1782:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1783:2: ( ( rule__XWhileExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1758:2: ( ( rule__XWhileExpression__Group__0 ) )
-            // InternalChartDSL.g:1759:3: ( rule__XWhileExpression__Group__0 )
+            // InternalChartDSL.g:1783:2: ( ( rule__XWhileExpression__Group__0 ) )
+            // InternalChartDSL.g:1784:3: ( rule__XWhileExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1760:3: ( rule__XWhileExpression__Group__0 )
-            // InternalChartDSL.g:1760:4: rule__XWhileExpression__Group__0
+            // InternalChartDSL.g:1785:3: ( rule__XWhileExpression__Group__0 )
+            // InternalChartDSL.g:1785:4: rule__XWhileExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__Group__0();
@@ -5954,11 +6056,11 @@
 
 
     // $ANTLR start "entryRuleXDoWhileExpression"
-    // InternalChartDSL.g:1769:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
+    // InternalChartDSL.g:1794:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
     public final void entryRuleXDoWhileExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1770:1: ( ruleXDoWhileExpression EOF )
-            // InternalChartDSL.g:1771:1: ruleXDoWhileExpression EOF
+            // InternalChartDSL.g:1795:1: ( ruleXDoWhileExpression EOF )
+            // InternalChartDSL.g:1796:1: ruleXDoWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionRule()); 
@@ -5988,23 +6090,23 @@
 
 
     // $ANTLR start "ruleXDoWhileExpression"
-    // InternalChartDSL.g:1778:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1803:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
     public final void ruleXDoWhileExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1782:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1783:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // InternalChartDSL.g:1807:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1808:2: ( ( rule__XDoWhileExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1783:2: ( ( rule__XDoWhileExpression__Group__0 ) )
-            // InternalChartDSL.g:1784:3: ( rule__XDoWhileExpression__Group__0 )
+            // InternalChartDSL.g:1808:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // InternalChartDSL.g:1809:3: ( rule__XDoWhileExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1785:3: ( rule__XDoWhileExpression__Group__0 )
-            // InternalChartDSL.g:1785:4: rule__XDoWhileExpression__Group__0
+            // InternalChartDSL.g:1810:3: ( rule__XDoWhileExpression__Group__0 )
+            // InternalChartDSL.g:1810:4: rule__XDoWhileExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__Group__0();
@@ -6039,11 +6141,11 @@
 
 
     // $ANTLR start "entryRuleXBlockExpression"
-    // InternalChartDSL.g:1794:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
+    // InternalChartDSL.g:1819:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
     public final void entryRuleXBlockExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1795:1: ( ruleXBlockExpression EOF )
-            // InternalChartDSL.g:1796:1: ruleXBlockExpression EOF
+            // InternalChartDSL.g:1820:1: ( ruleXBlockExpression EOF )
+            // InternalChartDSL.g:1821:1: ruleXBlockExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionRule()); 
@@ -6073,23 +6175,23 @@
 
 
     // $ANTLR start "ruleXBlockExpression"
-    // InternalChartDSL.g:1803:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:1828:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
     public final void ruleXBlockExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1807:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
-            // InternalChartDSL.g:1808:2: ( ( rule__XBlockExpression__Group__0 ) )
+            // InternalChartDSL.g:1832:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
+            // InternalChartDSL.g:1833:2: ( ( rule__XBlockExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:1808:2: ( ( rule__XBlockExpression__Group__0 ) )
-            // InternalChartDSL.g:1809:3: ( rule__XBlockExpression__Group__0 )
+            // InternalChartDSL.g:1833:2: ( ( rule__XBlockExpression__Group__0 ) )
+            // InternalChartDSL.g:1834:3: ( rule__XBlockExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1810:3: ( rule__XBlockExpression__Group__0 )
-            // InternalChartDSL.g:1810:4: rule__XBlockExpression__Group__0
+            // InternalChartDSL.g:1835:3: ( rule__XBlockExpression__Group__0 )
+            // InternalChartDSL.g:1835:4: rule__XBlockExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group__0();
@@ -6124,11 +6226,11 @@
 
 
     // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
-    // InternalChartDSL.g:1819:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
+    // InternalChartDSL.g:1844:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
     public final void entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1820:1: ( ruleXExpressionOrVarDeclaration EOF )
-            // InternalChartDSL.g:1821:1: ruleXExpressionOrVarDeclaration EOF
+            // InternalChartDSL.g:1845:1: ( ruleXExpressionOrVarDeclaration EOF )
+            // InternalChartDSL.g:1846:1: ruleXExpressionOrVarDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionOrVarDeclarationRule()); 
@@ -6158,23 +6260,23 @@
 
 
     // $ANTLR start "ruleXExpressionOrVarDeclaration"
-    // InternalChartDSL.g:1828:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
+    // InternalChartDSL.g:1853:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
     public final void ruleXExpressionOrVarDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1832:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
-            // InternalChartDSL.g:1833:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // InternalChartDSL.g:1857:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
+            // InternalChartDSL.g:1858:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
             {
-            // InternalChartDSL.g:1833:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
-            // InternalChartDSL.g:1834:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // InternalChartDSL.g:1858:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // InternalChartDSL.g:1859:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1835:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
-            // InternalChartDSL.g:1835:4: rule__XExpressionOrVarDeclaration__Alternatives
+            // InternalChartDSL.g:1860:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // InternalChartDSL.g:1860:4: rule__XExpressionOrVarDeclaration__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionOrVarDeclaration__Alternatives();
@@ -6209,11 +6311,11 @@
 
 
     // $ANTLR start "entryRuleXVariableDeclaration"
-    // InternalChartDSL.g:1844:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
+    // InternalChartDSL.g:1869:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
     public final void entryRuleXVariableDeclaration() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1845:1: ( ruleXVariableDeclaration EOF )
-            // InternalChartDSL.g:1846:1: ruleXVariableDeclaration EOF
+            // InternalChartDSL.g:1870:1: ( ruleXVariableDeclaration EOF )
+            // InternalChartDSL.g:1871:1: ruleXVariableDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationRule()); 
@@ -6243,23 +6345,23 @@
 
 
     // $ANTLR start "ruleXVariableDeclaration"
-    // InternalChartDSL.g:1853:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
+    // InternalChartDSL.g:1878:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
     public final void ruleXVariableDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1857:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
-            // InternalChartDSL.g:1858:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // InternalChartDSL.g:1882:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
+            // InternalChartDSL.g:1883:2: ( ( rule__XVariableDeclaration__Group__0 ) )
             {
-            // InternalChartDSL.g:1858:2: ( ( rule__XVariableDeclaration__Group__0 ) )
-            // InternalChartDSL.g:1859:3: ( rule__XVariableDeclaration__Group__0 )
+            // InternalChartDSL.g:1883:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // InternalChartDSL.g:1884:3: ( rule__XVariableDeclaration__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1860:3: ( rule__XVariableDeclaration__Group__0 )
-            // InternalChartDSL.g:1860:4: rule__XVariableDeclaration__Group__0
+            // InternalChartDSL.g:1885:3: ( rule__XVariableDeclaration__Group__0 )
+            // InternalChartDSL.g:1885:4: rule__XVariableDeclaration__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group__0();
@@ -6294,11 +6396,11 @@
 
 
     // $ANTLR start "entryRuleJvmFormalParameter"
-    // InternalChartDSL.g:1869:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
+    // InternalChartDSL.g:1894:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
     public final void entryRuleJvmFormalParameter() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1870:1: ( ruleJvmFormalParameter EOF )
-            // InternalChartDSL.g:1871:1: ruleJvmFormalParameter EOF
+            // InternalChartDSL.g:1895:1: ( ruleJvmFormalParameter EOF )
+            // InternalChartDSL.g:1896:1: ruleJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterRule()); 
@@ -6328,23 +6430,23 @@
 
 
     // $ANTLR start "ruleJvmFormalParameter"
-    // InternalChartDSL.g:1878:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
+    // InternalChartDSL.g:1903:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
     public final void ruleJvmFormalParameter() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1882:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
-            // InternalChartDSL.g:1883:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // InternalChartDSL.g:1907:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
+            // InternalChartDSL.g:1908:2: ( ( rule__JvmFormalParameter__Group__0 ) )
             {
-            // InternalChartDSL.g:1883:2: ( ( rule__JvmFormalParameter__Group__0 ) )
-            // InternalChartDSL.g:1884:3: ( rule__JvmFormalParameter__Group__0 )
+            // InternalChartDSL.g:1908:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // InternalChartDSL.g:1909:3: ( rule__JvmFormalParameter__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1885:3: ( rule__JvmFormalParameter__Group__0 )
-            // InternalChartDSL.g:1885:4: rule__JvmFormalParameter__Group__0
+            // InternalChartDSL.g:1910:3: ( rule__JvmFormalParameter__Group__0 )
+            // InternalChartDSL.g:1910:4: rule__JvmFormalParameter__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__Group__0();
@@ -6379,11 +6481,11 @@
 
 
     // $ANTLR start "entryRuleFullJvmFormalParameter"
-    // InternalChartDSL.g:1894:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
+    // InternalChartDSL.g:1919:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
     public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1895:1: ( ruleFullJvmFormalParameter EOF )
-            // InternalChartDSL.g:1896:1: ruleFullJvmFormalParameter EOF
+            // InternalChartDSL.g:1920:1: ( ruleFullJvmFormalParameter EOF )
+            // InternalChartDSL.g:1921:1: ruleFullJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterRule()); 
@@ -6413,23 +6515,23 @@
 
 
     // $ANTLR start "ruleFullJvmFormalParameter"
-    // InternalChartDSL.g:1903:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
+    // InternalChartDSL.g:1928:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
     public final void ruleFullJvmFormalParameter() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1907:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
-            // InternalChartDSL.g:1908:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // InternalChartDSL.g:1932:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
+            // InternalChartDSL.g:1933:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
             {
-            // InternalChartDSL.g:1908:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
-            // InternalChartDSL.g:1909:3: ( rule__FullJvmFormalParameter__Group__0 )
+            // InternalChartDSL.g:1933:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // InternalChartDSL.g:1934:3: ( rule__FullJvmFormalParameter__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1910:3: ( rule__FullJvmFormalParameter__Group__0 )
-            // InternalChartDSL.g:1910:4: rule__FullJvmFormalParameter__Group__0
+            // InternalChartDSL.g:1935:3: ( rule__FullJvmFormalParameter__Group__0 )
+            // InternalChartDSL.g:1935:4: rule__FullJvmFormalParameter__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__Group__0();
@@ -6464,11 +6566,11 @@
 
 
     // $ANTLR start "entryRuleXFeatureCall"
-    // InternalChartDSL.g:1919:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
+    // InternalChartDSL.g:1944:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
     public final void entryRuleXFeatureCall() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1920:1: ( ruleXFeatureCall EOF )
-            // InternalChartDSL.g:1921:1: ruleXFeatureCall EOF
+            // InternalChartDSL.g:1945:1: ( ruleXFeatureCall EOF )
+            // InternalChartDSL.g:1946:1: ruleXFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallRule()); 
@@ -6498,23 +6600,23 @@
 
 
     // $ANTLR start "ruleXFeatureCall"
-    // InternalChartDSL.g:1928:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
+    // InternalChartDSL.g:1953:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
     public final void ruleXFeatureCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1932:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
-            // InternalChartDSL.g:1933:2: ( ( rule__XFeatureCall__Group__0 ) )
+            // InternalChartDSL.g:1957:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
+            // InternalChartDSL.g:1958:2: ( ( rule__XFeatureCall__Group__0 ) )
             {
-            // InternalChartDSL.g:1933:2: ( ( rule__XFeatureCall__Group__0 ) )
-            // InternalChartDSL.g:1934:3: ( rule__XFeatureCall__Group__0 )
+            // InternalChartDSL.g:1958:2: ( ( rule__XFeatureCall__Group__0 ) )
+            // InternalChartDSL.g:1959:3: ( rule__XFeatureCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup()); 
             }
-            // InternalChartDSL.g:1935:3: ( rule__XFeatureCall__Group__0 )
-            // InternalChartDSL.g:1935:4: rule__XFeatureCall__Group__0
+            // InternalChartDSL.g:1960:3: ( rule__XFeatureCall__Group__0 )
+            // InternalChartDSL.g:1960:4: rule__XFeatureCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group__0();
@@ -6549,11 +6651,11 @@
 
 
     // $ANTLR start "entryRuleFeatureCallID"
-    // InternalChartDSL.g:1944:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
+    // InternalChartDSL.g:1969:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
     public final void entryRuleFeatureCallID() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1945:1: ( ruleFeatureCallID EOF )
-            // InternalChartDSL.g:1946:1: ruleFeatureCallID EOF
+            // InternalChartDSL.g:1970:1: ( ruleFeatureCallID EOF )
+            // InternalChartDSL.g:1971:1: ruleFeatureCallID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFeatureCallIDRule()); 
@@ -6583,23 +6685,23 @@
 
 
     // $ANTLR start "ruleFeatureCallID"
-    // InternalChartDSL.g:1953:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
+    // InternalChartDSL.g:1978:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
     public final void ruleFeatureCallID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1957:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
-            // InternalChartDSL.g:1958:2: ( ( rule__FeatureCallID__Alternatives ) )
+            // InternalChartDSL.g:1982:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
+            // InternalChartDSL.g:1983:2: ( ( rule__FeatureCallID__Alternatives ) )
             {
-            // InternalChartDSL.g:1958:2: ( ( rule__FeatureCallID__Alternatives ) )
-            // InternalChartDSL.g:1959:3: ( rule__FeatureCallID__Alternatives )
+            // InternalChartDSL.g:1983:2: ( ( rule__FeatureCallID__Alternatives ) )
+            // InternalChartDSL.g:1984:3: ( rule__FeatureCallID__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1960:3: ( rule__FeatureCallID__Alternatives )
-            // InternalChartDSL.g:1960:4: rule__FeatureCallID__Alternatives
+            // InternalChartDSL.g:1985:3: ( rule__FeatureCallID__Alternatives )
+            // InternalChartDSL.g:1985:4: rule__FeatureCallID__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FeatureCallID__Alternatives();
@@ -6634,11 +6736,11 @@
 
 
     // $ANTLR start "entryRuleIdOrSuper"
-    // InternalChartDSL.g:1969:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
+    // InternalChartDSL.g:1994:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
     public final void entryRuleIdOrSuper() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1970:1: ( ruleIdOrSuper EOF )
-            // InternalChartDSL.g:1971:1: ruleIdOrSuper EOF
+            // InternalChartDSL.g:1995:1: ( ruleIdOrSuper EOF )
+            // InternalChartDSL.g:1996:1: ruleIdOrSuper EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIdOrSuperRule()); 
@@ -6668,23 +6770,23 @@
 
 
     // $ANTLR start "ruleIdOrSuper"
-    // InternalChartDSL.g:1978:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
+    // InternalChartDSL.g:2003:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
     public final void ruleIdOrSuper() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:1982:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
-            // InternalChartDSL.g:1983:2: ( ( rule__IdOrSuper__Alternatives ) )
+            // InternalChartDSL.g:2007:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
+            // InternalChartDSL.g:2008:2: ( ( rule__IdOrSuper__Alternatives ) )
             {
-            // InternalChartDSL.g:1983:2: ( ( rule__IdOrSuper__Alternatives ) )
-            // InternalChartDSL.g:1984:3: ( rule__IdOrSuper__Alternatives )
+            // InternalChartDSL.g:2008:2: ( ( rule__IdOrSuper__Alternatives ) )
+            // InternalChartDSL.g:2009:3: ( rule__IdOrSuper__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:1985:3: ( rule__IdOrSuper__Alternatives )
-            // InternalChartDSL.g:1985:4: rule__IdOrSuper__Alternatives
+            // InternalChartDSL.g:2010:3: ( rule__IdOrSuper__Alternatives )
+            // InternalChartDSL.g:2010:4: rule__IdOrSuper__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__IdOrSuper__Alternatives();
@@ -6719,11 +6821,11 @@
 
 
     // $ANTLR start "entryRuleXConstructorCall"
-    // InternalChartDSL.g:1994:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
+    // InternalChartDSL.g:2019:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
     public final void entryRuleXConstructorCall() throws RecognitionException {
         try {
-            // InternalChartDSL.g:1995:1: ( ruleXConstructorCall EOF )
-            // InternalChartDSL.g:1996:1: ruleXConstructorCall EOF
+            // InternalChartDSL.g:2020:1: ( ruleXConstructorCall EOF )
+            // InternalChartDSL.g:2021:1: ruleXConstructorCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallRule()); 
@@ -6753,23 +6855,23 @@
 
 
     // $ANTLR start "ruleXConstructorCall"
-    // InternalChartDSL.g:2003:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
+    // InternalChartDSL.g:2028:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
     public final void ruleXConstructorCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2007:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
-            // InternalChartDSL.g:2008:2: ( ( rule__XConstructorCall__Group__0 ) )
+            // InternalChartDSL.g:2032:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
+            // InternalChartDSL.g:2033:2: ( ( rule__XConstructorCall__Group__0 ) )
             {
-            // InternalChartDSL.g:2008:2: ( ( rule__XConstructorCall__Group__0 ) )
-            // InternalChartDSL.g:2009:3: ( rule__XConstructorCall__Group__0 )
+            // InternalChartDSL.g:2033:2: ( ( rule__XConstructorCall__Group__0 ) )
+            // InternalChartDSL.g:2034:3: ( rule__XConstructorCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2010:3: ( rule__XConstructorCall__Group__0 )
-            // InternalChartDSL.g:2010:4: rule__XConstructorCall__Group__0
+            // InternalChartDSL.g:2035:3: ( rule__XConstructorCall__Group__0 )
+            // InternalChartDSL.g:2035:4: rule__XConstructorCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group__0();
@@ -6804,11 +6906,11 @@
 
 
     // $ANTLR start "entryRuleXBooleanLiteral"
-    // InternalChartDSL.g:2019:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
+    // InternalChartDSL.g:2044:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
     public final void entryRuleXBooleanLiteral() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2020:1: ( ruleXBooleanLiteral EOF )
-            // InternalChartDSL.g:2021:1: ruleXBooleanLiteral EOF
+            // InternalChartDSL.g:2045:1: ( ruleXBooleanLiteral EOF )
+            // InternalChartDSL.g:2046:1: ruleXBooleanLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralRule()); 
@@ -6838,23 +6940,23 @@
 
 
     // $ANTLR start "ruleXBooleanLiteral"
-    // InternalChartDSL.g:2028:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
+    // InternalChartDSL.g:2053:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
     public final void ruleXBooleanLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2032:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
-            // InternalChartDSL.g:2033:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // InternalChartDSL.g:2057:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
+            // InternalChartDSL.g:2058:2: ( ( rule__XBooleanLiteral__Group__0 ) )
             {
-            // InternalChartDSL.g:2033:2: ( ( rule__XBooleanLiteral__Group__0 ) )
-            // InternalChartDSL.g:2034:3: ( rule__XBooleanLiteral__Group__0 )
+            // InternalChartDSL.g:2058:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // InternalChartDSL.g:2059:3: ( rule__XBooleanLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2035:3: ( rule__XBooleanLiteral__Group__0 )
-            // InternalChartDSL.g:2035:4: rule__XBooleanLiteral__Group__0
+            // InternalChartDSL.g:2060:3: ( rule__XBooleanLiteral__Group__0 )
+            // InternalChartDSL.g:2060:4: rule__XBooleanLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Group__0();
@@ -6889,11 +6991,11 @@
 
 
     // $ANTLR start "entryRuleXNullLiteral"
-    // InternalChartDSL.g:2044:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
+    // InternalChartDSL.g:2069:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
     public final void entryRuleXNullLiteral() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2045:1: ( ruleXNullLiteral EOF )
-            // InternalChartDSL.g:2046:1: ruleXNullLiteral EOF
+            // InternalChartDSL.g:2070:1: ( ruleXNullLiteral EOF )
+            // InternalChartDSL.g:2071:1: ruleXNullLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralRule()); 
@@ -6923,23 +7025,23 @@
 
 
     // $ANTLR start "ruleXNullLiteral"
-    // InternalChartDSL.g:2053:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
+    // InternalChartDSL.g:2078:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
     public final void ruleXNullLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2057:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
-            // InternalChartDSL.g:2058:2: ( ( rule__XNullLiteral__Group__0 ) )
+            // InternalChartDSL.g:2082:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
+            // InternalChartDSL.g:2083:2: ( ( rule__XNullLiteral__Group__0 ) )
             {
-            // InternalChartDSL.g:2058:2: ( ( rule__XNullLiteral__Group__0 ) )
-            // InternalChartDSL.g:2059:3: ( rule__XNullLiteral__Group__0 )
+            // InternalChartDSL.g:2083:2: ( ( rule__XNullLiteral__Group__0 ) )
+            // InternalChartDSL.g:2084:3: ( rule__XNullLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2060:3: ( rule__XNullLiteral__Group__0 )
-            // InternalChartDSL.g:2060:4: rule__XNullLiteral__Group__0
+            // InternalChartDSL.g:2085:3: ( rule__XNullLiteral__Group__0 )
+            // InternalChartDSL.g:2085:4: rule__XNullLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XNullLiteral__Group__0();
@@ -6974,11 +7076,11 @@
 
 
     // $ANTLR start "entryRuleXNumberLiteral"
-    // InternalChartDSL.g:2069:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
+    // InternalChartDSL.g:2094:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
     public final void entryRuleXNumberLiteral() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2070:1: ( ruleXNumberLiteral EOF )
-            // InternalChartDSL.g:2071:1: ruleXNumberLiteral EOF
+            // InternalChartDSL.g:2095:1: ( ruleXNumberLiteral EOF )
+            // InternalChartDSL.g:2096:1: ruleXNumberLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralRule()); 
@@ -7008,23 +7110,23 @@
 
 
     // $ANTLR start "ruleXNumberLiteral"
-    // InternalChartDSL.g:2078:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
+    // InternalChartDSL.g:2103:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
     public final void ruleXNumberLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2082:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
-            // InternalChartDSL.g:2083:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            // InternalChartDSL.g:2107:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
+            // InternalChartDSL.g:2108:2: ( ( rule__XNumberLiteral__Group__0 ) )
             {
-            // InternalChartDSL.g:2083:2: ( ( rule__XNumberLiteral__Group__0 ) )
-            // InternalChartDSL.g:2084:3: ( rule__XNumberLiteral__Group__0 )
+            // InternalChartDSL.g:2108:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            // InternalChartDSL.g:2109:3: ( rule__XNumberLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2085:3: ( rule__XNumberLiteral__Group__0 )
-            // InternalChartDSL.g:2085:4: rule__XNumberLiteral__Group__0
+            // InternalChartDSL.g:2110:3: ( rule__XNumberLiteral__Group__0 )
+            // InternalChartDSL.g:2110:4: rule__XNumberLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__Group__0();
@@ -7059,11 +7161,11 @@
 
 
     // $ANTLR start "entryRuleXStringLiteral"
-    // InternalChartDSL.g:2094:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
+    // InternalChartDSL.g:2119:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
     public final void entryRuleXStringLiteral() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2095:1: ( ruleXStringLiteral EOF )
-            // InternalChartDSL.g:2096:1: ruleXStringLiteral EOF
+            // InternalChartDSL.g:2120:1: ( ruleXStringLiteral EOF )
+            // InternalChartDSL.g:2121:1: ruleXStringLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralRule()); 
@@ -7093,23 +7195,23 @@
 
 
     // $ANTLR start "ruleXStringLiteral"
-    // InternalChartDSL.g:2103:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
+    // InternalChartDSL.g:2128:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
     public final void ruleXStringLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2107:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
-            // InternalChartDSL.g:2108:2: ( ( rule__XStringLiteral__Group__0 ) )
+            // InternalChartDSL.g:2132:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
+            // InternalChartDSL.g:2133:2: ( ( rule__XStringLiteral__Group__0 ) )
             {
-            // InternalChartDSL.g:2108:2: ( ( rule__XStringLiteral__Group__0 ) )
-            // InternalChartDSL.g:2109:3: ( rule__XStringLiteral__Group__0 )
+            // InternalChartDSL.g:2133:2: ( ( rule__XStringLiteral__Group__0 ) )
+            // InternalChartDSL.g:2134:3: ( rule__XStringLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2110:3: ( rule__XStringLiteral__Group__0 )
-            // InternalChartDSL.g:2110:4: rule__XStringLiteral__Group__0
+            // InternalChartDSL.g:2135:3: ( rule__XStringLiteral__Group__0 )
+            // InternalChartDSL.g:2135:4: rule__XStringLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__Group__0();
@@ -7144,11 +7246,11 @@
 
 
     // $ANTLR start "entryRuleXTypeLiteral"
-    // InternalChartDSL.g:2119:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
+    // InternalChartDSL.g:2144:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
     public final void entryRuleXTypeLiteral() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2120:1: ( ruleXTypeLiteral EOF )
-            // InternalChartDSL.g:2121:1: ruleXTypeLiteral EOF
+            // InternalChartDSL.g:2145:1: ( ruleXTypeLiteral EOF )
+            // InternalChartDSL.g:2146:1: ruleXTypeLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralRule()); 
@@ -7178,23 +7280,23 @@
 
 
     // $ANTLR start "ruleXTypeLiteral"
-    // InternalChartDSL.g:2128:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
+    // InternalChartDSL.g:2153:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
     public final void ruleXTypeLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2132:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
-            // InternalChartDSL.g:2133:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            // InternalChartDSL.g:2157:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
+            // InternalChartDSL.g:2158:2: ( ( rule__XTypeLiteral__Group__0 ) )
             {
-            // InternalChartDSL.g:2133:2: ( ( rule__XTypeLiteral__Group__0 ) )
-            // InternalChartDSL.g:2134:3: ( rule__XTypeLiteral__Group__0 )
+            // InternalChartDSL.g:2158:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            // InternalChartDSL.g:2159:3: ( rule__XTypeLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2135:3: ( rule__XTypeLiteral__Group__0 )
-            // InternalChartDSL.g:2135:4: rule__XTypeLiteral__Group__0
+            // InternalChartDSL.g:2160:3: ( rule__XTypeLiteral__Group__0 )
+            // InternalChartDSL.g:2160:4: rule__XTypeLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__Group__0();
@@ -7229,11 +7331,11 @@
 
 
     // $ANTLR start "entryRuleXThrowExpression"
-    // InternalChartDSL.g:2144:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
+    // InternalChartDSL.g:2169:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
     public final void entryRuleXThrowExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2145:1: ( ruleXThrowExpression EOF )
-            // InternalChartDSL.g:2146:1: ruleXThrowExpression EOF
+            // InternalChartDSL.g:2170:1: ( ruleXThrowExpression EOF )
+            // InternalChartDSL.g:2171:1: ruleXThrowExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionRule()); 
@@ -7263,23 +7365,23 @@
 
 
     // $ANTLR start "ruleXThrowExpression"
-    // InternalChartDSL.g:2153:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:2178:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
     public final void ruleXThrowExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2157:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
-            // InternalChartDSL.g:2158:2: ( ( rule__XThrowExpression__Group__0 ) )
+            // InternalChartDSL.g:2182:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
+            // InternalChartDSL.g:2183:2: ( ( rule__XThrowExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:2158:2: ( ( rule__XThrowExpression__Group__0 ) )
-            // InternalChartDSL.g:2159:3: ( rule__XThrowExpression__Group__0 )
+            // InternalChartDSL.g:2183:2: ( ( rule__XThrowExpression__Group__0 ) )
+            // InternalChartDSL.g:2184:3: ( rule__XThrowExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2160:3: ( rule__XThrowExpression__Group__0 )
-            // InternalChartDSL.g:2160:4: rule__XThrowExpression__Group__0
+            // InternalChartDSL.g:2185:3: ( rule__XThrowExpression__Group__0 )
+            // InternalChartDSL.g:2185:4: rule__XThrowExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__Group__0();
@@ -7314,11 +7416,11 @@
 
 
     // $ANTLR start "entryRuleXReturnExpression"
-    // InternalChartDSL.g:2169:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
+    // InternalChartDSL.g:2194:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
     public final void entryRuleXReturnExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2170:1: ( ruleXReturnExpression EOF )
-            // InternalChartDSL.g:2171:1: ruleXReturnExpression EOF
+            // InternalChartDSL.g:2195:1: ( ruleXReturnExpression EOF )
+            // InternalChartDSL.g:2196:1: ruleXReturnExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionRule()); 
@@ -7348,23 +7450,23 @@
 
 
     // $ANTLR start "ruleXReturnExpression"
-    // InternalChartDSL.g:2178:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:2203:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
     public final void ruleXReturnExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2182:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
-            // InternalChartDSL.g:2183:2: ( ( rule__XReturnExpression__Group__0 ) )
+            // InternalChartDSL.g:2207:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
+            // InternalChartDSL.g:2208:2: ( ( rule__XReturnExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:2183:2: ( ( rule__XReturnExpression__Group__0 ) )
-            // InternalChartDSL.g:2184:3: ( rule__XReturnExpression__Group__0 )
+            // InternalChartDSL.g:2208:2: ( ( rule__XReturnExpression__Group__0 ) )
+            // InternalChartDSL.g:2209:3: ( rule__XReturnExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2185:3: ( rule__XReturnExpression__Group__0 )
-            // InternalChartDSL.g:2185:4: rule__XReturnExpression__Group__0
+            // InternalChartDSL.g:2210:3: ( rule__XReturnExpression__Group__0 )
+            // InternalChartDSL.g:2210:4: rule__XReturnExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XReturnExpression__Group__0();
@@ -7399,11 +7501,11 @@
 
 
     // $ANTLR start "entryRuleXTryCatchFinallyExpression"
-    // InternalChartDSL.g:2194:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
+    // InternalChartDSL.g:2219:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
     public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2195:1: ( ruleXTryCatchFinallyExpression EOF )
-            // InternalChartDSL.g:2196:1: ruleXTryCatchFinallyExpression EOF
+            // InternalChartDSL.g:2220:1: ( ruleXTryCatchFinallyExpression EOF )
+            // InternalChartDSL.g:2221:1: ruleXTryCatchFinallyExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionRule()); 
@@ -7433,23 +7535,23 @@
 
 
     // $ANTLR start "ruleXTryCatchFinallyExpression"
-    // InternalChartDSL.g:2203:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:2228:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
     public final void ruleXTryCatchFinallyExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2207:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
-            // InternalChartDSL.g:2208:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // InternalChartDSL.g:2232:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
+            // InternalChartDSL.g:2233:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:2208:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
-            // InternalChartDSL.g:2209:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // InternalChartDSL.g:2233:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // InternalChartDSL.g:2234:3: ( rule__XTryCatchFinallyExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2210:3: ( rule__XTryCatchFinallyExpression__Group__0 )
-            // InternalChartDSL.g:2210:4: rule__XTryCatchFinallyExpression__Group__0
+            // InternalChartDSL.g:2235:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // InternalChartDSL.g:2235:4: rule__XTryCatchFinallyExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group__0();
@@ -7484,11 +7586,11 @@
 
 
     // $ANTLR start "entryRuleXSynchronizedExpression"
-    // InternalChartDSL.g:2219:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
+    // InternalChartDSL.g:2244:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
     public final void entryRuleXSynchronizedExpression() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2220:1: ( ruleXSynchronizedExpression EOF )
-            // InternalChartDSL.g:2221:1: ruleXSynchronizedExpression EOF
+            // InternalChartDSL.g:2245:1: ( ruleXSynchronizedExpression EOF )
+            // InternalChartDSL.g:2246:1: ruleXSynchronizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionRule()); 
@@ -7518,23 +7620,23 @@
 
 
     // $ANTLR start "ruleXSynchronizedExpression"
-    // InternalChartDSL.g:2228:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
+    // InternalChartDSL.g:2253:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
     public final void ruleXSynchronizedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2232:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
-            // InternalChartDSL.g:2233:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // InternalChartDSL.g:2257:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
+            // InternalChartDSL.g:2258:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
             {
-            // InternalChartDSL.g:2233:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
-            // InternalChartDSL.g:2234:3: ( rule__XSynchronizedExpression__Group__0 )
+            // InternalChartDSL.g:2258:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // InternalChartDSL.g:2259:3: ( rule__XSynchronizedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2235:3: ( rule__XSynchronizedExpression__Group__0 )
-            // InternalChartDSL.g:2235:4: rule__XSynchronizedExpression__Group__0
+            // InternalChartDSL.g:2260:3: ( rule__XSynchronizedExpression__Group__0 )
+            // InternalChartDSL.g:2260:4: rule__XSynchronizedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group__0();
@@ -7569,11 +7671,11 @@
 
 
     // $ANTLR start "entryRuleXCatchClause"
-    // InternalChartDSL.g:2244:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
+    // InternalChartDSL.g:2269:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
     public final void entryRuleXCatchClause() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2245:1: ( ruleXCatchClause EOF )
-            // InternalChartDSL.g:2246:1: ruleXCatchClause EOF
+            // InternalChartDSL.g:2270:1: ( ruleXCatchClause EOF )
+            // InternalChartDSL.g:2271:1: ruleXCatchClause EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseRule()); 
@@ -7603,23 +7705,23 @@
 
 
     // $ANTLR start "ruleXCatchClause"
-    // InternalChartDSL.g:2253:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
+    // InternalChartDSL.g:2278:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
     public final void ruleXCatchClause() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2257:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
-            // InternalChartDSL.g:2258:2: ( ( rule__XCatchClause__Group__0 ) )
+            // InternalChartDSL.g:2282:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
+            // InternalChartDSL.g:2283:2: ( ( rule__XCatchClause__Group__0 ) )
             {
-            // InternalChartDSL.g:2258:2: ( ( rule__XCatchClause__Group__0 ) )
-            // InternalChartDSL.g:2259:3: ( rule__XCatchClause__Group__0 )
+            // InternalChartDSL.g:2283:2: ( ( rule__XCatchClause__Group__0 ) )
+            // InternalChartDSL.g:2284:3: ( rule__XCatchClause__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2260:3: ( rule__XCatchClause__Group__0 )
-            // InternalChartDSL.g:2260:4: rule__XCatchClause__Group__0
+            // InternalChartDSL.g:2285:3: ( rule__XCatchClause__Group__0 )
+            // InternalChartDSL.g:2285:4: rule__XCatchClause__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__Group__0();
@@ -7654,11 +7756,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalChartDSL.g:2269:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalChartDSL.g:2294:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2270:1: ( ruleQualifiedName EOF )
-            // InternalChartDSL.g:2271:1: ruleQualifiedName EOF
+            // InternalChartDSL.g:2295:1: ( ruleQualifiedName EOF )
+            // InternalChartDSL.g:2296:1: ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameRule()); 
@@ -7688,23 +7790,23 @@
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalChartDSL.g:2278:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalChartDSL.g:2303:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2282:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalChartDSL.g:2283:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalChartDSL.g:2307:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalChartDSL.g:2308:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalChartDSL.g:2283:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalChartDSL.g:2284:3: ( rule__QualifiedName__Group__0 )
+            // InternalChartDSL.g:2308:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalChartDSL.g:2309:3: ( rule__QualifiedName__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2285:3: ( rule__QualifiedName__Group__0 )
-            // InternalChartDSL.g:2285:4: rule__QualifiedName__Group__0
+            // InternalChartDSL.g:2310:3: ( rule__QualifiedName__Group__0 )
+            // InternalChartDSL.g:2310:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -7739,14 +7841,14 @@
 
 
     // $ANTLR start "entryRuleNumber"
-    // InternalChartDSL.g:2294:1: entryRuleNumber : ruleNumber EOF ;
+    // InternalChartDSL.g:2319:1: entryRuleNumber : ruleNumber EOF ;
     public final void entryRuleNumber() throws RecognitionException {
          
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalChartDSL.g:2298:1: ( ruleNumber EOF )
-            // InternalChartDSL.g:2299:1: ruleNumber EOF
+            // InternalChartDSL.g:2323:1: ( ruleNumber EOF )
+            // InternalChartDSL.g:2324:1: ruleNumber EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberRule()); 
@@ -7779,24 +7881,24 @@
 
 
     // $ANTLR start "ruleNumber"
-    // InternalChartDSL.g:2309:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
+    // InternalChartDSL.g:2334:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
     public final void ruleNumber() throws RecognitionException {
 
         		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2314:2: ( ( ( rule__Number__Alternatives ) ) )
-            // InternalChartDSL.g:2315:2: ( ( rule__Number__Alternatives ) )
+            // InternalChartDSL.g:2339:2: ( ( ( rule__Number__Alternatives ) ) )
+            // InternalChartDSL.g:2340:2: ( ( rule__Number__Alternatives ) )
             {
-            // InternalChartDSL.g:2315:2: ( ( rule__Number__Alternatives ) )
-            // InternalChartDSL.g:2316:3: ( rule__Number__Alternatives )
+            // InternalChartDSL.g:2340:2: ( ( rule__Number__Alternatives ) )
+            // InternalChartDSL.g:2341:3: ( rule__Number__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:2317:3: ( rule__Number__Alternatives )
-            // InternalChartDSL.g:2317:4: rule__Number__Alternatives
+            // InternalChartDSL.g:2342:3: ( rule__Number__Alternatives )
+            // InternalChartDSL.g:2342:4: rule__Number__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives();
@@ -7832,11 +7934,11 @@
 
 
     // $ANTLR start "entryRuleJvmTypeReference"
-    // InternalChartDSL.g:2327:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
+    // InternalChartDSL.g:2352:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
     public final void entryRuleJvmTypeReference() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2328:1: ( ruleJvmTypeReference EOF )
-            // InternalChartDSL.g:2329:1: ruleJvmTypeReference EOF
+            // InternalChartDSL.g:2353:1: ( ruleJvmTypeReference EOF )
+            // InternalChartDSL.g:2354:1: ruleJvmTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceRule()); 
@@ -7866,23 +7968,23 @@
 
 
     // $ANTLR start "ruleJvmTypeReference"
-    // InternalChartDSL.g:2336:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
+    // InternalChartDSL.g:2361:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
     public final void ruleJvmTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2340:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
-            // InternalChartDSL.g:2341:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            // InternalChartDSL.g:2365:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
+            // InternalChartDSL.g:2366:2: ( ( rule__JvmTypeReference__Alternatives ) )
             {
-            // InternalChartDSL.g:2341:2: ( ( rule__JvmTypeReference__Alternatives ) )
-            // InternalChartDSL.g:2342:3: ( rule__JvmTypeReference__Alternatives )
+            // InternalChartDSL.g:2366:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            // InternalChartDSL.g:2367:3: ( rule__JvmTypeReference__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:2343:3: ( rule__JvmTypeReference__Alternatives )
-            // InternalChartDSL.g:2343:4: rule__JvmTypeReference__Alternatives
+            // InternalChartDSL.g:2368:3: ( rule__JvmTypeReference__Alternatives )
+            // InternalChartDSL.g:2368:4: rule__JvmTypeReference__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Alternatives();
@@ -7917,11 +8019,11 @@
 
 
     // $ANTLR start "entryRuleArrayBrackets"
-    // InternalChartDSL.g:2352:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
+    // InternalChartDSL.g:2377:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
     public final void entryRuleArrayBrackets() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2353:1: ( ruleArrayBrackets EOF )
-            // InternalChartDSL.g:2354:1: ruleArrayBrackets EOF
+            // InternalChartDSL.g:2378:1: ( ruleArrayBrackets EOF )
+            // InternalChartDSL.g:2379:1: ruleArrayBrackets EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsRule()); 
@@ -7951,23 +8053,23 @@
 
 
     // $ANTLR start "ruleArrayBrackets"
-    // InternalChartDSL.g:2361:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
+    // InternalChartDSL.g:2386:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
     public final void ruleArrayBrackets() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2365:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
-            // InternalChartDSL.g:2366:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            // InternalChartDSL.g:2390:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
+            // InternalChartDSL.g:2391:2: ( ( rule__ArrayBrackets__Group__0 ) )
             {
-            // InternalChartDSL.g:2366:2: ( ( rule__ArrayBrackets__Group__0 ) )
-            // InternalChartDSL.g:2367:3: ( rule__ArrayBrackets__Group__0 )
+            // InternalChartDSL.g:2391:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            // InternalChartDSL.g:2392:3: ( rule__ArrayBrackets__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2368:3: ( rule__ArrayBrackets__Group__0 )
-            // InternalChartDSL.g:2368:4: rule__ArrayBrackets__Group__0
+            // InternalChartDSL.g:2393:3: ( rule__ArrayBrackets__Group__0 )
+            // InternalChartDSL.g:2393:4: rule__ArrayBrackets__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayBrackets__Group__0();
@@ -8002,11 +8104,11 @@
 
 
     // $ANTLR start "entryRuleXFunctionTypeRef"
-    // InternalChartDSL.g:2377:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
+    // InternalChartDSL.g:2402:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
     public final void entryRuleXFunctionTypeRef() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2378:1: ( ruleXFunctionTypeRef EOF )
-            // InternalChartDSL.g:2379:1: ruleXFunctionTypeRef EOF
+            // InternalChartDSL.g:2403:1: ( ruleXFunctionTypeRef EOF )
+            // InternalChartDSL.g:2404:1: ruleXFunctionTypeRef EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefRule()); 
@@ -8036,23 +8138,23 @@
 
 
     // $ANTLR start "ruleXFunctionTypeRef"
-    // InternalChartDSL.g:2386:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
+    // InternalChartDSL.g:2411:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
     public final void ruleXFunctionTypeRef() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2390:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
-            // InternalChartDSL.g:2391:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // InternalChartDSL.g:2415:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
+            // InternalChartDSL.g:2416:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
             {
-            // InternalChartDSL.g:2391:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
-            // InternalChartDSL.g:2392:3: ( rule__XFunctionTypeRef__Group__0 )
+            // InternalChartDSL.g:2416:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // InternalChartDSL.g:2417:3: ( rule__XFunctionTypeRef__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2393:3: ( rule__XFunctionTypeRef__Group__0 )
-            // InternalChartDSL.g:2393:4: rule__XFunctionTypeRef__Group__0
+            // InternalChartDSL.g:2418:3: ( rule__XFunctionTypeRef__Group__0 )
+            // InternalChartDSL.g:2418:4: rule__XFunctionTypeRef__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group__0();
@@ -8087,11 +8189,11 @@
 
 
     // $ANTLR start "entryRuleJvmParameterizedTypeReference"
-    // InternalChartDSL.g:2402:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
+    // InternalChartDSL.g:2427:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
     public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2403:1: ( ruleJvmParameterizedTypeReference EOF )
-            // InternalChartDSL.g:2404:1: ruleJvmParameterizedTypeReference EOF
+            // InternalChartDSL.g:2428:1: ( ruleJvmParameterizedTypeReference EOF )
+            // InternalChartDSL.g:2429:1: ruleJvmParameterizedTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
@@ -8121,23 +8223,23 @@
 
 
     // $ANTLR start "ruleJvmParameterizedTypeReference"
-    // InternalChartDSL.g:2411:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
+    // InternalChartDSL.g:2436:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
     public final void ruleJvmParameterizedTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2415:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
-            // InternalChartDSL.g:2416:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // InternalChartDSL.g:2440:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
+            // InternalChartDSL.g:2441:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
             {
-            // InternalChartDSL.g:2416:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
-            // InternalChartDSL.g:2417:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // InternalChartDSL.g:2441:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // InternalChartDSL.g:2442:3: ( rule__JvmParameterizedTypeReference__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2418:3: ( rule__JvmParameterizedTypeReference__Group__0 )
-            // InternalChartDSL.g:2418:4: rule__JvmParameterizedTypeReference__Group__0
+            // InternalChartDSL.g:2443:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // InternalChartDSL.g:2443:4: rule__JvmParameterizedTypeReference__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group__0();
@@ -8172,11 +8274,11 @@
 
 
     // $ANTLR start "entryRuleJvmArgumentTypeReference"
-    // InternalChartDSL.g:2427:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
+    // InternalChartDSL.g:2452:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
     public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2428:1: ( ruleJvmArgumentTypeReference EOF )
-            // InternalChartDSL.g:2429:1: ruleJvmArgumentTypeReference EOF
+            // InternalChartDSL.g:2453:1: ( ruleJvmArgumentTypeReference EOF )
+            // InternalChartDSL.g:2454:1: ruleJvmArgumentTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmArgumentTypeReferenceRule()); 
@@ -8206,23 +8308,23 @@
 
 
     // $ANTLR start "ruleJvmArgumentTypeReference"
-    // InternalChartDSL.g:2436:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
+    // InternalChartDSL.g:2461:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
     public final void ruleJvmArgumentTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2440:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
-            // InternalChartDSL.g:2441:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // InternalChartDSL.g:2465:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
+            // InternalChartDSL.g:2466:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
             {
-            // InternalChartDSL.g:2441:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
-            // InternalChartDSL.g:2442:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            // InternalChartDSL.g:2466:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // InternalChartDSL.g:2467:3: ( rule__JvmArgumentTypeReference__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:2443:3: ( rule__JvmArgumentTypeReference__Alternatives )
-            // InternalChartDSL.g:2443:4: rule__JvmArgumentTypeReference__Alternatives
+            // InternalChartDSL.g:2468:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            // InternalChartDSL.g:2468:4: rule__JvmArgumentTypeReference__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__JvmArgumentTypeReference__Alternatives();
@@ -8257,11 +8359,11 @@
 
 
     // $ANTLR start "entryRuleJvmWildcardTypeReference"
-    // InternalChartDSL.g:2452:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
+    // InternalChartDSL.g:2477:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
     public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2453:1: ( ruleJvmWildcardTypeReference EOF )
-            // InternalChartDSL.g:2454:1: ruleJvmWildcardTypeReference EOF
+            // InternalChartDSL.g:2478:1: ( ruleJvmWildcardTypeReference EOF )
+            // InternalChartDSL.g:2479:1: ruleJvmWildcardTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceRule()); 
@@ -8291,23 +8393,23 @@
 
 
     // $ANTLR start "ruleJvmWildcardTypeReference"
-    // InternalChartDSL.g:2461:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
+    // InternalChartDSL.g:2486:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
     public final void ruleJvmWildcardTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2465:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
-            // InternalChartDSL.g:2466:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // InternalChartDSL.g:2490:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
+            // InternalChartDSL.g:2491:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
             {
-            // InternalChartDSL.g:2466:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
-            // InternalChartDSL.g:2467:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            // InternalChartDSL.g:2491:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // InternalChartDSL.g:2492:3: ( rule__JvmWildcardTypeReference__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2468:3: ( rule__JvmWildcardTypeReference__Group__0 )
-            // InternalChartDSL.g:2468:4: rule__JvmWildcardTypeReference__Group__0
+            // InternalChartDSL.g:2493:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            // InternalChartDSL.g:2493:4: rule__JvmWildcardTypeReference__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group__0();
@@ -8342,11 +8444,11 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBound"
-    // InternalChartDSL.g:2477:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
+    // InternalChartDSL.g:2502:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
     public final void entryRuleJvmUpperBound() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2478:1: ( ruleJvmUpperBound EOF )
-            // InternalChartDSL.g:2479:1: ruleJvmUpperBound EOF
+            // InternalChartDSL.g:2503:1: ( ruleJvmUpperBound EOF )
+            // InternalChartDSL.g:2504:1: ruleJvmUpperBound EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundRule()); 
@@ -8376,23 +8478,23 @@
 
 
     // $ANTLR start "ruleJvmUpperBound"
-    // InternalChartDSL.g:2486:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
+    // InternalChartDSL.g:2511:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
     public final void ruleJvmUpperBound() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2490:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
-            // InternalChartDSL.g:2491:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            // InternalChartDSL.g:2515:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
+            // InternalChartDSL.g:2516:2: ( ( rule__JvmUpperBound__Group__0 ) )
             {
-            // InternalChartDSL.g:2491:2: ( ( rule__JvmUpperBound__Group__0 ) )
-            // InternalChartDSL.g:2492:3: ( rule__JvmUpperBound__Group__0 )
+            // InternalChartDSL.g:2516:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            // InternalChartDSL.g:2517:3: ( rule__JvmUpperBound__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2493:3: ( rule__JvmUpperBound__Group__0 )
-            // InternalChartDSL.g:2493:4: rule__JvmUpperBound__Group__0
+            // InternalChartDSL.g:2518:3: ( rule__JvmUpperBound__Group__0 )
+            // InternalChartDSL.g:2518:4: rule__JvmUpperBound__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__Group__0();
@@ -8427,11 +8529,11 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBoundAnded"
-    // InternalChartDSL.g:2502:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
+    // InternalChartDSL.g:2527:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
     public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2503:1: ( ruleJvmUpperBoundAnded EOF )
-            // InternalChartDSL.g:2504:1: ruleJvmUpperBoundAnded EOF
+            // InternalChartDSL.g:2528:1: ( ruleJvmUpperBoundAnded EOF )
+            // InternalChartDSL.g:2529:1: ruleJvmUpperBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedRule()); 
@@ -8461,23 +8563,23 @@
 
 
     // $ANTLR start "ruleJvmUpperBoundAnded"
-    // InternalChartDSL.g:2511:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
+    // InternalChartDSL.g:2536:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
     public final void ruleJvmUpperBoundAnded() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2515:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
-            // InternalChartDSL.g:2516:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // InternalChartDSL.g:2540:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
+            // InternalChartDSL.g:2541:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
             {
-            // InternalChartDSL.g:2516:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
-            // InternalChartDSL.g:2517:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            // InternalChartDSL.g:2541:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // InternalChartDSL.g:2542:3: ( rule__JvmUpperBoundAnded__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2518:3: ( rule__JvmUpperBoundAnded__Group__0 )
-            // InternalChartDSL.g:2518:4: rule__JvmUpperBoundAnded__Group__0
+            // InternalChartDSL.g:2543:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            // InternalChartDSL.g:2543:4: rule__JvmUpperBoundAnded__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__Group__0();
@@ -8512,11 +8614,11 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBound"
-    // InternalChartDSL.g:2527:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
+    // InternalChartDSL.g:2552:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
     public final void entryRuleJvmLowerBound() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2528:1: ( ruleJvmLowerBound EOF )
-            // InternalChartDSL.g:2529:1: ruleJvmLowerBound EOF
+            // InternalChartDSL.g:2553:1: ( ruleJvmLowerBound EOF )
+            // InternalChartDSL.g:2554:1: ruleJvmLowerBound EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundRule()); 
@@ -8546,23 +8648,23 @@
 
 
     // $ANTLR start "ruleJvmLowerBound"
-    // InternalChartDSL.g:2536:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
+    // InternalChartDSL.g:2561:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
     public final void ruleJvmLowerBound() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2540:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
-            // InternalChartDSL.g:2541:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            // InternalChartDSL.g:2565:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
+            // InternalChartDSL.g:2566:2: ( ( rule__JvmLowerBound__Group__0 ) )
             {
-            // InternalChartDSL.g:2541:2: ( ( rule__JvmLowerBound__Group__0 ) )
-            // InternalChartDSL.g:2542:3: ( rule__JvmLowerBound__Group__0 )
+            // InternalChartDSL.g:2566:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            // InternalChartDSL.g:2567:3: ( rule__JvmLowerBound__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2543:3: ( rule__JvmLowerBound__Group__0 )
-            // InternalChartDSL.g:2543:4: rule__JvmLowerBound__Group__0
+            // InternalChartDSL.g:2568:3: ( rule__JvmLowerBound__Group__0 )
+            // InternalChartDSL.g:2568:4: rule__JvmLowerBound__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__Group__0();
@@ -8597,11 +8699,11 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBoundAnded"
-    // InternalChartDSL.g:2552:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
+    // InternalChartDSL.g:2577:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
     public final void entryRuleJvmLowerBoundAnded() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2553:1: ( ruleJvmLowerBoundAnded EOF )
-            // InternalChartDSL.g:2554:1: ruleJvmLowerBoundAnded EOF
+            // InternalChartDSL.g:2578:1: ( ruleJvmLowerBoundAnded EOF )
+            // InternalChartDSL.g:2579:1: ruleJvmLowerBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedRule()); 
@@ -8631,23 +8733,23 @@
 
 
     // $ANTLR start "ruleJvmLowerBoundAnded"
-    // InternalChartDSL.g:2561:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
+    // InternalChartDSL.g:2586:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
     public final void ruleJvmLowerBoundAnded() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2565:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
-            // InternalChartDSL.g:2566:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // InternalChartDSL.g:2590:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
+            // InternalChartDSL.g:2591:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
             {
-            // InternalChartDSL.g:2566:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
-            // InternalChartDSL.g:2567:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            // InternalChartDSL.g:2591:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // InternalChartDSL.g:2592:3: ( rule__JvmLowerBoundAnded__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2568:3: ( rule__JvmLowerBoundAnded__Group__0 )
-            // InternalChartDSL.g:2568:4: rule__JvmLowerBoundAnded__Group__0
+            // InternalChartDSL.g:2593:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            // InternalChartDSL.g:2593:4: rule__JvmLowerBoundAnded__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__Group__0();
@@ -8682,11 +8784,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameWithWildcard"
-    // InternalChartDSL.g:2577:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
+    // InternalChartDSL.g:2602:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
     public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2578:1: ( ruleQualifiedNameWithWildcard EOF )
-            // InternalChartDSL.g:2579:1: ruleQualifiedNameWithWildcard EOF
+            // InternalChartDSL.g:2603:1: ( ruleQualifiedNameWithWildcard EOF )
+            // InternalChartDSL.g:2604:1: ruleQualifiedNameWithWildcard EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardRule()); 
@@ -8716,23 +8818,23 @@
 
 
     // $ANTLR start "ruleQualifiedNameWithWildcard"
-    // InternalChartDSL.g:2586:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
+    // InternalChartDSL.g:2611:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
     public final void ruleQualifiedNameWithWildcard() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2590:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
-            // InternalChartDSL.g:2591:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // InternalChartDSL.g:2615:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
+            // InternalChartDSL.g:2616:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
             {
-            // InternalChartDSL.g:2591:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
-            // InternalChartDSL.g:2592:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // InternalChartDSL.g:2616:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // InternalChartDSL.g:2617:3: ( rule__QualifiedNameWithWildcard__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2593:3: ( rule__QualifiedNameWithWildcard__Group__0 )
-            // InternalChartDSL.g:2593:4: rule__QualifiedNameWithWildcard__Group__0
+            // InternalChartDSL.g:2618:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // InternalChartDSL.g:2618:4: rule__QualifiedNameWithWildcard__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameWithWildcard__Group__0();
@@ -8767,11 +8869,11 @@
 
 
     // $ANTLR start "entryRuleValidID"
-    // InternalChartDSL.g:2602:1: entryRuleValidID : ruleValidID EOF ;
+    // InternalChartDSL.g:2627:1: entryRuleValidID : ruleValidID EOF ;
     public final void entryRuleValidID() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2603:1: ( ruleValidID EOF )
-            // InternalChartDSL.g:2604:1: ruleValidID EOF
+            // InternalChartDSL.g:2628:1: ( ruleValidID EOF )
+            // InternalChartDSL.g:2629:1: ruleValidID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getValidIDRule()); 
@@ -8801,17 +8903,17 @@
 
 
     // $ANTLR start "ruleValidID"
-    // InternalChartDSL.g:2611:1: ruleValidID : ( RULE_ID ) ;
+    // InternalChartDSL.g:2636:1: ruleValidID : ( RULE_ID ) ;
     public final void ruleValidID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2615:2: ( ( RULE_ID ) )
-            // InternalChartDSL.g:2616:2: ( RULE_ID )
+            // InternalChartDSL.g:2640:2: ( ( RULE_ID ) )
+            // InternalChartDSL.g:2641:2: ( RULE_ID )
             {
-            // InternalChartDSL.g:2616:2: ( RULE_ID )
-            // InternalChartDSL.g:2617:3: RULE_ID
+            // InternalChartDSL.g:2641:2: ( RULE_ID )
+            // InternalChartDSL.g:2642:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
@@ -8842,11 +8944,11 @@
 
 
     // $ANTLR start "entryRuleXImportSection"
-    // InternalChartDSL.g:2627:1: entryRuleXImportSection : ruleXImportSection EOF ;
+    // InternalChartDSL.g:2652:1: entryRuleXImportSection : ruleXImportSection EOF ;
     public final void entryRuleXImportSection() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2628:1: ( ruleXImportSection EOF )
-            // InternalChartDSL.g:2629:1: ruleXImportSection EOF
+            // InternalChartDSL.g:2653:1: ( ruleXImportSection EOF )
+            // InternalChartDSL.g:2654:1: ruleXImportSection EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionRule()); 
@@ -8876,26 +8978,26 @@
 
 
     // $ANTLR start "ruleXImportSection"
-    // InternalChartDSL.g:2636:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
+    // InternalChartDSL.g:2661:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
     public final void ruleXImportSection() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2640:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
-            // InternalChartDSL.g:2641:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            // InternalChartDSL.g:2665:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
+            // InternalChartDSL.g:2666:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
             {
-            // InternalChartDSL.g:2641:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
-            // InternalChartDSL.g:2642:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            // InternalChartDSL.g:2666:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            // InternalChartDSL.g:2667:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
             {
-            // InternalChartDSL.g:2642:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
-            // InternalChartDSL.g:2643:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            // InternalChartDSL.g:2667:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
+            // InternalChartDSL.g:2668:4: ( rule__XImportSection__ImportDeclarationsAssignment )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
             }
-            // InternalChartDSL.g:2644:4: ( rule__XImportSection__ImportDeclarationsAssignment )
-            // InternalChartDSL.g:2644:5: rule__XImportSection__ImportDeclarationsAssignment
+            // InternalChartDSL.g:2669:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            // InternalChartDSL.g:2669:5: rule__XImportSection__ImportDeclarationsAssignment
             {
             pushFollow(FOLLOW_3);
             rule__XImportSection__ImportDeclarationsAssignment();
@@ -8911,13 +9013,13 @@
 
             }
 
-            // InternalChartDSL.g:2647:3: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
-            // InternalChartDSL.g:2648:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            // InternalChartDSL.g:2672:3: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            // InternalChartDSL.g:2673:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
             }
-            // InternalChartDSL.g:2649:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            // InternalChartDSL.g:2674:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
             loop2:
             do {
                 int alt2=2;
@@ -8930,7 +9032,7 @@
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalChartDSL.g:2649:5: rule__XImportSection__ImportDeclarationsAssignment
+            	    // InternalChartDSL.g:2674:5: rule__XImportSection__ImportDeclarationsAssignment
             	    {
             	    pushFollow(FOLLOW_3);
             	    rule__XImportSection__ImportDeclarationsAssignment();
@@ -8974,11 +9076,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameInStaticImport"
-    // InternalChartDSL.g:2659:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
+    // InternalChartDSL.g:2684:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
     public final void entryRuleQualifiedNameInStaticImport() throws RecognitionException {
         try {
-            // InternalChartDSL.g:2660:1: ( ruleQualifiedNameInStaticImport EOF )
-            // InternalChartDSL.g:2661:1: ruleQualifiedNameInStaticImport EOF
+            // InternalChartDSL.g:2685:1: ( ruleQualifiedNameInStaticImport EOF )
+            // InternalChartDSL.g:2686:1: ruleQualifiedNameInStaticImport EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportRule()); 
@@ -9008,26 +9110,26 @@
 
 
     // $ANTLR start "ruleQualifiedNameInStaticImport"
-    // InternalChartDSL.g:2668:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
+    // InternalChartDSL.g:2693:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
     public final void ruleQualifiedNameInStaticImport() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2672:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
-            // InternalChartDSL.g:2673:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // InternalChartDSL.g:2697:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
+            // InternalChartDSL.g:2698:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
             {
-            // InternalChartDSL.g:2673:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
-            // InternalChartDSL.g:2674:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // InternalChartDSL.g:2698:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // InternalChartDSL.g:2699:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
             {
-            // InternalChartDSL.g:2674:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
-            // InternalChartDSL.g:2675:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // InternalChartDSL.g:2699:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
+            // InternalChartDSL.g:2700:4: ( rule__QualifiedNameInStaticImport__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2676:4: ( rule__QualifiedNameInStaticImport__Group__0 )
-            // InternalChartDSL.g:2676:5: rule__QualifiedNameInStaticImport__Group__0
+            // InternalChartDSL.g:2701:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // InternalChartDSL.g:2701:5: rule__QualifiedNameInStaticImport__Group__0
             {
             pushFollow(FOLLOW_4);
             rule__QualifiedNameInStaticImport__Group__0();
@@ -9043,13 +9145,13 @@
 
             }
 
-            // InternalChartDSL.g:2679:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
-            // InternalChartDSL.g:2680:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            // InternalChartDSL.g:2704:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // InternalChartDSL.g:2705:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
             }
-            // InternalChartDSL.g:2681:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            // InternalChartDSL.g:2706:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
             loop3:
             do {
                 int alt3=2;
@@ -9068,7 +9170,7 @@
 
                 switch (alt3) {
             	case 1 :
-            	    // InternalChartDSL.g:2681:5: rule__QualifiedNameInStaticImport__Group__0
+            	    // InternalChartDSL.g:2706:5: rule__QualifiedNameInStaticImport__Group__0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__QualifiedNameInStaticImport__Group__0();
@@ -9112,23 +9214,23 @@
 
 
     // $ANTLR start "ruleLegendPlacementEnum"
-    // InternalChartDSL.g:2691:1: ruleLegendPlacementEnum : ( ( rule__LegendPlacementEnum__Alternatives ) ) ;
+    // InternalChartDSL.g:2716:1: ruleLegendPlacementEnum : ( ( rule__LegendPlacementEnum__Alternatives ) ) ;
     public final void ruleLegendPlacementEnum() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2695:1: ( ( ( rule__LegendPlacementEnum__Alternatives ) ) )
-            // InternalChartDSL.g:2696:2: ( ( rule__LegendPlacementEnum__Alternatives ) )
+            // InternalChartDSL.g:2720:1: ( ( ( rule__LegendPlacementEnum__Alternatives ) ) )
+            // InternalChartDSL.g:2721:2: ( ( rule__LegendPlacementEnum__Alternatives ) )
             {
-            // InternalChartDSL.g:2696:2: ( ( rule__LegendPlacementEnum__Alternatives ) )
-            // InternalChartDSL.g:2697:3: ( rule__LegendPlacementEnum__Alternatives )
+            // InternalChartDSL.g:2721:2: ( ( rule__LegendPlacementEnum__Alternatives ) )
+            // InternalChartDSL.g:2722:3: ( rule__LegendPlacementEnum__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLegendPlacementEnumAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:2698:3: ( rule__LegendPlacementEnum__Alternatives )
-            // InternalChartDSL.g:2698:4: rule__LegendPlacementEnum__Alternatives
+            // InternalChartDSL.g:2723:3: ( rule__LegendPlacementEnum__Alternatives )
+            // InternalChartDSL.g:2723:4: rule__LegendPlacementEnum__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__LegendPlacementEnum__Alternatives();
@@ -9163,23 +9265,23 @@
 
 
     // $ANTLR start "ruleToggleTypeEnum"
-    // InternalChartDSL.g:2707:1: ruleToggleTypeEnum : ( ( rule__ToggleTypeEnum__Alternatives ) ) ;
+    // InternalChartDSL.g:2732:1: ruleToggleTypeEnum : ( ( rule__ToggleTypeEnum__Alternatives ) ) ;
     public final void ruleToggleTypeEnum() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2711:1: ( ( ( rule__ToggleTypeEnum__Alternatives ) ) )
-            // InternalChartDSL.g:2712:2: ( ( rule__ToggleTypeEnum__Alternatives ) )
+            // InternalChartDSL.g:2736:1: ( ( ( rule__ToggleTypeEnum__Alternatives ) ) )
+            // InternalChartDSL.g:2737:2: ( ( rule__ToggleTypeEnum__Alternatives ) )
             {
-            // InternalChartDSL.g:2712:2: ( ( rule__ToggleTypeEnum__Alternatives ) )
-            // InternalChartDSL.g:2713:3: ( rule__ToggleTypeEnum__Alternatives )
+            // InternalChartDSL.g:2737:2: ( ( rule__ToggleTypeEnum__Alternatives ) )
+            // InternalChartDSL.g:2738:3: ( rule__ToggleTypeEnum__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getToggleTypeEnumAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:2714:3: ( rule__ToggleTypeEnum__Alternatives )
-            // InternalChartDSL.g:2714:4: rule__ToggleTypeEnum__Alternatives
+            // InternalChartDSL.g:2739:3: ( rule__ToggleTypeEnum__Alternatives )
+            // InternalChartDSL.g:2739:4: rule__ToggleTypeEnum__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__ToggleTypeEnum__Alternatives();
@@ -9214,23 +9316,23 @@
 
 
     // $ANTLR start "ruleTooltipLocationEnum"
-    // InternalChartDSL.g:2723:1: ruleTooltipLocationEnum : ( ( rule__TooltipLocationEnum__Alternatives ) ) ;
+    // InternalChartDSL.g:2748:1: ruleTooltipLocationEnum : ( ( rule__TooltipLocationEnum__Alternatives ) ) ;
     public final void ruleTooltipLocationEnum() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2727:1: ( ( ( rule__TooltipLocationEnum__Alternatives ) ) )
-            // InternalChartDSL.g:2728:2: ( ( rule__TooltipLocationEnum__Alternatives ) )
+            // InternalChartDSL.g:2752:1: ( ( ( rule__TooltipLocationEnum__Alternatives ) ) )
+            // InternalChartDSL.g:2753:2: ( ( rule__TooltipLocationEnum__Alternatives ) )
             {
-            // InternalChartDSL.g:2728:2: ( ( rule__TooltipLocationEnum__Alternatives ) )
-            // InternalChartDSL.g:2729:3: ( rule__TooltipLocationEnum__Alternatives )
+            // InternalChartDSL.g:2753:2: ( ( rule__TooltipLocationEnum__Alternatives ) )
+            // InternalChartDSL.g:2754:3: ( rule__TooltipLocationEnum__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTooltipLocationEnumAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:2730:3: ( rule__TooltipLocationEnum__Alternatives )
-            // InternalChartDSL.g:2730:4: rule__TooltipLocationEnum__Alternatives
+            // InternalChartDSL.g:2755:3: ( rule__TooltipLocationEnum__Alternatives )
+            // InternalChartDSL.g:2755:4: rule__TooltipLocationEnum__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__TooltipLocationEnum__Alternatives();
@@ -9265,23 +9367,23 @@
 
 
     // $ANTLR start "ruleRenderTypeEnum"
-    // InternalChartDSL.g:2739:1: ruleRenderTypeEnum : ( ( rule__RenderTypeEnum__Alternatives ) ) ;
+    // InternalChartDSL.g:2764:1: ruleRenderTypeEnum : ( ( rule__RenderTypeEnum__Alternatives ) ) ;
     public final void ruleRenderTypeEnum() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2743:1: ( ( ( rule__RenderTypeEnum__Alternatives ) ) )
-            // InternalChartDSL.g:2744:2: ( ( rule__RenderTypeEnum__Alternatives ) )
+            // InternalChartDSL.g:2768:1: ( ( ( rule__RenderTypeEnum__Alternatives ) ) )
+            // InternalChartDSL.g:2769:2: ( ( rule__RenderTypeEnum__Alternatives ) )
             {
-            // InternalChartDSL.g:2744:2: ( ( rule__RenderTypeEnum__Alternatives ) )
-            // InternalChartDSL.g:2745:3: ( rule__RenderTypeEnum__Alternatives )
+            // InternalChartDSL.g:2769:2: ( ( rule__RenderTypeEnum__Alternatives ) )
+            // InternalChartDSL.g:2770:3: ( rule__RenderTypeEnum__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRenderTypeEnumAccess().getAlternatives()); 
             }
-            // InternalChartDSL.g:2746:3: ( rule__RenderTypeEnum__Alternatives )
-            // InternalChartDSL.g:2746:4: rule__RenderTypeEnum__Alternatives
+            // InternalChartDSL.g:2771:3: ( rule__RenderTypeEnum__Alternatives )
+            // InternalChartDSL.g:2771:4: rule__RenderTypeEnum__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__RenderTypeEnum__Alternatives();
@@ -9315,47 +9417,98 @@
     // $ANTLR end "ruleRenderTypeEnum"
 
 
+    // $ANTLR start "ruleCanvasFontFamilyEnum"
+    // InternalChartDSL.g:2780:1: ruleCanvasFontFamilyEnum : ( ( rule__CanvasFontFamilyEnum__Alternatives ) ) ;
+    public final void ruleCanvasFontFamilyEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:2784:1: ( ( ( rule__CanvasFontFamilyEnum__Alternatives ) ) )
+            // InternalChartDSL.g:2785:2: ( ( rule__CanvasFontFamilyEnum__Alternatives ) )
+            {
+            // InternalChartDSL.g:2785:2: ( ( rule__CanvasFontFamilyEnum__Alternatives ) )
+            // InternalChartDSL.g:2786:3: ( rule__CanvasFontFamilyEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCanvasFontFamilyEnumAccess().getAlternatives()); 
+            }
+            // InternalChartDSL.g:2787:3: ( rule__CanvasFontFamilyEnum__Alternatives )
+            // InternalChartDSL.g:2787:4: rule__CanvasFontFamilyEnum__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__CanvasFontFamilyEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCanvasFontFamilyEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleCanvasFontFamilyEnum"
+
+
     // $ANTLR start "rule__ChartOption__Alternatives"
-    // InternalChartDSL.g:2754:1: rule__ChartOption__Alternatives : ( ( ruleChartBar ) | ( ruleChartLine ) | ( ruleChartPie ) | ( ruleChartDonut ) | ( ruleChartBubble ) | ( ruleChartGauge ) | ( ruleChartTree ) );
+    // InternalChartDSL.g:2795:1: rule__ChartOption__Alternatives : ( ( ruleChartBar ) | ( ruleChartLine ) | ( ruleChartPie ) | ( ruleChartDonut ) | ( ruleChartBubble ) | ( ruleChartGauge ) | ( ruleChartTree ) );
     public final void rule__ChartOption__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2758:1: ( ( ruleChartBar ) | ( ruleChartLine ) | ( ruleChartPie ) | ( ruleChartDonut ) | ( ruleChartBubble ) | ( ruleChartGauge ) | ( ruleChartTree ) )
+            // InternalChartDSL.g:2799:1: ( ( ruleChartBar ) | ( ruleChartLine ) | ( ruleChartPie ) | ( ruleChartDonut ) | ( ruleChartBubble ) | ( ruleChartGauge ) | ( ruleChartTree ) )
             int alt4=7;
             switch ( input.LA(1) ) {
-            case 78:
+            case 86:
                 {
                 alt4=1;
                 }
                 break;
-            case 79:
+            case 87:
                 {
                 alt4=2;
                 }
                 break;
-            case 80:
+            case 88:
                 {
                 alt4=3;
                 }
                 break;
-            case 81:
+            case 89:
                 {
                 alt4=4;
                 }
                 break;
-            case 82:
+            case 90:
                 {
                 alt4=5;
                 }
                 break;
-            case 83:
+            case 91:
                 {
                 alt4=6;
                 }
                 break;
-            case 86:
+            case 94:
                 {
                 alt4=7;
                 }
@@ -9370,10 +9523,10 @@
 
             switch (alt4) {
                 case 1 :
-                    // InternalChartDSL.g:2759:2: ( ruleChartBar )
+                    // InternalChartDSL.g:2800:2: ( ruleChartBar )
                     {
-                    // InternalChartDSL.g:2759:2: ( ruleChartBar )
-                    // InternalChartDSL.g:2760:3: ruleChartBar
+                    // InternalChartDSL.g:2800:2: ( ruleChartBar )
+                    // InternalChartDSL.g:2801:3: ruleChartBar
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartOptionAccess().getChartBarParserRuleCall_0()); 
@@ -9393,10 +9546,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2765:2: ( ruleChartLine )
+                    // InternalChartDSL.g:2806:2: ( ruleChartLine )
                     {
-                    // InternalChartDSL.g:2765:2: ( ruleChartLine )
-                    // InternalChartDSL.g:2766:3: ruleChartLine
+                    // InternalChartDSL.g:2806:2: ( ruleChartLine )
+                    // InternalChartDSL.g:2807:3: ruleChartLine
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartOptionAccess().getChartLineParserRuleCall_1()); 
@@ -9416,10 +9569,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:2771:2: ( ruleChartPie )
+                    // InternalChartDSL.g:2812:2: ( ruleChartPie )
                     {
-                    // InternalChartDSL.g:2771:2: ( ruleChartPie )
-                    // InternalChartDSL.g:2772:3: ruleChartPie
+                    // InternalChartDSL.g:2812:2: ( ruleChartPie )
+                    // InternalChartDSL.g:2813:3: ruleChartPie
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartOptionAccess().getChartPieParserRuleCall_2()); 
@@ -9439,10 +9592,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:2777:2: ( ruleChartDonut )
+                    // InternalChartDSL.g:2818:2: ( ruleChartDonut )
                     {
-                    // InternalChartDSL.g:2777:2: ( ruleChartDonut )
-                    // InternalChartDSL.g:2778:3: ruleChartDonut
+                    // InternalChartDSL.g:2818:2: ( ruleChartDonut )
+                    // InternalChartDSL.g:2819:3: ruleChartDonut
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartOptionAccess().getChartDonutParserRuleCall_3()); 
@@ -9462,10 +9615,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:2783:2: ( ruleChartBubble )
+                    // InternalChartDSL.g:2824:2: ( ruleChartBubble )
                     {
-                    // InternalChartDSL.g:2783:2: ( ruleChartBubble )
-                    // InternalChartDSL.g:2784:3: ruleChartBubble
+                    // InternalChartDSL.g:2824:2: ( ruleChartBubble )
+                    // InternalChartDSL.g:2825:3: ruleChartBubble
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartOptionAccess().getChartBubbleParserRuleCall_4()); 
@@ -9485,10 +9638,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:2789:2: ( ruleChartGauge )
+                    // InternalChartDSL.g:2830:2: ( ruleChartGauge )
                     {
-                    // InternalChartDSL.g:2789:2: ( ruleChartGauge )
-                    // InternalChartDSL.g:2790:3: ruleChartGauge
+                    // InternalChartDSL.g:2830:2: ( ruleChartGauge )
+                    // InternalChartDSL.g:2831:3: ruleChartGauge
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartOptionAccess().getChartGaugeParserRuleCall_5()); 
@@ -9508,10 +9661,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalChartDSL.g:2795:2: ( ruleChartTree )
+                    // InternalChartDSL.g:2836:2: ( ruleChartTree )
                     {
-                    // InternalChartDSL.g:2795:2: ( ruleChartTree )
-                    // InternalChartDSL.g:2796:3: ruleChartTree
+                    // InternalChartDSL.g:2836:2: ( ruleChartTree )
+                    // InternalChartDSL.g:2837:3: ruleChartTree
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartOptionAccess().getChartTreeParserRuleCall_6()); 
@@ -9548,20 +9701,20 @@
 
 
     // $ANTLR start "rule__ChartBubble__Alternatives_2_1"
-    // InternalChartDSL.g:2805:1: rule__ChartBubble__Alternatives_2_1 : ( ( ( rule__ChartBubble__GradientAssignment_2_1_0 ) ) | ( ( rule__ChartBubble__TransparentAssignment_2_1_1 ) ) );
+    // InternalChartDSL.g:2846:1: rule__ChartBubble__Alternatives_2_1 : ( ( ( rule__ChartBubble__GradientAssignment_2_1_0 ) ) | ( ( rule__ChartBubble__TransparentAssignment_2_1_1 ) ) );
     public final void rule__ChartBubble__Alternatives_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2809:1: ( ( ( rule__ChartBubble__GradientAssignment_2_1_0 ) ) | ( ( rule__ChartBubble__TransparentAssignment_2_1_1 ) ) )
+            // InternalChartDSL.g:2850:1: ( ( ( rule__ChartBubble__GradientAssignment_2_1_0 ) ) | ( ( rule__ChartBubble__TransparentAssignment_2_1_1 ) ) )
             int alt5=2;
             int LA5_0 = input.LA(1);
 
-            if ( (LA5_0==138) ) {
+            if ( (LA5_0==154) ) {
                 alt5=1;
             }
-            else if ( (LA5_0==139) ) {
+            else if ( (LA5_0==155) ) {
                 alt5=2;
             }
             else {
@@ -9573,16 +9726,16 @@
             }
             switch (alt5) {
                 case 1 :
-                    // InternalChartDSL.g:2810:2: ( ( rule__ChartBubble__GradientAssignment_2_1_0 ) )
+                    // InternalChartDSL.g:2851:2: ( ( rule__ChartBubble__GradientAssignment_2_1_0 ) )
                     {
-                    // InternalChartDSL.g:2810:2: ( ( rule__ChartBubble__GradientAssignment_2_1_0 ) )
-                    // InternalChartDSL.g:2811:3: ( rule__ChartBubble__GradientAssignment_2_1_0 )
+                    // InternalChartDSL.g:2851:2: ( ( rule__ChartBubble__GradientAssignment_2_1_0 ) )
+                    // InternalChartDSL.g:2852:3: ( rule__ChartBubble__GradientAssignment_2_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartBubbleAccess().getGradientAssignment_2_1_0()); 
                     }
-                    // InternalChartDSL.g:2812:3: ( rule__ChartBubble__GradientAssignment_2_1_0 )
-                    // InternalChartDSL.g:2812:4: rule__ChartBubble__GradientAssignment_2_1_0
+                    // InternalChartDSL.g:2853:3: ( rule__ChartBubble__GradientAssignment_2_1_0 )
+                    // InternalChartDSL.g:2853:4: rule__ChartBubble__GradientAssignment_2_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartBubble__GradientAssignment_2_1_0();
@@ -9602,16 +9755,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2816:2: ( ( rule__ChartBubble__TransparentAssignment_2_1_1 ) )
+                    // InternalChartDSL.g:2857:2: ( ( rule__ChartBubble__TransparentAssignment_2_1_1 ) )
                     {
-                    // InternalChartDSL.g:2816:2: ( ( rule__ChartBubble__TransparentAssignment_2_1_1 ) )
-                    // InternalChartDSL.g:2817:3: ( rule__ChartBubble__TransparentAssignment_2_1_1 )
+                    // InternalChartDSL.g:2857:2: ( ( rule__ChartBubble__TransparentAssignment_2_1_1 ) )
+                    // InternalChartDSL.g:2858:3: ( rule__ChartBubble__TransparentAssignment_2_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartBubbleAccess().getTransparentAssignment_2_1_1()); 
                     }
-                    // InternalChartDSL.g:2818:3: ( rule__ChartBubble__TransparentAssignment_2_1_1 )
-                    // InternalChartDSL.g:2818:4: rule__ChartBubble__TransparentAssignment_2_1_1
+                    // InternalChartDSL.g:2859:3: ( rule__ChartBubble__TransparentAssignment_2_1_1 )
+                    // InternalChartDSL.g:2859:4: rule__ChartBubble__TransparentAssignment_2_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartBubble__TransparentAssignment_2_1_1();
@@ -9648,20 +9801,20 @@
 
 
     // $ANTLR start "rule__ChartTree__Alternatives_2"
-    // InternalChartDSL.g:2826:1: rule__ChartTree__Alternatives_2 : ( ( ( rule__ChartTree__MapAssignment_2_0 ) ) | ( ( rule__ChartTree__CollapsibleAssignment_2_1 ) ) );
+    // InternalChartDSL.g:2867:1: rule__ChartTree__Alternatives_2 : ( ( ( rule__ChartTree__MapAssignment_2_0 ) ) | ( ( rule__ChartTree__CollapsibleAssignment_2_1 ) ) );
     public final void rule__ChartTree__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2830:1: ( ( ( rule__ChartTree__MapAssignment_2_0 ) ) | ( ( rule__ChartTree__CollapsibleAssignment_2_1 ) ) )
+            // InternalChartDSL.g:2871:1: ( ( ( rule__ChartTree__MapAssignment_2_0 ) ) | ( ( rule__ChartTree__CollapsibleAssignment_2_1 ) ) )
             int alt6=2;
             int LA6_0 = input.LA(1);
 
-            if ( (LA6_0==143) ) {
+            if ( (LA6_0==159) ) {
                 alt6=1;
             }
-            else if ( (LA6_0==144) ) {
+            else if ( (LA6_0==160) ) {
                 alt6=2;
             }
             else {
@@ -9673,16 +9826,16 @@
             }
             switch (alt6) {
                 case 1 :
-                    // InternalChartDSL.g:2831:2: ( ( rule__ChartTree__MapAssignment_2_0 ) )
+                    // InternalChartDSL.g:2872:2: ( ( rule__ChartTree__MapAssignment_2_0 ) )
                     {
-                    // InternalChartDSL.g:2831:2: ( ( rule__ChartTree__MapAssignment_2_0 ) )
-                    // InternalChartDSL.g:2832:3: ( rule__ChartTree__MapAssignment_2_0 )
+                    // InternalChartDSL.g:2872:2: ( ( rule__ChartTree__MapAssignment_2_0 ) )
+                    // InternalChartDSL.g:2873:3: ( rule__ChartTree__MapAssignment_2_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartTreeAccess().getMapAssignment_2_0()); 
                     }
-                    // InternalChartDSL.g:2833:3: ( rule__ChartTree__MapAssignment_2_0 )
-                    // InternalChartDSL.g:2833:4: rule__ChartTree__MapAssignment_2_0
+                    // InternalChartDSL.g:2874:3: ( rule__ChartTree__MapAssignment_2_0 )
+                    // InternalChartDSL.g:2874:4: rule__ChartTree__MapAssignment_2_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartTree__MapAssignment_2_0();
@@ -9702,16 +9855,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2837:2: ( ( rule__ChartTree__CollapsibleAssignment_2_1 ) )
+                    // InternalChartDSL.g:2878:2: ( ( rule__ChartTree__CollapsibleAssignment_2_1 ) )
                     {
-                    // InternalChartDSL.g:2837:2: ( ( rule__ChartTree__CollapsibleAssignment_2_1 ) )
-                    // InternalChartDSL.g:2838:3: ( rule__ChartTree__CollapsibleAssignment_2_1 )
+                    // InternalChartDSL.g:2878:2: ( ( rule__ChartTree__CollapsibleAssignment_2_1 ) )
+                    // InternalChartDSL.g:2879:3: ( rule__ChartTree__CollapsibleAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartTreeAccess().getCollapsibleAssignment_2_1()); 
                     }
-                    // InternalChartDSL.g:2839:3: ( rule__ChartTree__CollapsibleAssignment_2_1 )
-                    // InternalChartDSL.g:2839:4: rule__ChartTree__CollapsibleAssignment_2_1
+                    // InternalChartDSL.g:2880:3: ( rule__ChartTree__CollapsibleAssignment_2_1 )
+                    // InternalChartDSL.g:2880:4: rule__ChartTree__CollapsibleAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartTree__CollapsibleAssignment_2_1();
@@ -9748,26 +9901,26 @@
 
 
     // $ANTLR start "rule__ChartElement__Alternatives"
-    // InternalChartDSL.g:2847:1: rule__ChartElement__Alternatives : ( ( ruleChartAxis ) | ( ruleChartLegend ) | ( ruleChartHighlighter ) );
+    // InternalChartDSL.g:2888:1: rule__ChartElement__Alternatives : ( ( ruleChartAxis ) | ( ruleChartLegend ) | ( ruleChartHighlighter ) );
     public final void rule__ChartElement__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2851:1: ( ( ruleChartAxis ) | ( ruleChartLegend ) | ( ruleChartHighlighter ) )
+            // InternalChartDSL.g:2892:1: ( ( ruleChartAxis ) | ( ruleChartLegend ) | ( ruleChartHighlighter ) )
             int alt7=3;
             switch ( input.LA(1) ) {
-            case 91:
+            case 101:
                 {
                 alt7=1;
                 }
                 break;
-            case 89:
+            case 97:
                 {
                 alt7=2;
                 }
                 break;
-            case 90:
+            case 100:
                 {
                 alt7=3;
                 }
@@ -9782,10 +9935,10 @@
 
             switch (alt7) {
                 case 1 :
-                    // InternalChartDSL.g:2852:2: ( ruleChartAxis )
+                    // InternalChartDSL.g:2893:2: ( ruleChartAxis )
                     {
-                    // InternalChartDSL.g:2852:2: ( ruleChartAxis )
-                    // InternalChartDSL.g:2853:3: ruleChartAxis
+                    // InternalChartDSL.g:2893:2: ( ruleChartAxis )
+                    // InternalChartDSL.g:2894:3: ruleChartAxis
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartElementAccess().getChartAxisParserRuleCall_0()); 
@@ -9805,10 +9958,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2858:2: ( ruleChartLegend )
+                    // InternalChartDSL.g:2899:2: ( ruleChartLegend )
                     {
-                    // InternalChartDSL.g:2858:2: ( ruleChartLegend )
-                    // InternalChartDSL.g:2859:3: ruleChartLegend
+                    // InternalChartDSL.g:2899:2: ( ruleChartLegend )
+                    // InternalChartDSL.g:2900:3: ruleChartLegend
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartElementAccess().getChartLegendParserRuleCall_1()); 
@@ -9828,10 +9981,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:2864:2: ( ruleChartHighlighter )
+                    // InternalChartDSL.g:2905:2: ( ruleChartHighlighter )
                     {
-                    // InternalChartDSL.g:2864:2: ( ruleChartHighlighter )
-                    // InternalChartDSL.g:2865:3: ruleChartHighlighter
+                    // InternalChartDSL.g:2905:2: ( ruleChartHighlighter )
+                    // InternalChartDSL.g:2906:3: ruleChartHighlighter
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartElementAccess().getChartHighlighterParserRuleCall_2()); 
@@ -9868,27 +10021,27 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2"
-    // InternalChartDSL.g:2874:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );
+    // InternalChartDSL.g:2915:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );
     public final void rule__XImportDeclaration__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2878:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
+            // InternalChartDSL.g:2919:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
             int alt8=4;
             alt8 = dfa8.predict(input);
             switch (alt8) {
                 case 1 :
-                    // InternalChartDSL.g:2879:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalChartDSL.g:2920:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalChartDSL.g:2879:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
-                    // InternalChartDSL.g:2880:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalChartDSL.g:2920:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalChartDSL.g:2921:3: ( rule__XImportDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalChartDSL.g:2881:3: ( rule__XImportDeclaration__Group_2_0__0 )
-                    // InternalChartDSL.g:2881:4: rule__XImportDeclaration__Group_2_0__0
+                    // InternalChartDSL.g:2922:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalChartDSL.g:2922:4: rule__XImportDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_0__0();
@@ -9908,16 +10061,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2885:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalChartDSL.g:2926:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
                     {
-                    // InternalChartDSL.g:2885:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
-                    // InternalChartDSL.g:2886:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalChartDSL.g:2926:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalChartDSL.g:2927:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_1()); 
                     }
-                    // InternalChartDSL.g:2887:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
-                    // InternalChartDSL.g:2887:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
+                    // InternalChartDSL.g:2928:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalChartDSL.g:2928:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedTypeAssignment_2_1();
@@ -9937,16 +10090,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:2891:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalChartDSL.g:2932:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
                     {
-                    // InternalChartDSL.g:2891:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
-                    // InternalChartDSL.g:2892:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalChartDSL.g:2932:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalChartDSL.g:2933:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_2_2()); 
                     }
-                    // InternalChartDSL.g:2893:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
-                    // InternalChartDSL.g:2893:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
+                    // InternalChartDSL.g:2934:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalChartDSL.g:2934:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedNamespaceAssignment_2_2();
@@ -9966,16 +10119,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:2897:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalChartDSL.g:2938:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
                     {
-                    // InternalChartDSL.g:2897:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
-                    // InternalChartDSL.g:2898:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalChartDSL.g:2938:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalChartDSL.g:2939:3: ( rule__XImportDeclaration__Group_2_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_3()); 
                     }
-                    // InternalChartDSL.g:2899:3: ( rule__XImportDeclaration__Group_2_3__0 )
-                    // InternalChartDSL.g:2899:4: rule__XImportDeclaration__Group_2_3__0
+                    // InternalChartDSL.g:2940:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalChartDSL.g:2940:4: rule__XImportDeclaration__Group_2_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_3__0();
@@ -10012,13 +10165,13 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2_0_3"
-    // InternalChartDSL.g:2907:1: rule__XImportDeclaration__Alternatives_2_0_3 : ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) );
+    // InternalChartDSL.g:2948:1: rule__XImportDeclaration__Alternatives_2_0_3 : ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) );
     public final void rule__XImportDeclaration__Alternatives_2_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2911:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
+            // InternalChartDSL.g:2952:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -10037,16 +10190,16 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalChartDSL.g:2912:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalChartDSL.g:2953:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
                     {
-                    // InternalChartDSL.g:2912:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
-                    // InternalChartDSL.g:2913:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalChartDSL.g:2953:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalChartDSL.g:2954:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_2_0_3_0()); 
                     }
-                    // InternalChartDSL.g:2914:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
-                    // InternalChartDSL.g:2914:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
+                    // InternalChartDSL.g:2955:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalChartDSL.g:2955:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__WildcardAssignment_2_0_3_0();
@@ -10066,16 +10219,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2918:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalChartDSL.g:2959:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
                     {
-                    // InternalChartDSL.g:2918:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
-                    // InternalChartDSL.g:2919:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalChartDSL.g:2959:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalChartDSL.g:2960:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_2_0_3_1()); 
                     }
-                    // InternalChartDSL.g:2920:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
-                    // InternalChartDSL.g:2920:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
+                    // InternalChartDSL.g:2961:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalChartDSL.g:2961:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__MemberNameAssignment_2_0_3_1();
@@ -10112,27 +10265,27 @@
 
 
     // $ANTLR start "rule__XAnnotation__Alternatives_3_1"
-    // InternalChartDSL.g:2928:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
+    // InternalChartDSL.g:2969:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
     public final void rule__XAnnotation__Alternatives_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2932:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
+            // InternalChartDSL.g:2973:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
             int alt10=2;
             alt10 = dfa10.predict(input);
             switch (alt10) {
                 case 1 :
-                    // InternalChartDSL.g:2933:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalChartDSL.g:2974:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
                     {
-                    // InternalChartDSL.g:2933:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-                    // InternalChartDSL.g:2934:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalChartDSL.g:2974:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalChartDSL.g:2975:3: ( rule__XAnnotation__Group_3_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
                     }
-                    // InternalChartDSL.g:2935:3: ( rule__XAnnotation__Group_3_1_0__0 )
-                    // InternalChartDSL.g:2935:4: rule__XAnnotation__Group_3_1_0__0
+                    // InternalChartDSL.g:2976:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalChartDSL.g:2976:4: rule__XAnnotation__Group_3_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3_1_0__0();
@@ -10152,16 +10305,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2939:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalChartDSL.g:2980:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
                     {
-                    // InternalChartDSL.g:2939:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
-                    // InternalChartDSL.g:2940:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalChartDSL.g:2980:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalChartDSL.g:2981:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
                     }
-                    // InternalChartDSL.g:2941:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
-                    // InternalChartDSL.g:2941:4: rule__XAnnotation__ValueAssignment_3_1_1
+                    // InternalChartDSL.g:2982:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalChartDSL.g:2982:4: rule__XAnnotation__ValueAssignment_3_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__ValueAssignment_3_1_1();
@@ -10198,27 +10351,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Alternatives"
-    // InternalChartDSL.g:2949:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
+    // InternalChartDSL.g:2990:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
     public final void rule__XAnnotationElementValueOrCommaList__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2953:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
+            // InternalChartDSL.g:2994:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
             int alt11=2;
             alt11 = dfa11.predict(input);
             switch (alt11) {
                 case 1 :
-                    // InternalChartDSL.g:2954:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalChartDSL.g:2995:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
                     {
-                    // InternalChartDSL.g:2954:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-                    // InternalChartDSL.g:2955:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalChartDSL.g:2995:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalChartDSL.g:2996:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
                     }
-                    // InternalChartDSL.g:2956:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-                    // InternalChartDSL.g:2956:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+                    // InternalChartDSL.g:2997:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalChartDSL.g:2997:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0__0();
@@ -10238,16 +10391,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2960:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalChartDSL.g:3001:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
                     {
-                    // InternalChartDSL.g:2960:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
-                    // InternalChartDSL.g:2961:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalChartDSL.g:3001:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalChartDSL.g:3002:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
                     }
-                    // InternalChartDSL.g:2962:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
-                    // InternalChartDSL.g:2962:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
+                    // InternalChartDSL.g:3003:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalChartDSL.g:3003:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1__0();
@@ -10284,27 +10437,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Alternatives"
-    // InternalChartDSL.g:2970:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
+    // InternalChartDSL.g:3011:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
     public final void rule__XAnnotationElementValue__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2974:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
+            // InternalChartDSL.g:3015:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
             int alt12=2;
             alt12 = dfa12.predict(input);
             switch (alt12) {
                 case 1 :
-                    // InternalChartDSL.g:2975:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalChartDSL.g:3016:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
                     {
-                    // InternalChartDSL.g:2975:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-                    // InternalChartDSL.g:2976:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalChartDSL.g:3016:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalChartDSL.g:3017:3: ( rule__XAnnotationElementValue__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
                     }
-                    // InternalChartDSL.g:2977:3: ( rule__XAnnotationElementValue__Group_0__0 )
-                    // InternalChartDSL.g:2977:4: rule__XAnnotationElementValue__Group_0__0
+                    // InternalChartDSL.g:3018:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalChartDSL.g:3018:4: rule__XAnnotationElementValue__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0__0();
@@ -10324,10 +10477,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2981:2: ( ruleXAnnotationOrExpression )
+                    // InternalChartDSL.g:3022:2: ( ruleXAnnotationOrExpression )
                     {
-                    // InternalChartDSL.g:2981:2: ( ruleXAnnotationOrExpression )
-                    // InternalChartDSL.g:2982:3: ruleXAnnotationOrExpression
+                    // InternalChartDSL.g:3022:2: ( ruleXAnnotationOrExpression )
+                    // InternalChartDSL.g:3023:3: ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
@@ -10364,20 +10517,20 @@
 
 
     // $ANTLR start "rule__XAnnotationOrExpression__Alternatives"
-    // InternalChartDSL.g:2991:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
+    // InternalChartDSL.g:3032:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
     public final void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:2995:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
+            // InternalChartDSL.g:3036:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
             int alt13=2;
             int LA13_0 = input.LA(1);
 
-            if ( (LA13_0==96) ) {
+            if ( (LA13_0==111) ) {
                 alt13=1;
             }
-            else if ( ((LA13_0>=RULE_STRING && LA13_0<=RULE_DECIMAL)||LA13_0==27||(LA13_0>=34 && LA13_0<=35)||LA13_0==40||(LA13_0>=45 && LA13_0<=50)||LA13_0==72||LA13_0==97||(LA13_0>=101 && LA13_0<=102)||LA13_0==104||LA13_0==106||(LA13_0>=110 && LA13_0<=118)||LA13_0==120||LA13_0==154) ) {
+            else if ( ((LA13_0>=RULE_STRING && LA13_0<=RULE_DECIMAL)||LA13_0==27||(LA13_0>=34 && LA13_0<=35)||LA13_0==40||(LA13_0>=45 && LA13_0<=50)||LA13_0==79||LA13_0==112||(LA13_0>=116 && LA13_0<=117)||LA13_0==119||LA13_0==121||(LA13_0>=125 && LA13_0<=133)||LA13_0==135||LA13_0==171) ) {
                 alt13=2;
             }
             else {
@@ -10389,10 +10542,10 @@
             }
             switch (alt13) {
                 case 1 :
-                    // InternalChartDSL.g:2996:2: ( ruleXAnnotation )
+                    // InternalChartDSL.g:3037:2: ( ruleXAnnotation )
                     {
-                    // InternalChartDSL.g:2996:2: ( ruleXAnnotation )
-                    // InternalChartDSL.g:2997:3: ruleXAnnotation
+                    // InternalChartDSL.g:3037:2: ( ruleXAnnotation )
+                    // InternalChartDSL.g:3038:3: ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
@@ -10412,10 +10565,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3002:2: ( ruleXExpression )
+                    // InternalChartDSL.g:3043:2: ( ruleXExpression )
                     {
-                    // InternalChartDSL.g:3002:2: ( ruleXExpression )
-                    // InternalChartDSL.g:3003:3: ruleXExpression
+                    // InternalChartDSL.g:3043:2: ( ruleXExpression )
+                    // InternalChartDSL.g:3044:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -10452,25 +10605,25 @@
 
 
     // $ANTLR start "rule__XAssignment__Alternatives"
-    // InternalChartDSL.g:3012:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
+    // InternalChartDSL.g:3053:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
     public final void rule__XAssignment__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3016:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
+            // InternalChartDSL.g:3057:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
             int alt14=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
                 int LA14_1 = input.LA(2);
 
-                if ( (LA14_1==EOF||(LA14_1>=RULE_STRING && LA14_1<=RULE_DECIMAL)||(LA14_1>=14 && LA14_1<=50)||(LA14_1>=72 && LA14_1<=73)||LA14_1==75||LA14_1==95||(LA14_1>=97 && LA14_1<=121)||(LA14_1>=150 && LA14_1<=151)||(LA14_1>=153 && LA14_1<=154)) ) {
-                    alt14=2;
-                }
-                else if ( (LA14_1==13) ) {
+                if ( (LA14_1==13) ) {
                     alt14=1;
                 }
+                else if ( (LA14_1==EOF||(LA14_1>=RULE_STRING && LA14_1<=RULE_DECIMAL)||(LA14_1>=14 && LA14_1<=50)||(LA14_1>=79 && LA14_1<=80)||LA14_1==83||LA14_1==110||(LA14_1>=112 && LA14_1<=136)||(LA14_1>=167 && LA14_1<=168)||(LA14_1>=170 && LA14_1<=171)) ) {
+                    alt14=2;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -10484,7 +10637,7 @@
                 {
                 int LA14_2 = input.LA(2);
 
-                if ( (LA14_2==EOF||(LA14_2>=RULE_STRING && LA14_2<=RULE_DECIMAL)||(LA14_2>=14 && LA14_2<=50)||(LA14_2>=72 && LA14_2<=73)||LA14_2==75||LA14_2==95||(LA14_2>=97 && LA14_2<=121)||(LA14_2>=150 && LA14_2<=151)||(LA14_2>=153 && LA14_2<=154)) ) {
+                if ( (LA14_2==EOF||(LA14_2>=RULE_STRING && LA14_2<=RULE_DECIMAL)||(LA14_2>=14 && LA14_2<=50)||(LA14_2>=79 && LA14_2<=80)||LA14_2==83||LA14_2==110||(LA14_2>=112 && LA14_2<=136)||(LA14_2>=167 && LA14_2<=168)||(LA14_2>=170 && LA14_2<=171)) ) {
                     alt14=2;
                 }
                 else if ( (LA14_2==13) ) {
@@ -10503,12 +10656,12 @@
                 {
                 int LA14_3 = input.LA(2);
 
-                if ( (LA14_3==13) ) {
-                    alt14=1;
-                }
-                else if ( (LA14_3==EOF||(LA14_3>=RULE_STRING && LA14_3<=RULE_DECIMAL)||(LA14_3>=14 && LA14_3<=50)||(LA14_3>=72 && LA14_3<=73)||LA14_3==75||LA14_3==95||(LA14_3>=97 && LA14_3<=121)||(LA14_3>=150 && LA14_3<=151)||(LA14_3>=153 && LA14_3<=154)) ) {
+                if ( (LA14_3==EOF||(LA14_3>=RULE_STRING && LA14_3<=RULE_DECIMAL)||(LA14_3>=14 && LA14_3<=50)||(LA14_3>=79 && LA14_3<=80)||LA14_3==83||LA14_3==110||(LA14_3>=112 && LA14_3<=136)||(LA14_3>=167 && LA14_3<=168)||(LA14_3>=170 && LA14_3<=171)) ) {
                     alt14=2;
                 }
+                else if ( (LA14_3==13) ) {
+                    alt14=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -10522,7 +10675,7 @@
                 {
                 int LA14_4 = input.LA(2);
 
-                if ( (LA14_4==EOF||(LA14_4>=RULE_STRING && LA14_4<=RULE_DECIMAL)||(LA14_4>=14 && LA14_4<=50)||(LA14_4>=72 && LA14_4<=73)||LA14_4==75||LA14_4==95||(LA14_4>=97 && LA14_4<=121)||(LA14_4>=150 && LA14_4<=151)||(LA14_4>=153 && LA14_4<=154)) ) {
+                if ( (LA14_4==EOF||(LA14_4>=RULE_STRING && LA14_4<=RULE_DECIMAL)||(LA14_4>=14 && LA14_4<=50)||(LA14_4>=79 && LA14_4<=80)||LA14_4==83||LA14_4==110||(LA14_4>=112 && LA14_4<=136)||(LA14_4>=167 && LA14_4<=168)||(LA14_4>=170 && LA14_4<=171)) ) {
                     alt14=2;
                 }
                 else if ( (LA14_4==13) ) {
@@ -10541,12 +10694,12 @@
                 {
                 int LA14_5 = input.LA(2);
 
-                if ( (LA14_5==13) ) {
-                    alt14=1;
-                }
-                else if ( (LA14_5==EOF||(LA14_5>=RULE_STRING && LA14_5<=RULE_DECIMAL)||(LA14_5>=14 && LA14_5<=50)||(LA14_5>=72 && LA14_5<=73)||LA14_5==75||LA14_5==95||(LA14_5>=97 && LA14_5<=121)||(LA14_5>=150 && LA14_5<=151)||(LA14_5>=153 && LA14_5<=154)) ) {
+                if ( (LA14_5==EOF||(LA14_5>=RULE_STRING && LA14_5<=RULE_DECIMAL)||(LA14_5>=14 && LA14_5<=50)||(LA14_5>=79 && LA14_5<=80)||LA14_5==83||LA14_5==110||(LA14_5>=112 && LA14_5<=136)||(LA14_5>=167 && LA14_5<=168)||(LA14_5>=170 && LA14_5<=171)) ) {
                     alt14=2;
                 }
+                else if ( (LA14_5==13) ) {
+                    alt14=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -10566,23 +10719,23 @@
             case 40:
             case 49:
             case 50:
-            case 72:
-            case 97:
-            case 101:
-            case 102:
-            case 104:
-            case 106:
-            case 110:
-            case 111:
+            case 79:
             case 112:
-            case 113:
-            case 114:
-            case 115:
             case 116:
             case 117:
-            case 118:
-            case 120:
-            case 154:
+            case 119:
+            case 121:
+            case 125:
+            case 126:
+            case 127:
+            case 128:
+            case 129:
+            case 130:
+            case 131:
+            case 132:
+            case 133:
+            case 135:
+            case 171:
                 {
                 alt14=2;
                 }
@@ -10597,16 +10750,16 @@
 
             switch (alt14) {
                 case 1 :
-                    // InternalChartDSL.g:3017:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalChartDSL.g:3058:2: ( ( rule__XAssignment__Group_0__0 ) )
                     {
-                    // InternalChartDSL.g:3017:2: ( ( rule__XAssignment__Group_0__0 ) )
-                    // InternalChartDSL.g:3018:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalChartDSL.g:3058:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalChartDSL.g:3059:3: ( rule__XAssignment__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
                     }
-                    // InternalChartDSL.g:3019:3: ( rule__XAssignment__Group_0__0 )
-                    // InternalChartDSL.g:3019:4: rule__XAssignment__Group_0__0
+                    // InternalChartDSL.g:3060:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalChartDSL.g:3060:4: rule__XAssignment__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_0__0();
@@ -10626,16 +10779,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3023:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalChartDSL.g:3064:2: ( ( rule__XAssignment__Group_1__0 ) )
                     {
-                    // InternalChartDSL.g:3023:2: ( ( rule__XAssignment__Group_1__0 ) )
-                    // InternalChartDSL.g:3024:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalChartDSL.g:3064:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalChartDSL.g:3065:3: ( rule__XAssignment__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
                     }
-                    // InternalChartDSL.g:3025:3: ( rule__XAssignment__Group_1__0 )
-                    // InternalChartDSL.g:3025:4: rule__XAssignment__Group_1__0
+                    // InternalChartDSL.g:3066:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalChartDSL.g:3066:4: rule__XAssignment__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1__0();
@@ -10672,13 +10825,13 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Alternatives"
-    // InternalChartDSL.g:3033:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
+    // InternalChartDSL.g:3074:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
     public final void rule__OpMultiAssign__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3037:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
+            // InternalChartDSL.g:3078:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
             int alt15=7;
             switch ( input.LA(1) ) {
             case 16:
@@ -10726,10 +10879,10 @@
 
             switch (alt15) {
                 case 1 :
-                    // InternalChartDSL.g:3038:2: ( '+=' )
+                    // InternalChartDSL.g:3079:2: ( '+=' )
                     {
-                    // InternalChartDSL.g:3038:2: ( '+=' )
-                    // InternalChartDSL.g:3039:3: '+='
+                    // InternalChartDSL.g:3079:2: ( '+=' )
+                    // InternalChartDSL.g:3080:3: '+='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
@@ -10745,10 +10898,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3044:2: ( '-=' )
+                    // InternalChartDSL.g:3085:2: ( '-=' )
                     {
-                    // InternalChartDSL.g:3044:2: ( '-=' )
-                    // InternalChartDSL.g:3045:3: '-='
+                    // InternalChartDSL.g:3085:2: ( '-=' )
+                    // InternalChartDSL.g:3086:3: '-='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
@@ -10764,10 +10917,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3050:2: ( '*=' )
+                    // InternalChartDSL.g:3091:2: ( '*=' )
                     {
-                    // InternalChartDSL.g:3050:2: ( '*=' )
-                    // InternalChartDSL.g:3051:3: '*='
+                    // InternalChartDSL.g:3091:2: ( '*=' )
+                    // InternalChartDSL.g:3092:3: '*='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
@@ -10783,10 +10936,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:3056:2: ( '/=' )
+                    // InternalChartDSL.g:3097:2: ( '/=' )
                     {
-                    // InternalChartDSL.g:3056:2: ( '/=' )
-                    // InternalChartDSL.g:3057:3: '/='
+                    // InternalChartDSL.g:3097:2: ( '/=' )
+                    // InternalChartDSL.g:3098:3: '/='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
@@ -10802,10 +10955,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:3062:2: ( '%=' )
+                    // InternalChartDSL.g:3103:2: ( '%=' )
                     {
-                    // InternalChartDSL.g:3062:2: ( '%=' )
-                    // InternalChartDSL.g:3063:3: '%='
+                    // InternalChartDSL.g:3103:2: ( '%=' )
+                    // InternalChartDSL.g:3104:3: '%='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
@@ -10821,16 +10974,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:3068:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalChartDSL.g:3109:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
                     {
-                    // InternalChartDSL.g:3068:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
-                    // InternalChartDSL.g:3069:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalChartDSL.g:3109:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalChartDSL.g:3110:3: ( rule__OpMultiAssign__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
                     }
-                    // InternalChartDSL.g:3070:3: ( rule__OpMultiAssign__Group_5__0 )
-                    // InternalChartDSL.g:3070:4: rule__OpMultiAssign__Group_5__0
+                    // InternalChartDSL.g:3111:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalChartDSL.g:3111:4: rule__OpMultiAssign__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_5__0();
@@ -10850,16 +11003,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalChartDSL.g:3074:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalChartDSL.g:3115:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
                     {
-                    // InternalChartDSL.g:3074:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
-                    // InternalChartDSL.g:3075:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalChartDSL.g:3115:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalChartDSL.g:3116:3: ( rule__OpMultiAssign__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
                     }
-                    // InternalChartDSL.g:3076:3: ( rule__OpMultiAssign__Group_6__0 )
-                    // InternalChartDSL.g:3076:4: rule__OpMultiAssign__Group_6__0
+                    // InternalChartDSL.g:3117:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalChartDSL.g:3117:4: rule__OpMultiAssign__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_6__0();
@@ -10896,13 +11049,13 @@
 
 
     // $ANTLR start "rule__OpEquality__Alternatives"
-    // InternalChartDSL.g:3084:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
+    // InternalChartDSL.g:3125:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
     public final void rule__OpEquality__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3088:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
+            // InternalChartDSL.g:3129:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
             int alt16=4;
             switch ( input.LA(1) ) {
             case 21:
@@ -10935,10 +11088,10 @@
 
             switch (alt16) {
                 case 1 :
-                    // InternalChartDSL.g:3089:2: ( '==' )
+                    // InternalChartDSL.g:3130:2: ( '==' )
                     {
-                    // InternalChartDSL.g:3089:2: ( '==' )
-                    // InternalChartDSL.g:3090:3: '=='
+                    // InternalChartDSL.g:3130:2: ( '==' )
+                    // InternalChartDSL.g:3131:3: '=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
@@ -10954,10 +11107,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3095:2: ( '!=' )
+                    // InternalChartDSL.g:3136:2: ( '!=' )
                     {
-                    // InternalChartDSL.g:3095:2: ( '!=' )
-                    // InternalChartDSL.g:3096:3: '!='
+                    // InternalChartDSL.g:3136:2: ( '!=' )
+                    // InternalChartDSL.g:3137:3: '!='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
@@ -10973,10 +11126,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3101:2: ( '===' )
+                    // InternalChartDSL.g:3142:2: ( '===' )
                     {
-                    // InternalChartDSL.g:3101:2: ( '===' )
-                    // InternalChartDSL.g:3102:3: '==='
+                    // InternalChartDSL.g:3142:2: ( '===' )
+                    // InternalChartDSL.g:3143:3: '==='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
@@ -10992,10 +11145,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:3107:2: ( '!==' )
+                    // InternalChartDSL.g:3148:2: ( '!==' )
                     {
-                    // InternalChartDSL.g:3107:2: ( '!==' )
-                    // InternalChartDSL.g:3108:3: '!=='
+                    // InternalChartDSL.g:3148:2: ( '!==' )
+                    // InternalChartDSL.g:3149:3: '!=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
@@ -11028,17 +11181,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Alternatives_1"
-    // InternalChartDSL.g:3117:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
+    // InternalChartDSL.g:3158:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
     public final void rule__XRelationalExpression__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3121:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
+            // InternalChartDSL.g:3162:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
             int alt17=2;
             int LA17_0 = input.LA(1);
 
-            if ( (LA17_0==103) ) {
+            if ( (LA17_0==118) ) {
                 alt17=1;
             }
             else if ( ((LA17_0>=25 && LA17_0<=27)) ) {
@@ -11053,16 +11206,16 @@
             }
             switch (alt17) {
                 case 1 :
-                    // InternalChartDSL.g:3122:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalChartDSL.g:3163:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
                     {
-                    // InternalChartDSL.g:3122:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
-                    // InternalChartDSL.g:3123:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalChartDSL.g:3163:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalChartDSL.g:3164:3: ( rule__XRelationalExpression__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); 
                     }
-                    // InternalChartDSL.g:3124:3: ( rule__XRelationalExpression__Group_1_0__0 )
-                    // InternalChartDSL.g:3124:4: rule__XRelationalExpression__Group_1_0__0
+                    // InternalChartDSL.g:3165:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalChartDSL.g:3165:4: rule__XRelationalExpression__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_0__0();
@@ -11082,16 +11235,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3128:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalChartDSL.g:3169:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
                     {
-                    // InternalChartDSL.g:3128:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
-                    // InternalChartDSL.g:3129:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalChartDSL.g:3169:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalChartDSL.g:3170:3: ( rule__XRelationalExpression__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); 
                     }
-                    // InternalChartDSL.g:3130:3: ( rule__XRelationalExpression__Group_1_1__0 )
-                    // InternalChartDSL.g:3130:4: rule__XRelationalExpression__Group_1_1__0
+                    // InternalChartDSL.g:3171:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalChartDSL.g:3171:4: rule__XRelationalExpression__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_1__0();
@@ -11128,13 +11281,13 @@
 
 
     // $ANTLR start "rule__OpCompare__Alternatives"
-    // InternalChartDSL.g:3138:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
+    // InternalChartDSL.g:3179:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
     public final void rule__OpCompare__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3142:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
+            // InternalChartDSL.g:3183:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
             int alt18=4;
             switch ( input.LA(1) ) {
             case 25:
@@ -11146,7 +11299,7 @@
                 {
                 int LA18_2 = input.LA(2);
 
-                if ( (LA18_2==EOF||(LA18_2>=RULE_STRING && LA18_2<=RULE_DECIMAL)||LA18_2==27||(LA18_2>=34 && LA18_2<=35)||LA18_2==40||(LA18_2>=45 && LA18_2<=50)||LA18_2==72||LA18_2==97||(LA18_2>=101 && LA18_2<=102)||LA18_2==104||LA18_2==106||(LA18_2>=110 && LA18_2<=118)||LA18_2==120||LA18_2==154) ) {
+                if ( (LA18_2==EOF||(LA18_2>=RULE_STRING && LA18_2<=RULE_DECIMAL)||LA18_2==27||(LA18_2>=34 && LA18_2<=35)||LA18_2==40||(LA18_2>=45 && LA18_2<=50)||LA18_2==79||LA18_2==112||(LA18_2>=116 && LA18_2<=117)||LA18_2==119||LA18_2==121||(LA18_2>=125 && LA18_2<=133)||LA18_2==135||LA18_2==171) ) {
                     alt18=4;
                 }
                 else if ( (LA18_2==13) ) {
@@ -11176,10 +11329,10 @@
 
             switch (alt18) {
                 case 1 :
-                    // InternalChartDSL.g:3143:2: ( '>=' )
+                    // InternalChartDSL.g:3184:2: ( '>=' )
                     {
-                    // InternalChartDSL.g:3143:2: ( '>=' )
-                    // InternalChartDSL.g:3144:3: '>='
+                    // InternalChartDSL.g:3184:2: ( '>=' )
+                    // InternalChartDSL.g:3185:3: '>='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
@@ -11195,16 +11348,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3149:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalChartDSL.g:3190:2: ( ( rule__OpCompare__Group_1__0 ) )
                     {
-                    // InternalChartDSL.g:3149:2: ( ( rule__OpCompare__Group_1__0 ) )
-                    // InternalChartDSL.g:3150:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalChartDSL.g:3190:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalChartDSL.g:3191:3: ( rule__OpCompare__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGroup_1()); 
                     }
-                    // InternalChartDSL.g:3151:3: ( rule__OpCompare__Group_1__0 )
-                    // InternalChartDSL.g:3151:4: rule__OpCompare__Group_1__0
+                    // InternalChartDSL.g:3192:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalChartDSL.g:3192:4: rule__OpCompare__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpCompare__Group_1__0();
@@ -11224,10 +11377,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3155:2: ( '>' )
+                    // InternalChartDSL.g:3196:2: ( '>' )
                     {
-                    // InternalChartDSL.g:3155:2: ( '>' )
-                    // InternalChartDSL.g:3156:3: '>'
+                    // InternalChartDSL.g:3196:2: ( '>' )
+                    // InternalChartDSL.g:3197:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
@@ -11243,10 +11396,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:3161:2: ( '<' )
+                    // InternalChartDSL.g:3202:2: ( '<' )
                     {
-                    // InternalChartDSL.g:3161:2: ( '<' )
-                    // InternalChartDSL.g:3162:3: '<'
+                    // InternalChartDSL.g:3202:2: ( '<' )
+                    // InternalChartDSL.g:3203:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
@@ -11279,21 +11432,21 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives"
-    // InternalChartDSL.g:3171:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );
+    // InternalChartDSL.g:3212:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );
     public final void rule__OpOther__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3175:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
+            // InternalChartDSL.g:3216:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
             int alt19=9;
             alt19 = dfa19.predict(input);
             switch (alt19) {
                 case 1 :
-                    // InternalChartDSL.g:3176:2: ( '->' )
+                    // InternalChartDSL.g:3217:2: ( '->' )
                     {
-                    // InternalChartDSL.g:3176:2: ( '->' )
-                    // InternalChartDSL.g:3177:3: '->'
+                    // InternalChartDSL.g:3217:2: ( '->' )
+                    // InternalChartDSL.g:3218:3: '->'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
@@ -11309,10 +11462,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3182:2: ( '..<' )
+                    // InternalChartDSL.g:3223:2: ( '..<' )
                     {
-                    // InternalChartDSL.g:3182:2: ( '..<' )
-                    // InternalChartDSL.g:3183:3: '..<'
+                    // InternalChartDSL.g:3223:2: ( '..<' )
+                    // InternalChartDSL.g:3224:3: '..<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
@@ -11328,16 +11481,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3188:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalChartDSL.g:3229:2: ( ( rule__OpOther__Group_2__0 ) )
                     {
-                    // InternalChartDSL.g:3188:2: ( ( rule__OpOther__Group_2__0 ) )
-                    // InternalChartDSL.g:3189:3: ( rule__OpOther__Group_2__0 )
+                    // InternalChartDSL.g:3229:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalChartDSL.g:3230:3: ( rule__OpOther__Group_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_2()); 
                     }
-                    // InternalChartDSL.g:3190:3: ( rule__OpOther__Group_2__0 )
-                    // InternalChartDSL.g:3190:4: rule__OpOther__Group_2__0
+                    // InternalChartDSL.g:3231:3: ( rule__OpOther__Group_2__0 )
+                    // InternalChartDSL.g:3231:4: rule__OpOther__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_2__0();
@@ -11357,10 +11510,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:3194:2: ( '..' )
+                    // InternalChartDSL.g:3235:2: ( '..' )
                     {
-                    // InternalChartDSL.g:3194:2: ( '..' )
-                    // InternalChartDSL.g:3195:3: '..'
+                    // InternalChartDSL.g:3235:2: ( '..' )
+                    // InternalChartDSL.g:3236:3: '..'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
@@ -11376,10 +11529,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:3200:2: ( '=>' )
+                    // InternalChartDSL.g:3241:2: ( '=>' )
                     {
-                    // InternalChartDSL.g:3200:2: ( '=>' )
-                    // InternalChartDSL.g:3201:3: '=>'
+                    // InternalChartDSL.g:3241:2: ( '=>' )
+                    // InternalChartDSL.g:3242:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
@@ -11395,16 +11548,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:3206:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalChartDSL.g:3247:2: ( ( rule__OpOther__Group_5__0 ) )
                     {
-                    // InternalChartDSL.g:3206:2: ( ( rule__OpOther__Group_5__0 ) )
-                    // InternalChartDSL.g:3207:3: ( rule__OpOther__Group_5__0 )
+                    // InternalChartDSL.g:3247:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalChartDSL.g:3248:3: ( rule__OpOther__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5()); 
                     }
-                    // InternalChartDSL.g:3208:3: ( rule__OpOther__Group_5__0 )
-                    // InternalChartDSL.g:3208:4: rule__OpOther__Group_5__0
+                    // InternalChartDSL.g:3249:3: ( rule__OpOther__Group_5__0 )
+                    // InternalChartDSL.g:3249:4: rule__OpOther__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5__0();
@@ -11424,16 +11577,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalChartDSL.g:3212:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalChartDSL.g:3253:2: ( ( rule__OpOther__Group_6__0 ) )
                     {
-                    // InternalChartDSL.g:3212:2: ( ( rule__OpOther__Group_6__0 ) )
-                    // InternalChartDSL.g:3213:3: ( rule__OpOther__Group_6__0 )
+                    // InternalChartDSL.g:3253:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalChartDSL.g:3254:3: ( rule__OpOther__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6()); 
                     }
-                    // InternalChartDSL.g:3214:3: ( rule__OpOther__Group_6__0 )
-                    // InternalChartDSL.g:3214:4: rule__OpOther__Group_6__0
+                    // InternalChartDSL.g:3255:3: ( rule__OpOther__Group_6__0 )
+                    // InternalChartDSL.g:3255:4: rule__OpOther__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6__0();
@@ -11453,10 +11606,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalChartDSL.g:3218:2: ( '<>' )
+                    // InternalChartDSL.g:3259:2: ( '<>' )
                     {
-                    // InternalChartDSL.g:3218:2: ( '<>' )
-                    // InternalChartDSL.g:3219:3: '<>'
+                    // InternalChartDSL.g:3259:2: ( '<>' )
+                    // InternalChartDSL.g:3260:3: '<>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
@@ -11472,10 +11625,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalChartDSL.g:3224:2: ( '?:' )
+                    // InternalChartDSL.g:3265:2: ( '?:' )
                     {
-                    // InternalChartDSL.g:3224:2: ( '?:' )
-                    // InternalChartDSL.g:3225:3: '?:'
+                    // InternalChartDSL.g:3265:2: ( '?:' )
+                    // InternalChartDSL.g:3266:3: '?:'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
@@ -11508,25 +11661,25 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_5_1"
-    // InternalChartDSL.g:3234:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
+    // InternalChartDSL.g:3275:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
     public final void rule__OpOther__Alternatives_5_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3238:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
+            // InternalChartDSL.g:3279:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
             int alt20=2;
             int LA20_0 = input.LA(1);
 
             if ( (LA20_0==26) ) {
                 int LA20_1 = input.LA(2);
 
-                if ( (LA20_1==26) ) {
-                    alt20=1;
-                }
-                else if ( (LA20_1==EOF||(LA20_1>=RULE_STRING && LA20_1<=RULE_DECIMAL)||LA20_1==27||(LA20_1>=34 && LA20_1<=35)||LA20_1==40||(LA20_1>=45 && LA20_1<=50)||LA20_1==72||LA20_1==97||(LA20_1>=101 && LA20_1<=102)||LA20_1==104||LA20_1==106||(LA20_1>=110 && LA20_1<=118)||LA20_1==120||LA20_1==154) ) {
+                if ( (LA20_1==EOF||(LA20_1>=RULE_STRING && LA20_1<=RULE_DECIMAL)||LA20_1==27||(LA20_1>=34 && LA20_1<=35)||LA20_1==40||(LA20_1>=45 && LA20_1<=50)||LA20_1==79||LA20_1==112||(LA20_1>=116 && LA20_1<=117)||LA20_1==119||LA20_1==121||(LA20_1>=125 && LA20_1<=133)||LA20_1==135||LA20_1==171) ) {
                     alt20=2;
                 }
+                else if ( (LA20_1==26) ) {
+                    alt20=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -11544,16 +11697,16 @@
             }
             switch (alt20) {
                 case 1 :
-                    // InternalChartDSL.g:3239:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalChartDSL.g:3280:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
                     {
-                    // InternalChartDSL.g:3239:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
-                    // InternalChartDSL.g:3240:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalChartDSL.g:3280:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalChartDSL.g:3281:3: ( rule__OpOther__Group_5_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); 
                     }
-                    // InternalChartDSL.g:3241:3: ( rule__OpOther__Group_5_1_0__0 )
-                    // InternalChartDSL.g:3241:4: rule__OpOther__Group_5_1_0__0
+                    // InternalChartDSL.g:3282:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalChartDSL.g:3282:4: rule__OpOther__Group_5_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5_1_0__0();
@@ -11573,10 +11726,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3245:2: ( '>' )
+                    // InternalChartDSL.g:3286:2: ( '>' )
                     {
-                    // InternalChartDSL.g:3245:2: ( '>' )
-                    // InternalChartDSL.g:3246:3: '>'
+                    // InternalChartDSL.g:3286:2: ( '>' )
+                    // InternalChartDSL.g:3287:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
@@ -11609,13 +11762,13 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_6_1"
-    // InternalChartDSL.g:3255:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) );
+    // InternalChartDSL.g:3296:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) );
     public final void rule__OpOther__Alternatives_6_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3259:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
+            // InternalChartDSL.g:3300:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
             int alt21=3;
             int LA21_0 = input.LA(1);
 
@@ -11648,16 +11801,16 @@
             }
             switch (alt21) {
                 case 1 :
-                    // InternalChartDSL.g:3260:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalChartDSL.g:3301:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
                     {
-                    // InternalChartDSL.g:3260:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-                    // InternalChartDSL.g:3261:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalChartDSL.g:3301:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalChartDSL.g:3302:3: ( rule__OpOther__Group_6_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
                     }
-                    // InternalChartDSL.g:3262:3: ( rule__OpOther__Group_6_1_0__0 )
-                    // InternalChartDSL.g:3262:4: rule__OpOther__Group_6_1_0__0
+                    // InternalChartDSL.g:3303:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalChartDSL.g:3303:4: rule__OpOther__Group_6_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6_1_0__0();
@@ -11677,10 +11830,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3266:2: ( '<' )
+                    // InternalChartDSL.g:3307:2: ( '<' )
                     {
-                    // InternalChartDSL.g:3266:2: ( '<' )
-                    // InternalChartDSL.g:3267:3: '<'
+                    // InternalChartDSL.g:3307:2: ( '<' )
+                    // InternalChartDSL.g:3308:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
@@ -11696,10 +11849,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3272:2: ( '=>' )
+                    // InternalChartDSL.g:3313:2: ( '=>' )
                     {
-                    // InternalChartDSL.g:3272:2: ( '=>' )
-                    // InternalChartDSL.g:3273:3: '=>'
+                    // InternalChartDSL.g:3313:2: ( '=>' )
+                    // InternalChartDSL.g:3314:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
@@ -11732,13 +11885,13 @@
 
 
     // $ANTLR start "rule__OpAdd__Alternatives"
-    // InternalChartDSL.g:3282:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
+    // InternalChartDSL.g:3323:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
     public final void rule__OpAdd__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3286:1: ( ( '+' ) | ( '-' ) )
+            // InternalChartDSL.g:3327:1: ( ( '+' ) | ( '-' ) )
             int alt22=2;
             int LA22_0 = input.LA(1);
 
@@ -11757,10 +11910,10 @@
             }
             switch (alt22) {
                 case 1 :
-                    // InternalChartDSL.g:3287:2: ( '+' )
+                    // InternalChartDSL.g:3328:2: ( '+' )
                     {
-                    // InternalChartDSL.g:3287:2: ( '+' )
-                    // InternalChartDSL.g:3288:3: '+'
+                    // InternalChartDSL.g:3328:2: ( '+' )
+                    // InternalChartDSL.g:3329:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
@@ -11776,10 +11929,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3293:2: ( '-' )
+                    // InternalChartDSL.g:3334:2: ( '-' )
                     {
-                    // InternalChartDSL.g:3293:2: ( '-' )
-                    // InternalChartDSL.g:3294:3: '-'
+                    // InternalChartDSL.g:3334:2: ( '-' )
+                    // InternalChartDSL.g:3335:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
@@ -11812,13 +11965,13 @@
 
 
     // $ANTLR start "rule__OpMulti__Alternatives"
-    // InternalChartDSL.g:3303:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
+    // InternalChartDSL.g:3344:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
     public final void rule__OpMulti__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3307:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
+            // InternalChartDSL.g:3348:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
             int alt23=4;
             switch ( input.LA(1) ) {
             case 36:
@@ -11851,10 +12004,10 @@
 
             switch (alt23) {
                 case 1 :
-                    // InternalChartDSL.g:3308:2: ( '*' )
+                    // InternalChartDSL.g:3349:2: ( '*' )
                     {
-                    // InternalChartDSL.g:3308:2: ( '*' )
-                    // InternalChartDSL.g:3309:3: '*'
+                    // InternalChartDSL.g:3349:2: ( '*' )
+                    // InternalChartDSL.g:3350:3: '*'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
@@ -11870,10 +12023,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3314:2: ( '**' )
+                    // InternalChartDSL.g:3355:2: ( '**' )
                     {
-                    // InternalChartDSL.g:3314:2: ( '**' )
-                    // InternalChartDSL.g:3315:3: '**'
+                    // InternalChartDSL.g:3355:2: ( '**' )
+                    // InternalChartDSL.g:3356:3: '**'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
@@ -11889,10 +12042,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3320:2: ( '/' )
+                    // InternalChartDSL.g:3361:2: ( '/' )
                     {
-                    // InternalChartDSL.g:3320:2: ( '/' )
-                    // InternalChartDSL.g:3321:3: '/'
+                    // InternalChartDSL.g:3361:2: ( '/' )
+                    // InternalChartDSL.g:3362:3: '/'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
@@ -11908,10 +12061,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:3326:2: ( '%' )
+                    // InternalChartDSL.g:3367:2: ( '%' )
                     {
-                    // InternalChartDSL.g:3326:2: ( '%' )
-                    // InternalChartDSL.g:3327:3: '%'
+                    // InternalChartDSL.g:3367:2: ( '%' )
+                    // InternalChartDSL.g:3368:3: '%'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
@@ -11944,20 +12097,20 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Alternatives"
-    // InternalChartDSL.g:3336:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
+    // InternalChartDSL.g:3377:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
     public final void rule__XUnaryOperation__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3340:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
+            // InternalChartDSL.g:3381:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
             int alt24=2;
             int LA24_0 = input.LA(1);
 
             if ( ((LA24_0>=34 && LA24_0<=35)||LA24_0==40) ) {
                 alt24=1;
             }
-            else if ( ((LA24_0>=RULE_STRING && LA24_0<=RULE_DECIMAL)||LA24_0==27||(LA24_0>=45 && LA24_0<=50)||LA24_0==72||LA24_0==97||(LA24_0>=101 && LA24_0<=102)||LA24_0==104||LA24_0==106||(LA24_0>=110 && LA24_0<=118)||LA24_0==120||LA24_0==154) ) {
+            else if ( ((LA24_0>=RULE_STRING && LA24_0<=RULE_DECIMAL)||LA24_0==27||(LA24_0>=45 && LA24_0<=50)||LA24_0==79||LA24_0==112||(LA24_0>=116 && LA24_0<=117)||LA24_0==119||LA24_0==121||(LA24_0>=125 && LA24_0<=133)||LA24_0==135||LA24_0==171) ) {
                 alt24=2;
             }
             else {
@@ -11969,16 +12122,16 @@
             }
             switch (alt24) {
                 case 1 :
-                    // InternalChartDSL.g:3341:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalChartDSL.g:3382:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
                     {
-                    // InternalChartDSL.g:3341:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
-                    // InternalChartDSL.g:3342:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalChartDSL.g:3382:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalChartDSL.g:3383:3: ( rule__XUnaryOperation__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); 
                     }
-                    // InternalChartDSL.g:3343:3: ( rule__XUnaryOperation__Group_0__0 )
-                    // InternalChartDSL.g:3343:4: rule__XUnaryOperation__Group_0__0
+                    // InternalChartDSL.g:3384:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalChartDSL.g:3384:4: rule__XUnaryOperation__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XUnaryOperation__Group_0__0();
@@ -11998,10 +12151,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3347:2: ( ruleXCastedExpression )
+                    // InternalChartDSL.g:3388:2: ( ruleXCastedExpression )
                     {
-                    // InternalChartDSL.g:3347:2: ( ruleXCastedExpression )
-                    // InternalChartDSL.g:3348:3: ruleXCastedExpression
+                    // InternalChartDSL.g:3388:2: ( ruleXCastedExpression )
+                    // InternalChartDSL.g:3389:3: ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
@@ -12038,13 +12191,13 @@
 
 
     // $ANTLR start "rule__OpUnary__Alternatives"
-    // InternalChartDSL.g:3357:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
+    // InternalChartDSL.g:3398:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
     public final void rule__OpUnary__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3361:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
+            // InternalChartDSL.g:3402:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
             int alt25=3;
             switch ( input.LA(1) ) {
             case 40:
@@ -12072,10 +12225,10 @@
 
             switch (alt25) {
                 case 1 :
-                    // InternalChartDSL.g:3362:2: ( '!' )
+                    // InternalChartDSL.g:3403:2: ( '!' )
                     {
-                    // InternalChartDSL.g:3362:2: ( '!' )
-                    // InternalChartDSL.g:3363:3: '!'
+                    // InternalChartDSL.g:3403:2: ( '!' )
+                    // InternalChartDSL.g:3404:3: '!'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
@@ -12091,10 +12244,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3368:2: ( '-' )
+                    // InternalChartDSL.g:3409:2: ( '-' )
                     {
-                    // InternalChartDSL.g:3368:2: ( '-' )
-                    // InternalChartDSL.g:3369:3: '-'
+                    // InternalChartDSL.g:3409:2: ( '-' )
+                    // InternalChartDSL.g:3410:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
@@ -12110,10 +12263,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3374:2: ( '+' )
+                    // InternalChartDSL.g:3415:2: ( '+' )
                     {
-                    // InternalChartDSL.g:3374:2: ( '+' )
-                    // InternalChartDSL.g:3375:3: '+'
+                    // InternalChartDSL.g:3415:2: ( '+' )
+                    // InternalChartDSL.g:3416:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
@@ -12146,13 +12299,13 @@
 
 
     // $ANTLR start "rule__OpPostfix__Alternatives"
-    // InternalChartDSL.g:3384:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
+    // InternalChartDSL.g:3425:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
     public final void rule__OpPostfix__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3388:1: ( ( '++' ) | ( '--' ) )
+            // InternalChartDSL.g:3429:1: ( ( '++' ) | ( '--' ) )
             int alt26=2;
             int LA26_0 = input.LA(1);
 
@@ -12171,10 +12324,10 @@
             }
             switch (alt26) {
                 case 1 :
-                    // InternalChartDSL.g:3389:2: ( '++' )
+                    // InternalChartDSL.g:3430:2: ( '++' )
                     {
-                    // InternalChartDSL.g:3389:2: ( '++' )
-                    // InternalChartDSL.g:3390:3: '++'
+                    // InternalChartDSL.g:3430:2: ( '++' )
+                    // InternalChartDSL.g:3431:3: '++'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
@@ -12190,10 +12343,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3395:2: ( '--' )
+                    // InternalChartDSL.g:3436:2: ( '--' )
                     {
-                    // InternalChartDSL.g:3395:2: ( '--' )
-                    // InternalChartDSL.g:3396:3: '--'
+                    // InternalChartDSL.g:3436:2: ( '--' )
+                    // InternalChartDSL.g:3437:3: '--'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
@@ -12226,27 +12379,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1"
-    // InternalChartDSL.g:3405:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
+    // InternalChartDSL.g:3446:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3409:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
+            // InternalChartDSL.g:3450:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
             int alt27=2;
             alt27 = dfa27.predict(input);
             switch (alt27) {
                 case 1 :
-                    // InternalChartDSL.g:3410:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalChartDSL.g:3451:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
                     {
-                    // InternalChartDSL.g:3410:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
-                    // InternalChartDSL.g:3411:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalChartDSL.g:3451:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalChartDSL.g:3452:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); 
                     }
-                    // InternalChartDSL.g:3412:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
-                    // InternalChartDSL.g:3412:4: rule__XMemberFeatureCall__Group_1_0__0
+                    // InternalChartDSL.g:3453:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalChartDSL.g:3453:4: rule__XMemberFeatureCall__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_0__0();
@@ -12266,16 +12419,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3416:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalChartDSL.g:3457:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
                     {
-                    // InternalChartDSL.g:3416:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
-                    // InternalChartDSL.g:3417:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalChartDSL.g:3457:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalChartDSL.g:3458:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); 
                     }
-                    // InternalChartDSL.g:3418:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
-                    // InternalChartDSL.g:3418:4: rule__XMemberFeatureCall__Group_1_1__0
+                    // InternalChartDSL.g:3459:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalChartDSL.g:3459:4: rule__XMemberFeatureCall__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1__0();
@@ -12312,20 +12465,20 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"
-    // InternalChartDSL.g:3426:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
+    // InternalChartDSL.g:3467:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1_0_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3430:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
+            // InternalChartDSL.g:3471:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
             int alt28=2;
             int LA28_0 = input.LA(1);
 
             if ( (LA28_0==43) ) {
                 alt28=1;
             }
-            else if ( (LA28_0==150) ) {
+            else if ( (LA28_0==167) ) {
                 alt28=2;
             }
             else {
@@ -12337,10 +12490,10 @@
             }
             switch (alt28) {
                 case 1 :
-                    // InternalChartDSL.g:3431:2: ( '.' )
+                    // InternalChartDSL.g:3472:2: ( '.' )
                     {
-                    // InternalChartDSL.g:3431:2: ( '.' )
-                    // InternalChartDSL.g:3432:3: '.'
+                    // InternalChartDSL.g:3472:2: ( '.' )
+                    // InternalChartDSL.g:3473:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
@@ -12356,16 +12509,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3437:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalChartDSL.g:3478:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
                     {
-                    // InternalChartDSL.g:3437:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
-                    // InternalChartDSL.g:3438:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalChartDSL.g:3478:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalChartDSL.g:3479:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); 
                     }
-                    // InternalChartDSL.g:3439:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
-                    // InternalChartDSL.g:3439:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
+                    // InternalChartDSL.g:3480:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalChartDSL.g:3480:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1();
@@ -12402,13 +12555,13 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"
-    // InternalChartDSL.g:3447:1: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) );
+    // InternalChartDSL.g:3488:1: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3451:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
+            // InternalChartDSL.g:3492:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
             int alt29=3;
             switch ( input.LA(1) ) {
             case 43:
@@ -12416,12 +12569,12 @@
                 alt29=1;
                 }
                 break;
-            case 151:
+            case 168:
                 {
                 alt29=2;
                 }
                 break;
-            case 150:
+            case 167:
                 {
                 alt29=3;
                 }
@@ -12436,10 +12589,10 @@
 
             switch (alt29) {
                 case 1 :
-                    // InternalChartDSL.g:3452:2: ( '.' )
+                    // InternalChartDSL.g:3493:2: ( '.' )
                     {
-                    // InternalChartDSL.g:3452:2: ( '.' )
-                    // InternalChartDSL.g:3453:3: '.'
+                    // InternalChartDSL.g:3493:2: ( '.' )
+                    // InternalChartDSL.g:3494:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
@@ -12455,16 +12608,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3458:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalChartDSL.g:3499:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
                     {
-                    // InternalChartDSL.g:3458:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
-                    // InternalChartDSL.g:3459:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalChartDSL.g:3499:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalChartDSL.g:3500:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); 
                     }
-                    // InternalChartDSL.g:3460:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
-                    // InternalChartDSL.g:3460:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
+                    // InternalChartDSL.g:3501:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalChartDSL.g:3501:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1();
@@ -12484,16 +12637,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3464:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalChartDSL.g:3505:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
                     {
-                    // InternalChartDSL.g:3464:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
-                    // InternalChartDSL.g:3465:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalChartDSL.g:3505:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalChartDSL.g:3506:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); 
                     }
-                    // InternalChartDSL.g:3466:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
-                    // InternalChartDSL.g:3466:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
+                    // InternalChartDSL.g:3507:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalChartDSL.g:3507:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2();
@@ -12530,27 +12683,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_3_1"
-    // InternalChartDSL.g:3474:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );
+    // InternalChartDSL.g:3515:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1_1_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3478:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
+            // InternalChartDSL.g:3519:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
             int alt30=2;
             alt30 = dfa30.predict(input);
             switch (alt30) {
                 case 1 :
-                    // InternalChartDSL.g:3479:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalChartDSL.g:3520:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
                     {
-                    // InternalChartDSL.g:3479:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-                    // InternalChartDSL.g:3480:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalChartDSL.g:3520:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalChartDSL.g:3521:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
                     }
-                    // InternalChartDSL.g:3481:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-                    // InternalChartDSL.g:3481:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+                    // InternalChartDSL.g:3522:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalChartDSL.g:3522:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -12570,16 +12723,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3485:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalChartDSL.g:3526:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
                     {
-                    // InternalChartDSL.g:3485:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
-                    // InternalChartDSL.g:3486:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalChartDSL.g:3526:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalChartDSL.g:3527:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); 
                     }
-                    // InternalChartDSL.g:3487:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
-                    // InternalChartDSL.g:3487:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
+                    // InternalChartDSL.g:3528:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalChartDSL.g:3528:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3_1_1__0();
@@ -12616,21 +12769,21 @@
 
 
     // $ANTLR start "rule__XPrimaryExpression__Alternatives"
-    // InternalChartDSL.g:3495:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
+    // InternalChartDSL.g:3536:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
     public final void rule__XPrimaryExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3499:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
+            // InternalChartDSL.g:3540:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
             int alt31=15;
             alt31 = dfa31.predict(input);
             switch (alt31) {
                 case 1 :
-                    // InternalChartDSL.g:3500:2: ( ruleXConstructorCall )
+                    // InternalChartDSL.g:3541:2: ( ruleXConstructorCall )
                     {
-                    // InternalChartDSL.g:3500:2: ( ruleXConstructorCall )
-                    // InternalChartDSL.g:3501:3: ruleXConstructorCall
+                    // InternalChartDSL.g:3541:2: ( ruleXConstructorCall )
+                    // InternalChartDSL.g:3542:3: ruleXConstructorCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
@@ -12650,10 +12803,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3506:2: ( ruleXBlockExpression )
+                    // InternalChartDSL.g:3547:2: ( ruleXBlockExpression )
                     {
-                    // InternalChartDSL.g:3506:2: ( ruleXBlockExpression )
-                    // InternalChartDSL.g:3507:3: ruleXBlockExpression
+                    // InternalChartDSL.g:3547:2: ( ruleXBlockExpression )
+                    // InternalChartDSL.g:3548:3: ruleXBlockExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
@@ -12673,10 +12826,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3512:2: ( ruleXSwitchExpression )
+                    // InternalChartDSL.g:3553:2: ( ruleXSwitchExpression )
                     {
-                    // InternalChartDSL.g:3512:2: ( ruleXSwitchExpression )
-                    // InternalChartDSL.g:3513:3: ruleXSwitchExpression
+                    // InternalChartDSL.g:3553:2: ( ruleXSwitchExpression )
+                    // InternalChartDSL.g:3554:3: ruleXSwitchExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
@@ -12696,16 +12849,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:3518:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalChartDSL.g:3559:2: ( ( ruleXSynchronizedExpression ) )
                     {
-                    // InternalChartDSL.g:3518:2: ( ( ruleXSynchronizedExpression ) )
-                    // InternalChartDSL.g:3519:3: ( ruleXSynchronizedExpression )
+                    // InternalChartDSL.g:3559:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalChartDSL.g:3560:3: ( ruleXSynchronizedExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
                     }
-                    // InternalChartDSL.g:3520:3: ( ruleXSynchronizedExpression )
-                    // InternalChartDSL.g:3520:4: ruleXSynchronizedExpression
+                    // InternalChartDSL.g:3561:3: ( ruleXSynchronizedExpression )
+                    // InternalChartDSL.g:3561:4: ruleXSynchronizedExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXSynchronizedExpression();
@@ -12725,10 +12878,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:3524:2: ( ruleXFeatureCall )
+                    // InternalChartDSL.g:3565:2: ( ruleXFeatureCall )
                     {
-                    // InternalChartDSL.g:3524:2: ( ruleXFeatureCall )
-                    // InternalChartDSL.g:3525:3: ruleXFeatureCall
+                    // InternalChartDSL.g:3565:2: ( ruleXFeatureCall )
+                    // InternalChartDSL.g:3566:3: ruleXFeatureCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
@@ -12748,10 +12901,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:3530:2: ( ruleXLiteral )
+                    // InternalChartDSL.g:3571:2: ( ruleXLiteral )
                     {
-                    // InternalChartDSL.g:3530:2: ( ruleXLiteral )
-                    // InternalChartDSL.g:3531:3: ruleXLiteral
+                    // InternalChartDSL.g:3571:2: ( ruleXLiteral )
+                    // InternalChartDSL.g:3572:3: ruleXLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
@@ -12771,10 +12924,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalChartDSL.g:3536:2: ( ruleXIfExpression )
+                    // InternalChartDSL.g:3577:2: ( ruleXIfExpression )
                     {
-                    // InternalChartDSL.g:3536:2: ( ruleXIfExpression )
-                    // InternalChartDSL.g:3537:3: ruleXIfExpression
+                    // InternalChartDSL.g:3577:2: ( ruleXIfExpression )
+                    // InternalChartDSL.g:3578:3: ruleXIfExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
@@ -12794,16 +12947,16 @@
                     }
                     break;
                 case 8 :
-                    // InternalChartDSL.g:3542:2: ( ( ruleXForLoopExpression ) )
+                    // InternalChartDSL.g:3583:2: ( ( ruleXForLoopExpression ) )
                     {
-                    // InternalChartDSL.g:3542:2: ( ( ruleXForLoopExpression ) )
-                    // InternalChartDSL.g:3543:3: ( ruleXForLoopExpression )
+                    // InternalChartDSL.g:3583:2: ( ( ruleXForLoopExpression ) )
+                    // InternalChartDSL.g:3584:3: ( ruleXForLoopExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
                     }
-                    // InternalChartDSL.g:3544:3: ( ruleXForLoopExpression )
-                    // InternalChartDSL.g:3544:4: ruleXForLoopExpression
+                    // InternalChartDSL.g:3585:3: ( ruleXForLoopExpression )
+                    // InternalChartDSL.g:3585:4: ruleXForLoopExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXForLoopExpression();
@@ -12823,10 +12976,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalChartDSL.g:3548:2: ( ruleXBasicForLoopExpression )
+                    // InternalChartDSL.g:3589:2: ( ruleXBasicForLoopExpression )
                     {
-                    // InternalChartDSL.g:3548:2: ( ruleXBasicForLoopExpression )
-                    // InternalChartDSL.g:3549:3: ruleXBasicForLoopExpression
+                    // InternalChartDSL.g:3589:2: ( ruleXBasicForLoopExpression )
+                    // InternalChartDSL.g:3590:3: ruleXBasicForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -12846,10 +12999,10 @@
                     }
                     break;
                 case 10 :
-                    // InternalChartDSL.g:3554:2: ( ruleXWhileExpression )
+                    // InternalChartDSL.g:3595:2: ( ruleXWhileExpression )
                     {
-                    // InternalChartDSL.g:3554:2: ( ruleXWhileExpression )
-                    // InternalChartDSL.g:3555:3: ruleXWhileExpression
+                    // InternalChartDSL.g:3595:2: ( ruleXWhileExpression )
+                    // InternalChartDSL.g:3596:3: ruleXWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
@@ -12869,10 +13022,10 @@
                     }
                     break;
                 case 11 :
-                    // InternalChartDSL.g:3560:2: ( ruleXDoWhileExpression )
+                    // InternalChartDSL.g:3601:2: ( ruleXDoWhileExpression )
                     {
-                    // InternalChartDSL.g:3560:2: ( ruleXDoWhileExpression )
-                    // InternalChartDSL.g:3561:3: ruleXDoWhileExpression
+                    // InternalChartDSL.g:3601:2: ( ruleXDoWhileExpression )
+                    // InternalChartDSL.g:3602:3: ruleXDoWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
@@ -12892,10 +13045,10 @@
                     }
                     break;
                 case 12 :
-                    // InternalChartDSL.g:3566:2: ( ruleXThrowExpression )
+                    // InternalChartDSL.g:3607:2: ( ruleXThrowExpression )
                     {
-                    // InternalChartDSL.g:3566:2: ( ruleXThrowExpression )
-                    // InternalChartDSL.g:3567:3: ruleXThrowExpression
+                    // InternalChartDSL.g:3607:2: ( ruleXThrowExpression )
+                    // InternalChartDSL.g:3608:3: ruleXThrowExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
@@ -12915,10 +13068,10 @@
                     }
                     break;
                 case 13 :
-                    // InternalChartDSL.g:3572:2: ( ruleXReturnExpression )
+                    // InternalChartDSL.g:3613:2: ( ruleXReturnExpression )
                     {
-                    // InternalChartDSL.g:3572:2: ( ruleXReturnExpression )
-                    // InternalChartDSL.g:3573:3: ruleXReturnExpression
+                    // InternalChartDSL.g:3613:2: ( ruleXReturnExpression )
+                    // InternalChartDSL.g:3614:3: ruleXReturnExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
@@ -12938,10 +13091,10 @@
                     }
                     break;
                 case 14 :
-                    // InternalChartDSL.g:3578:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalChartDSL.g:3619:2: ( ruleXTryCatchFinallyExpression )
                     {
-                    // InternalChartDSL.g:3578:2: ( ruleXTryCatchFinallyExpression )
-                    // InternalChartDSL.g:3579:3: ruleXTryCatchFinallyExpression
+                    // InternalChartDSL.g:3619:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalChartDSL.g:3620:3: ruleXTryCatchFinallyExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
@@ -12961,10 +13114,10 @@
                     }
                     break;
                 case 15 :
-                    // InternalChartDSL.g:3584:2: ( ruleXParenthesizedExpression )
+                    // InternalChartDSL.g:3625:2: ( ruleXParenthesizedExpression )
                     {
-                    // InternalChartDSL.g:3584:2: ( ruleXParenthesizedExpression )
-                    // InternalChartDSL.g:3585:3: ruleXParenthesizedExpression
+                    // InternalChartDSL.g:3625:2: ( ruleXParenthesizedExpression )
+                    // InternalChartDSL.g:3626:3: ruleXParenthesizedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
@@ -13001,27 +13154,27 @@
 
 
     // $ANTLR start "rule__XLiteral__Alternatives"
-    // InternalChartDSL.g:3594:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
+    // InternalChartDSL.g:3635:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
     public final void rule__XLiteral__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3598:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
+            // InternalChartDSL.g:3639:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
             int alt32=7;
             switch ( input.LA(1) ) {
-            case 101:
+            case 116:
                 {
                 alt32=1;
                 }
                 break;
-            case 102:
+            case 117:
                 {
                 alt32=2;
                 }
                 break;
             case 50:
-            case 154:
+            case 171:
                 {
                 alt32=3;
                 }
@@ -13033,7 +13186,7 @@
                 alt32=4;
                 }
                 break;
-            case 114:
+            case 129:
                 {
                 alt32=5;
                 }
@@ -13043,7 +13196,7 @@
                 alt32=6;
                 }
                 break;
-            case 115:
+            case 130:
                 {
                 alt32=7;
                 }
@@ -13058,10 +13211,10 @@
 
             switch (alt32) {
                 case 1 :
-                    // InternalChartDSL.g:3599:2: ( ruleXCollectionLiteral )
+                    // InternalChartDSL.g:3640:2: ( ruleXCollectionLiteral )
                     {
-                    // InternalChartDSL.g:3599:2: ( ruleXCollectionLiteral )
-                    // InternalChartDSL.g:3600:3: ruleXCollectionLiteral
+                    // InternalChartDSL.g:3640:2: ( ruleXCollectionLiteral )
+                    // InternalChartDSL.g:3641:3: ruleXCollectionLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
@@ -13081,16 +13234,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3605:2: ( ( ruleXClosure ) )
+                    // InternalChartDSL.g:3646:2: ( ( ruleXClosure ) )
                     {
-                    // InternalChartDSL.g:3605:2: ( ( ruleXClosure ) )
-                    // InternalChartDSL.g:3606:3: ( ruleXClosure )
+                    // InternalChartDSL.g:3646:2: ( ( ruleXClosure ) )
+                    // InternalChartDSL.g:3647:3: ( ruleXClosure )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
                     }
-                    // InternalChartDSL.g:3607:3: ( ruleXClosure )
-                    // InternalChartDSL.g:3607:4: ruleXClosure
+                    // InternalChartDSL.g:3648:3: ( ruleXClosure )
+                    // InternalChartDSL.g:3648:4: ruleXClosure
                     {
                     pushFollow(FOLLOW_2);
                     ruleXClosure();
@@ -13110,10 +13263,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3611:2: ( ruleXBooleanLiteral )
+                    // InternalChartDSL.g:3652:2: ( ruleXBooleanLiteral )
                     {
-                    // InternalChartDSL.g:3611:2: ( ruleXBooleanLiteral )
-                    // InternalChartDSL.g:3612:3: ruleXBooleanLiteral
+                    // InternalChartDSL.g:3652:2: ( ruleXBooleanLiteral )
+                    // InternalChartDSL.g:3653:3: ruleXBooleanLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
@@ -13133,10 +13286,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:3617:2: ( ruleXNumberLiteral )
+                    // InternalChartDSL.g:3658:2: ( ruleXNumberLiteral )
                     {
-                    // InternalChartDSL.g:3617:2: ( ruleXNumberLiteral )
-                    // InternalChartDSL.g:3618:3: ruleXNumberLiteral
+                    // InternalChartDSL.g:3658:2: ( ruleXNumberLiteral )
+                    // InternalChartDSL.g:3659:3: ruleXNumberLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
@@ -13156,10 +13309,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:3623:2: ( ruleXNullLiteral )
+                    // InternalChartDSL.g:3664:2: ( ruleXNullLiteral )
                     {
-                    // InternalChartDSL.g:3623:2: ( ruleXNullLiteral )
-                    // InternalChartDSL.g:3624:3: ruleXNullLiteral
+                    // InternalChartDSL.g:3664:2: ( ruleXNullLiteral )
+                    // InternalChartDSL.g:3665:3: ruleXNullLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
@@ -13179,10 +13332,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:3629:2: ( ruleXStringLiteral )
+                    // InternalChartDSL.g:3670:2: ( ruleXStringLiteral )
                     {
-                    // InternalChartDSL.g:3629:2: ( ruleXStringLiteral )
-                    // InternalChartDSL.g:3630:3: ruleXStringLiteral
+                    // InternalChartDSL.g:3670:2: ( ruleXStringLiteral )
+                    // InternalChartDSL.g:3671:3: ruleXStringLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
@@ -13202,10 +13355,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalChartDSL.g:3635:2: ( ruleXTypeLiteral )
+                    // InternalChartDSL.g:3676:2: ( ruleXTypeLiteral )
                     {
-                    // InternalChartDSL.g:3635:2: ( ruleXTypeLiteral )
-                    // InternalChartDSL.g:3636:3: ruleXTypeLiteral
+                    // InternalChartDSL.g:3676:2: ( ruleXTypeLiteral )
+                    // InternalChartDSL.g:3677:3: ruleXTypeLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
@@ -13242,25 +13395,25 @@
 
 
     // $ANTLR start "rule__XCollectionLiteral__Alternatives"
-    // InternalChartDSL.g:3645:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
+    // InternalChartDSL.g:3686:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
     public final void rule__XCollectionLiteral__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3649:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
+            // InternalChartDSL.g:3690:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
             int alt33=2;
             int LA33_0 = input.LA(1);
 
-            if ( (LA33_0==101) ) {
+            if ( (LA33_0==116) ) {
                 int LA33_1 = input.LA(2);
 
-                if ( (LA33_1==72) ) {
-                    alt33=1;
-                }
-                else if ( (LA33_1==102) ) {
+                if ( (LA33_1==117) ) {
                     alt33=2;
                 }
+                else if ( (LA33_1==79) ) {
+                    alt33=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -13278,10 +13431,10 @@
             }
             switch (alt33) {
                 case 1 :
-                    // InternalChartDSL.g:3650:2: ( ruleXSetLiteral )
+                    // InternalChartDSL.g:3691:2: ( ruleXSetLiteral )
                     {
-                    // InternalChartDSL.g:3650:2: ( ruleXSetLiteral )
-                    // InternalChartDSL.g:3651:3: ruleXSetLiteral
+                    // InternalChartDSL.g:3691:2: ( ruleXSetLiteral )
+                    // InternalChartDSL.g:3692:3: ruleXSetLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
@@ -13301,10 +13454,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3656:2: ( ruleXListLiteral )
+                    // InternalChartDSL.g:3697:2: ( ruleXListLiteral )
                     {
-                    // InternalChartDSL.g:3656:2: ( ruleXListLiteral )
-                    // InternalChartDSL.g:3657:3: ruleXListLiteral
+                    // InternalChartDSL.g:3697:2: ( ruleXListLiteral )
+                    // InternalChartDSL.g:3698:3: ruleXListLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
@@ -13341,27 +13494,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Alternatives_2"
-    // InternalChartDSL.g:3666:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
+    // InternalChartDSL.g:3707:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
     public final void rule__XSwitchExpression__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3670:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
+            // InternalChartDSL.g:3711:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
             int alt34=2;
             alt34 = dfa34.predict(input);
             switch (alt34) {
                 case 1 :
-                    // InternalChartDSL.g:3671:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalChartDSL.g:3712:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
                     {
-                    // InternalChartDSL.g:3671:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-                    // InternalChartDSL.g:3672:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalChartDSL.g:3712:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalChartDSL.g:3713:3: ( rule__XSwitchExpression__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
                     }
-                    // InternalChartDSL.g:3673:3: ( rule__XSwitchExpression__Group_2_0__0 )
-                    // InternalChartDSL.g:3673:4: rule__XSwitchExpression__Group_2_0__0
+                    // InternalChartDSL.g:3714:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalChartDSL.g:3714:4: rule__XSwitchExpression__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_0__0();
@@ -13381,16 +13534,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3677:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalChartDSL.g:3718:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
                     {
-                    // InternalChartDSL.g:3677:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
-                    // InternalChartDSL.g:3678:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalChartDSL.g:3718:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalChartDSL.g:3719:3: ( rule__XSwitchExpression__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); 
                     }
-                    // InternalChartDSL.g:3679:3: ( rule__XSwitchExpression__Group_2_1__0 )
-                    // InternalChartDSL.g:3679:4: rule__XSwitchExpression__Group_2_1__0
+                    // InternalChartDSL.g:3720:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalChartDSL.g:3720:4: rule__XSwitchExpression__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1__0();
@@ -13427,20 +13580,20 @@
 
 
     // $ANTLR start "rule__XCasePart__Alternatives_3"
-    // InternalChartDSL.g:3687:1: rule__XCasePart__Alternatives_3 : ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) );
+    // InternalChartDSL.g:3728:1: rule__XCasePart__Alternatives_3 : ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) );
     public final void rule__XCasePart__Alternatives_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3691:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
+            // InternalChartDSL.g:3732:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
             int alt35=2;
             int LA35_0 = input.LA(1);
 
-            if ( (LA35_0==107) ) {
+            if ( (LA35_0==122) ) {
                 alt35=1;
             }
-            else if ( (LA35_0==99) ) {
+            else if ( (LA35_0==114) ) {
                 alt35=2;
             }
             else {
@@ -13452,16 +13605,16 @@
             }
             switch (alt35) {
                 case 1 :
-                    // InternalChartDSL.g:3692:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalChartDSL.g:3733:2: ( ( rule__XCasePart__Group_3_0__0 ) )
                     {
-                    // InternalChartDSL.g:3692:2: ( ( rule__XCasePart__Group_3_0__0 ) )
-                    // InternalChartDSL.g:3693:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalChartDSL.g:3733:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalChartDSL.g:3734:3: ( rule__XCasePart__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getGroup_3_0()); 
                     }
-                    // InternalChartDSL.g:3694:3: ( rule__XCasePart__Group_3_0__0 )
-                    // InternalChartDSL.g:3694:4: rule__XCasePart__Group_3_0__0
+                    // InternalChartDSL.g:3735:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalChartDSL.g:3735:4: rule__XCasePart__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_3_0__0();
@@ -13481,16 +13634,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3698:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalChartDSL.g:3739:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
                     {
-                    // InternalChartDSL.g:3698:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
-                    // InternalChartDSL.g:3699:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalChartDSL.g:3739:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalChartDSL.g:3740:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); 
                     }
-                    // InternalChartDSL.g:3700:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
-                    // InternalChartDSL.g:3700:4: rule__XCasePart__FallThroughAssignment_3_1
+                    // InternalChartDSL.g:3741:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalChartDSL.g:3741:4: rule__XCasePart__FallThroughAssignment_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__FallThroughAssignment_3_1();
@@ -13527,20 +13680,20 @@
 
 
     // $ANTLR start "rule__XExpressionOrVarDeclaration__Alternatives"
-    // InternalChartDSL.g:3708:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
+    // InternalChartDSL.g:3749:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
     public final void rule__XExpressionOrVarDeclaration__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3712:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
+            // InternalChartDSL.g:3753:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
             int alt36=2;
             int LA36_0 = input.LA(1);
 
-            if ( (LA36_0==44||LA36_0==153) ) {
+            if ( (LA36_0==44||LA36_0==170) ) {
                 alt36=1;
             }
-            else if ( ((LA36_0>=RULE_STRING && LA36_0<=RULE_DECIMAL)||LA36_0==27||(LA36_0>=34 && LA36_0<=35)||LA36_0==40||(LA36_0>=45 && LA36_0<=50)||LA36_0==72||LA36_0==97||(LA36_0>=101 && LA36_0<=102)||LA36_0==104||LA36_0==106||(LA36_0>=110 && LA36_0<=118)||LA36_0==120||LA36_0==154) ) {
+            else if ( ((LA36_0>=RULE_STRING && LA36_0<=RULE_DECIMAL)||LA36_0==27||(LA36_0>=34 && LA36_0<=35)||LA36_0==40||(LA36_0>=45 && LA36_0<=50)||LA36_0==79||LA36_0==112||(LA36_0>=116 && LA36_0<=117)||LA36_0==119||LA36_0==121||(LA36_0>=125 && LA36_0<=133)||LA36_0==135||LA36_0==171) ) {
                 alt36=2;
             }
             else {
@@ -13552,10 +13705,10 @@
             }
             switch (alt36) {
                 case 1 :
-                    // InternalChartDSL.g:3713:2: ( ruleXVariableDeclaration )
+                    // InternalChartDSL.g:3754:2: ( ruleXVariableDeclaration )
                     {
-                    // InternalChartDSL.g:3713:2: ( ruleXVariableDeclaration )
-                    // InternalChartDSL.g:3714:3: ruleXVariableDeclaration
+                    // InternalChartDSL.g:3754:2: ( ruleXVariableDeclaration )
+                    // InternalChartDSL.g:3755:3: ruleXVariableDeclaration
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
@@ -13575,10 +13728,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3719:2: ( ruleXExpression )
+                    // InternalChartDSL.g:3760:2: ( ruleXExpression )
                     {
-                    // InternalChartDSL.g:3719:2: ( ruleXExpression )
-                    // InternalChartDSL.g:3720:3: ruleXExpression
+                    // InternalChartDSL.g:3760:2: ( ruleXExpression )
+                    // InternalChartDSL.g:3761:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
@@ -13615,17 +13768,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_1"
-    // InternalChartDSL.g:3729:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
+    // InternalChartDSL.g:3770:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
     public final void rule__XVariableDeclaration__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3733:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
+            // InternalChartDSL.g:3774:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
             int alt37=2;
             int LA37_0 = input.LA(1);
 
-            if ( (LA37_0==153) ) {
+            if ( (LA37_0==170) ) {
                 alt37=1;
             }
             else if ( (LA37_0==44) ) {
@@ -13640,16 +13793,16 @@
             }
             switch (alt37) {
                 case 1 :
-                    // InternalChartDSL.g:3734:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalChartDSL.g:3775:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
                     {
-                    // InternalChartDSL.g:3734:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
-                    // InternalChartDSL.g:3735:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalChartDSL.g:3775:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalChartDSL.g:3776:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); 
                     }
-                    // InternalChartDSL.g:3736:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
-                    // InternalChartDSL.g:3736:4: rule__XVariableDeclaration__WriteableAssignment_1_0
+                    // InternalChartDSL.g:3777:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalChartDSL.g:3777:4: rule__XVariableDeclaration__WriteableAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__WriteableAssignment_1_0();
@@ -13669,10 +13822,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3740:2: ( 'val' )
+                    // InternalChartDSL.g:3781:2: ( 'val' )
                     {
-                    // InternalChartDSL.g:3740:2: ( 'val' )
-                    // InternalChartDSL.g:3741:3: 'val'
+                    // InternalChartDSL.g:3781:2: ( 'val' )
+                    // InternalChartDSL.g:3782:3: 'val'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
@@ -13705,13 +13858,13 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_2"
-    // InternalChartDSL.g:3750:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
+    // InternalChartDSL.g:3791:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
     public final void rule__XVariableDeclaration__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3754:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
+            // InternalChartDSL.g:3795:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
             int alt38=2;
             int LA38_0 = input.LA(1);
 
@@ -13732,7 +13885,7 @@
                     throw nvae;
                 }
             }
-            else if ( (LA38_0==31||LA38_0==97) ) {
+            else if ( (LA38_0==31||LA38_0==112) ) {
                 alt38=1;
             }
             else {
@@ -13744,16 +13897,16 @@
             }
             switch (alt38) {
                 case 1 :
-                    // InternalChartDSL.g:3755:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalChartDSL.g:3796:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalChartDSL.g:3755:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-                    // InternalChartDSL.g:3756:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalChartDSL.g:3796:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalChartDSL.g:3797:3: ( rule__XVariableDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalChartDSL.g:3757:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-                    // InternalChartDSL.g:3757:4: rule__XVariableDeclaration__Group_2_0__0
+                    // InternalChartDSL.g:3798:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalChartDSL.g:3798:4: rule__XVariableDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_2_0__0();
@@ -13773,16 +13926,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3761:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalChartDSL.g:3802:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
                     {
-                    // InternalChartDSL.g:3761:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
-                    // InternalChartDSL.g:3762:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalChartDSL.g:3802:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalChartDSL.g:3803:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); 
                     }
-                    // InternalChartDSL.g:3763:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
-                    // InternalChartDSL.g:3763:4: rule__XVariableDeclaration__NameAssignment_2_1
+                    // InternalChartDSL.g:3804:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalChartDSL.g:3804:4: rule__XVariableDeclaration__NameAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__NameAssignment_2_1();
@@ -13819,27 +13972,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Alternatives_3_1"
-    // InternalChartDSL.g:3771:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
+    // InternalChartDSL.g:3812:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
     public final void rule__XFeatureCall__Alternatives_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3775:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
+            // InternalChartDSL.g:3816:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
             int alt39=2;
             alt39 = dfa39.predict(input);
             switch (alt39) {
                 case 1 :
-                    // InternalChartDSL.g:3776:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalChartDSL.g:3817:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
                     {
-                    // InternalChartDSL.g:3776:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-                    // InternalChartDSL.g:3777:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalChartDSL.g:3817:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalChartDSL.g:3818:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
                     }
-                    // InternalChartDSL.g:3778:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-                    // InternalChartDSL.g:3778:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+                    // InternalChartDSL.g:3819:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalChartDSL.g:3819:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -13859,16 +14012,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3782:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalChartDSL.g:3823:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
                     {
-                    // InternalChartDSL.g:3782:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
-                    // InternalChartDSL.g:3783:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalChartDSL.g:3823:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalChartDSL.g:3824:3: ( rule__XFeatureCall__Group_3_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); 
                     }
-                    // InternalChartDSL.g:3784:3: ( rule__XFeatureCall__Group_3_1_1__0 )
-                    // InternalChartDSL.g:3784:4: rule__XFeatureCall__Group_3_1_1__0
+                    // InternalChartDSL.g:3825:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalChartDSL.g:3825:4: rule__XFeatureCall__Group_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3_1_1__0();
@@ -13905,13 +14058,13 @@
 
 
     // $ANTLR start "rule__FeatureCallID__Alternatives"
-    // InternalChartDSL.g:3792:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
+    // InternalChartDSL.g:3833:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
     public final void rule__FeatureCallID__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3796:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
+            // InternalChartDSL.g:3837:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
             int alt40=5;
             switch ( input.LA(1) ) {
             case RULE_ID:
@@ -13949,10 +14102,10 @@
 
             switch (alt40) {
                 case 1 :
-                    // InternalChartDSL.g:3797:2: ( ruleValidID )
+                    // InternalChartDSL.g:3838:2: ( ruleValidID )
                     {
-                    // InternalChartDSL.g:3797:2: ( ruleValidID )
-                    // InternalChartDSL.g:3798:3: ruleValidID
+                    // InternalChartDSL.g:3838:2: ( ruleValidID )
+                    // InternalChartDSL.g:3839:3: ruleValidID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
@@ -13972,10 +14125,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3803:2: ( 'extends' )
+                    // InternalChartDSL.g:3844:2: ( 'extends' )
                     {
-                    // InternalChartDSL.g:3803:2: ( 'extends' )
-                    // InternalChartDSL.g:3804:3: 'extends'
+                    // InternalChartDSL.g:3844:2: ( 'extends' )
+                    // InternalChartDSL.g:3845:3: 'extends'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
@@ -13991,10 +14144,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3809:2: ( 'static' )
+                    // InternalChartDSL.g:3850:2: ( 'static' )
                     {
-                    // InternalChartDSL.g:3809:2: ( 'static' )
-                    // InternalChartDSL.g:3810:3: 'static'
+                    // InternalChartDSL.g:3850:2: ( 'static' )
+                    // InternalChartDSL.g:3851:3: 'static'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
@@ -14010,10 +14163,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:3815:2: ( 'import' )
+                    // InternalChartDSL.g:3856:2: ( 'import' )
                     {
-                    // InternalChartDSL.g:3815:2: ( 'import' )
-                    // InternalChartDSL.g:3816:3: 'import'
+                    // InternalChartDSL.g:3856:2: ( 'import' )
+                    // InternalChartDSL.g:3857:3: 'import'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
@@ -14029,10 +14182,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:3821:2: ( 'extension' )
+                    // InternalChartDSL.g:3862:2: ( 'extension' )
                     {
-                    // InternalChartDSL.g:3821:2: ( 'extension' )
-                    // InternalChartDSL.g:3822:3: 'extension'
+                    // InternalChartDSL.g:3862:2: ( 'extension' )
+                    // InternalChartDSL.g:3863:3: 'extension'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
@@ -14065,13 +14218,13 @@
 
 
     // $ANTLR start "rule__IdOrSuper__Alternatives"
-    // InternalChartDSL.g:3831:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
+    // InternalChartDSL.g:3872:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
     public final void rule__IdOrSuper__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3835:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
+            // InternalChartDSL.g:3876:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
             int alt41=2;
             int LA41_0 = input.LA(1);
 
@@ -14090,10 +14243,10 @@
             }
             switch (alt41) {
                 case 1 :
-                    // InternalChartDSL.g:3836:2: ( ruleFeatureCallID )
+                    // InternalChartDSL.g:3877:2: ( ruleFeatureCallID )
                     {
-                    // InternalChartDSL.g:3836:2: ( ruleFeatureCallID )
-                    // InternalChartDSL.g:3837:3: ruleFeatureCallID
+                    // InternalChartDSL.g:3877:2: ( ruleFeatureCallID )
+                    // InternalChartDSL.g:3878:3: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
@@ -14113,10 +14266,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3842:2: ( 'super' )
+                    // InternalChartDSL.g:3883:2: ( 'super' )
                     {
-                    // InternalChartDSL.g:3842:2: ( 'super' )
-                    // InternalChartDSL.g:3843:3: 'super'
+                    // InternalChartDSL.g:3883:2: ( 'super' )
+                    // InternalChartDSL.g:3884:3: 'super'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
@@ -14149,27 +14302,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Alternatives_4_1"
-    // InternalChartDSL.g:3852:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
+    // InternalChartDSL.g:3893:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
     public final void rule__XConstructorCall__Alternatives_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3856:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
+            // InternalChartDSL.g:3897:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
             int alt42=2;
             alt42 = dfa42.predict(input);
             switch (alt42) {
                 case 1 :
-                    // InternalChartDSL.g:3857:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalChartDSL.g:3898:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
                     {
-                    // InternalChartDSL.g:3857:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-                    // InternalChartDSL.g:3858:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalChartDSL.g:3898:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalChartDSL.g:3899:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
                     }
-                    // InternalChartDSL.g:3859:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-                    // InternalChartDSL.g:3859:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+                    // InternalChartDSL.g:3900:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalChartDSL.g:3900:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -14189,16 +14342,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3863:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalChartDSL.g:3904:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
                     {
-                    // InternalChartDSL.g:3863:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
-                    // InternalChartDSL.g:3864:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalChartDSL.g:3904:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalChartDSL.g:3905:3: ( rule__XConstructorCall__Group_4_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); 
                     }
-                    // InternalChartDSL.g:3865:3: ( rule__XConstructorCall__Group_4_1_1__0 )
-                    // InternalChartDSL.g:3865:4: rule__XConstructorCall__Group_4_1_1__0
+                    // InternalChartDSL.g:3906:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalChartDSL.g:3906:4: rule__XConstructorCall__Group_4_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4_1_1__0();
@@ -14235,20 +14388,20 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Alternatives_1"
-    // InternalChartDSL.g:3873:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
+    // InternalChartDSL.g:3914:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
     public final void rule__XBooleanLiteral__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3877:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
+            // InternalChartDSL.g:3918:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
             int alt43=2;
             int LA43_0 = input.LA(1);
 
             if ( (LA43_0==50) ) {
                 alt43=1;
             }
-            else if ( (LA43_0==154) ) {
+            else if ( (LA43_0==171) ) {
                 alt43=2;
             }
             else {
@@ -14260,10 +14413,10 @@
             }
             switch (alt43) {
                 case 1 :
-                    // InternalChartDSL.g:3878:2: ( 'false' )
+                    // InternalChartDSL.g:3919:2: ( 'false' )
                     {
-                    // InternalChartDSL.g:3878:2: ( 'false' )
-                    // InternalChartDSL.g:3879:3: 'false'
+                    // InternalChartDSL.g:3919:2: ( 'false' )
+                    // InternalChartDSL.g:3920:3: 'false'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
@@ -14279,16 +14432,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3884:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalChartDSL.g:3925:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
                     {
-                    // InternalChartDSL.g:3884:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
-                    // InternalChartDSL.g:3885:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalChartDSL.g:3925:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalChartDSL.g:3926:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); 
                     }
-                    // InternalChartDSL.g:3886:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
-                    // InternalChartDSL.g:3886:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
+                    // InternalChartDSL.g:3927:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalChartDSL.g:3927:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBooleanLiteral__IsTrueAssignment_1_1();
@@ -14325,20 +14478,20 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Alternatives_3"
-    // InternalChartDSL.g:3894:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
+    // InternalChartDSL.g:3935:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
     public final void rule__XTryCatchFinallyExpression__Alternatives_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3898:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
+            // InternalChartDSL.g:3939:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
             int alt44=2;
             int LA44_0 = input.LA(1);
 
-            if ( (LA44_0==121) ) {
+            if ( (LA44_0==136) ) {
                 alt44=1;
             }
-            else if ( (LA44_0==119) ) {
+            else if ( (LA44_0==134) ) {
                 alt44=2;
             }
             else {
@@ -14350,16 +14503,16 @@
             }
             switch (alt44) {
                 case 1 :
-                    // InternalChartDSL.g:3899:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalChartDSL.g:3940:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
                     {
-                    // InternalChartDSL.g:3899:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
-                    // InternalChartDSL.g:3900:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalChartDSL.g:3940:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalChartDSL.g:3941:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); 
                     }
-                    // InternalChartDSL.g:3901:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
-                    // InternalChartDSL.g:3901:4: rule__XTryCatchFinallyExpression__Group_3_0__0
+                    // InternalChartDSL.g:3942:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalChartDSL.g:3942:4: rule__XTryCatchFinallyExpression__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0__0();
@@ -14379,16 +14532,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3905:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalChartDSL.g:3946:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
                     {
-                    // InternalChartDSL.g:3905:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
-                    // InternalChartDSL.g:3906:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalChartDSL.g:3946:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalChartDSL.g:3947:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); 
                     }
-                    // InternalChartDSL.g:3907:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
-                    // InternalChartDSL.g:3907:4: rule__XTryCatchFinallyExpression__Group_3_1__0
+                    // InternalChartDSL.g:3948:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalChartDSL.g:3948:4: rule__XTryCatchFinallyExpression__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_1__0();
@@ -14425,13 +14578,13 @@
 
 
     // $ANTLR start "rule__Number__Alternatives"
-    // InternalChartDSL.g:3915:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
+    // InternalChartDSL.g:3956:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
     public final void rule__Number__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3919:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
+            // InternalChartDSL.g:3960:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
             int alt45=2;
             int LA45_0 = input.LA(1);
 
@@ -14450,10 +14603,10 @@
             }
             switch (alt45) {
                 case 1 :
-                    // InternalChartDSL.g:3920:2: ( RULE_HEX )
+                    // InternalChartDSL.g:3961:2: ( RULE_HEX )
                     {
-                    // InternalChartDSL.g:3920:2: ( RULE_HEX )
-                    // InternalChartDSL.g:3921:3: RULE_HEX
+                    // InternalChartDSL.g:3961:2: ( RULE_HEX )
+                    // InternalChartDSL.g:3962:3: RULE_HEX
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
@@ -14469,16 +14622,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3926:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalChartDSL.g:3967:2: ( ( rule__Number__Group_1__0 ) )
                     {
-                    // InternalChartDSL.g:3926:2: ( ( rule__Number__Group_1__0 ) )
-                    // InternalChartDSL.g:3927:3: ( rule__Number__Group_1__0 )
+                    // InternalChartDSL.g:3967:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalChartDSL.g:3968:3: ( rule__Number__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getGroup_1()); 
                     }
-                    // InternalChartDSL.g:3928:3: ( rule__Number__Group_1__0 )
-                    // InternalChartDSL.g:3928:4: rule__Number__Group_1__0
+                    // InternalChartDSL.g:3969:3: ( rule__Number__Group_1__0 )
+                    // InternalChartDSL.g:3969:4: rule__Number__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1__0();
@@ -14515,13 +14668,13 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_0"
-    // InternalChartDSL.g:3936:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalChartDSL.g:3977:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
     public final void rule__Number__Alternatives_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3940:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            // InternalChartDSL.g:3981:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
             int alt46=2;
             int LA46_0 = input.LA(1);
 
@@ -14540,10 +14693,10 @@
             }
             switch (alt46) {
                 case 1 :
-                    // InternalChartDSL.g:3941:2: ( RULE_INT )
+                    // InternalChartDSL.g:3982:2: ( RULE_INT )
                     {
-                    // InternalChartDSL.g:3941:2: ( RULE_INT )
-                    // InternalChartDSL.g:3942:3: RULE_INT
+                    // InternalChartDSL.g:3982:2: ( RULE_INT )
+                    // InternalChartDSL.g:3983:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
@@ -14559,10 +14712,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3947:2: ( RULE_DECIMAL )
+                    // InternalChartDSL.g:3988:2: ( RULE_DECIMAL )
                     {
-                    // InternalChartDSL.g:3947:2: ( RULE_DECIMAL )
-                    // InternalChartDSL.g:3948:3: RULE_DECIMAL
+                    // InternalChartDSL.g:3988:2: ( RULE_DECIMAL )
+                    // InternalChartDSL.g:3989:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
@@ -14595,13 +14748,13 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_1_1"
-    // InternalChartDSL.g:3957:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalChartDSL.g:3998:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
     public final void rule__Number__Alternatives_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3961:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            // InternalChartDSL.g:4002:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
             int alt47=2;
             int LA47_0 = input.LA(1);
 
@@ -14620,10 +14773,10 @@
             }
             switch (alt47) {
                 case 1 :
-                    // InternalChartDSL.g:3962:2: ( RULE_INT )
+                    // InternalChartDSL.g:4003:2: ( RULE_INT )
                     {
-                    // InternalChartDSL.g:3962:2: ( RULE_INT )
-                    // InternalChartDSL.g:3963:3: RULE_INT
+                    // InternalChartDSL.g:4003:2: ( RULE_INT )
+                    // InternalChartDSL.g:4004:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
@@ -14639,10 +14792,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3968:2: ( RULE_DECIMAL )
+                    // InternalChartDSL.g:4009:2: ( RULE_DECIMAL )
                     {
-                    // InternalChartDSL.g:3968:2: ( RULE_DECIMAL )
-                    // InternalChartDSL.g:3969:3: RULE_DECIMAL
+                    // InternalChartDSL.g:4009:2: ( RULE_DECIMAL )
+                    // InternalChartDSL.g:4010:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
@@ -14675,20 +14828,20 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Alternatives"
-    // InternalChartDSL.g:3978:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
+    // InternalChartDSL.g:4019:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
     public final void rule__JvmTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:3982:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
+            // InternalChartDSL.g:4023:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
             int alt48=2;
             int LA48_0 = input.LA(1);
 
             if ( (LA48_0==RULE_ID) ) {
                 alt48=1;
             }
-            else if ( (LA48_0==31||LA48_0==97) ) {
+            else if ( (LA48_0==31||LA48_0==112) ) {
                 alt48=2;
             }
             else {
@@ -14700,16 +14853,16 @@
             }
             switch (alt48) {
                 case 1 :
-                    // InternalChartDSL.g:3983:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalChartDSL.g:4024:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
                     {
-                    // InternalChartDSL.g:3983:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
-                    // InternalChartDSL.g:3984:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalChartDSL.g:4024:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalChartDSL.g:4025:3: ( rule__JvmTypeReference__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); 
                     }
-                    // InternalChartDSL.g:3985:3: ( rule__JvmTypeReference__Group_0__0 )
-                    // InternalChartDSL.g:3985:4: rule__JvmTypeReference__Group_0__0
+                    // InternalChartDSL.g:4026:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalChartDSL.g:4026:4: rule__JvmTypeReference__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmTypeReference__Group_0__0();
@@ -14729,10 +14882,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3989:2: ( ruleXFunctionTypeRef )
+                    // InternalChartDSL.g:4030:2: ( ruleXFunctionTypeRef )
                     {
-                    // InternalChartDSL.g:3989:2: ( ruleXFunctionTypeRef )
-                    // InternalChartDSL.g:3990:3: ruleXFunctionTypeRef
+                    // InternalChartDSL.g:4030:2: ( ruleXFunctionTypeRef )
+                    // InternalChartDSL.g:4031:3: ruleXFunctionTypeRef
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
@@ -14769,20 +14922,20 @@
 
 
     // $ANTLR start "rule__JvmArgumentTypeReference__Alternatives"
-    // InternalChartDSL.g:3999:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
+    // InternalChartDSL.g:4040:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
     public final void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4003:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
+            // InternalChartDSL.g:4044:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
             int alt49=2;
             int LA49_0 = input.LA(1);
 
-            if ( (LA49_0==RULE_ID||LA49_0==31||LA49_0==97) ) {
+            if ( (LA49_0==RULE_ID||LA49_0==31||LA49_0==112) ) {
                 alt49=1;
             }
-            else if ( (LA49_0==122) ) {
+            else if ( (LA49_0==137) ) {
                 alt49=2;
             }
             else {
@@ -14794,10 +14947,10 @@
             }
             switch (alt49) {
                 case 1 :
-                    // InternalChartDSL.g:4004:2: ( ruleJvmTypeReference )
+                    // InternalChartDSL.g:4045:2: ( ruleJvmTypeReference )
                     {
-                    // InternalChartDSL.g:4004:2: ( ruleJvmTypeReference )
-                    // InternalChartDSL.g:4005:3: ruleJvmTypeReference
+                    // InternalChartDSL.g:4045:2: ( ruleJvmTypeReference )
+                    // InternalChartDSL.g:4046:3: ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
@@ -14817,10 +14970,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:4010:2: ( ruleJvmWildcardTypeReference )
+                    // InternalChartDSL.g:4051:2: ( ruleJvmWildcardTypeReference )
                     {
-                    // InternalChartDSL.g:4010:2: ( ruleJvmWildcardTypeReference )
-                    // InternalChartDSL.g:4011:3: ruleJvmWildcardTypeReference
+                    // InternalChartDSL.g:4051:2: ( ruleJvmWildcardTypeReference )
+                    // InternalChartDSL.g:4052:3: ruleJvmWildcardTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
@@ -14857,13 +15010,13 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Alternatives_2"
-    // InternalChartDSL.g:4020:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) );
+    // InternalChartDSL.g:4061:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) );
     public final void rule__JvmWildcardTypeReference__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4024:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
+            // InternalChartDSL.g:4065:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
             int alt50=2;
             int LA50_0 = input.LA(1);
 
@@ -14882,16 +15035,16 @@
             }
             switch (alt50) {
                 case 1 :
-                    // InternalChartDSL.g:4025:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalChartDSL.g:4066:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
                     {
-                    // InternalChartDSL.g:4025:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
-                    // InternalChartDSL.g:4026:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalChartDSL.g:4066:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalChartDSL.g:4067:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); 
                     }
-                    // InternalChartDSL.g:4027:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
-                    // InternalChartDSL.g:4027:4: rule__JvmWildcardTypeReference__Group_2_0__0
+                    // InternalChartDSL.g:4068:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalChartDSL.g:4068:4: rule__JvmWildcardTypeReference__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_0__0();
@@ -14911,16 +15064,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:4031:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalChartDSL.g:4072:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
                     {
-                    // InternalChartDSL.g:4031:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
-                    // InternalChartDSL.g:4032:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalChartDSL.g:4072:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalChartDSL.g:4073:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); 
                     }
-                    // InternalChartDSL.g:4033:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
-                    // InternalChartDSL.g:4033:4: rule__JvmWildcardTypeReference__Group_2_1__0
+                    // InternalChartDSL.g:4074:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalChartDSL.g:4074:4: rule__JvmWildcardTypeReference__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_1__0();
@@ -14957,13 +15110,13 @@
 
 
     // $ANTLR start "rule__LegendPlacementEnum__Alternatives"
-    // InternalChartDSL.g:4041:1: rule__LegendPlacementEnum__Alternatives : ( ( ( 'inside' ) ) | ( ( 'inside-grid' ) ) | ( ( 'outside' ) ) | ( ( 'outside-grid' ) ) );
+    // InternalChartDSL.g:4082:1: rule__LegendPlacementEnum__Alternatives : ( ( ( 'inside' ) ) | ( ( 'inside-grid' ) ) | ( ( 'outside' ) ) | ( ( 'outside-grid' ) ) );
     public final void rule__LegendPlacementEnum__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4045:1: ( ( ( 'inside' ) ) | ( ( 'inside-grid' ) ) | ( ( 'outside' ) ) | ( ( 'outside-grid' ) ) )
+            // InternalChartDSL.g:4086:1: ( ( ( 'inside' ) ) | ( ( 'inside-grid' ) ) | ( ( 'outside' ) ) | ( ( 'outside-grid' ) ) )
             int alt51=4;
             switch ( input.LA(1) ) {
             case 51:
@@ -14996,16 +15149,16 @@
 
             switch (alt51) {
                 case 1 :
-                    // InternalChartDSL.g:4046:2: ( ( 'inside' ) )
+                    // InternalChartDSL.g:4087:2: ( ( 'inside' ) )
                     {
-                    // InternalChartDSL.g:4046:2: ( ( 'inside' ) )
-                    // InternalChartDSL.g:4047:3: ( 'inside' )
+                    // InternalChartDSL.g:4087:2: ( ( 'inside' ) )
+                    // InternalChartDSL.g:4088:3: ( 'inside' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLegendPlacementEnumAccess().getINSIDEEnumLiteralDeclaration_0()); 
                     }
-                    // InternalChartDSL.g:4048:3: ( 'inside' )
-                    // InternalChartDSL.g:4048:4: 'inside'
+                    // InternalChartDSL.g:4089:3: ( 'inside' )
+                    // InternalChartDSL.g:4089:4: 'inside'
                     {
                     match(input,51,FOLLOW_2); if (state.failed) return ;
 
@@ -15021,16 +15174,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:4052:2: ( ( 'inside-grid' ) )
+                    // InternalChartDSL.g:4093:2: ( ( 'inside-grid' ) )
                     {
-                    // InternalChartDSL.g:4052:2: ( ( 'inside-grid' ) )
-                    // InternalChartDSL.g:4053:3: ( 'inside-grid' )
+                    // InternalChartDSL.g:4093:2: ( ( 'inside-grid' ) )
+                    // InternalChartDSL.g:4094:3: ( 'inside-grid' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLegendPlacementEnumAccess().getINSIDE_GRIDEnumLiteralDeclaration_1()); 
                     }
-                    // InternalChartDSL.g:4054:3: ( 'inside-grid' )
-                    // InternalChartDSL.g:4054:4: 'inside-grid'
+                    // InternalChartDSL.g:4095:3: ( 'inside-grid' )
+                    // InternalChartDSL.g:4095:4: 'inside-grid'
                     {
                     match(input,52,FOLLOW_2); if (state.failed) return ;
 
@@ -15046,16 +15199,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:4058:2: ( ( 'outside' ) )
+                    // InternalChartDSL.g:4099:2: ( ( 'outside' ) )
                     {
-                    // InternalChartDSL.g:4058:2: ( ( 'outside' ) )
-                    // InternalChartDSL.g:4059:3: ( 'outside' )
+                    // InternalChartDSL.g:4099:2: ( ( 'outside' ) )
+                    // InternalChartDSL.g:4100:3: ( 'outside' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLegendPlacementEnumAccess().getOUTSIDEEnumLiteralDeclaration_2()); 
                     }
-                    // InternalChartDSL.g:4060:3: ( 'outside' )
-                    // InternalChartDSL.g:4060:4: 'outside'
+                    // InternalChartDSL.g:4101:3: ( 'outside' )
+                    // InternalChartDSL.g:4101:4: 'outside'
                     {
                     match(input,53,FOLLOW_2); if (state.failed) return ;
 
@@ -15071,16 +15224,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:4064:2: ( ( 'outside-grid' ) )
+                    // InternalChartDSL.g:4105:2: ( ( 'outside-grid' ) )
                     {
-                    // InternalChartDSL.g:4064:2: ( ( 'outside-grid' ) )
-                    // InternalChartDSL.g:4065:3: ( 'outside-grid' )
+                    // InternalChartDSL.g:4105:2: ( ( 'outside-grid' ) )
+                    // InternalChartDSL.g:4106:3: ( 'outside-grid' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLegendPlacementEnumAccess().getOUTSIDE_GRIDEnumLiteralDeclaration_3()); 
                     }
-                    // InternalChartDSL.g:4066:3: ( 'outside-grid' )
-                    // InternalChartDSL.g:4066:4: 'outside-grid'
+                    // InternalChartDSL.g:4107:3: ( 'outside-grid' )
+                    // InternalChartDSL.g:4107:4: 'outside-grid'
                     {
                     match(input,54,FOLLOW_2); if (state.failed) return ;
 
@@ -15113,13 +15266,13 @@
 
 
     // $ANTLR start "rule__ToggleTypeEnum__Alternatives"
-    // InternalChartDSL.g:4074:1: rule__ToggleTypeEnum__Alternatives : ( ( ( 'normal' ) ) | ( ( 'slow' ) ) | ( ( 'fast' ) ) );
+    // InternalChartDSL.g:4115:1: rule__ToggleTypeEnum__Alternatives : ( ( ( 'normal' ) ) | ( ( 'slow' ) ) | ( ( 'fast' ) ) );
     public final void rule__ToggleTypeEnum__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4078:1: ( ( ( 'normal' ) ) | ( ( 'slow' ) ) | ( ( 'fast' ) ) )
+            // InternalChartDSL.g:4119:1: ( ( ( 'normal' ) ) | ( ( 'slow' ) ) | ( ( 'fast' ) ) )
             int alt52=3;
             switch ( input.LA(1) ) {
             case 55:
@@ -15147,16 +15300,16 @@
 
             switch (alt52) {
                 case 1 :
-                    // InternalChartDSL.g:4079:2: ( ( 'normal' ) )
+                    // InternalChartDSL.g:4120:2: ( ( 'normal' ) )
                     {
-                    // InternalChartDSL.g:4079:2: ( ( 'normal' ) )
-                    // InternalChartDSL.g:4080:3: ( 'normal' )
+                    // InternalChartDSL.g:4120:2: ( ( 'normal' ) )
+                    // InternalChartDSL.g:4121:3: ( 'normal' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getToggleTypeEnumAccess().getNORMALEnumLiteralDeclaration_0()); 
                     }
-                    // InternalChartDSL.g:4081:3: ( 'normal' )
-                    // InternalChartDSL.g:4081:4: 'normal'
+                    // InternalChartDSL.g:4122:3: ( 'normal' )
+                    // InternalChartDSL.g:4122:4: 'normal'
                     {
                     match(input,55,FOLLOW_2); if (state.failed) return ;
 
@@ -15172,16 +15325,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:4085:2: ( ( 'slow' ) )
+                    // InternalChartDSL.g:4126:2: ( ( 'slow' ) )
                     {
-                    // InternalChartDSL.g:4085:2: ( ( 'slow' ) )
-                    // InternalChartDSL.g:4086:3: ( 'slow' )
+                    // InternalChartDSL.g:4126:2: ( ( 'slow' ) )
+                    // InternalChartDSL.g:4127:3: ( 'slow' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getToggleTypeEnumAccess().getSLOWEnumLiteralDeclaration_1()); 
                     }
-                    // InternalChartDSL.g:4087:3: ( 'slow' )
-                    // InternalChartDSL.g:4087:4: 'slow'
+                    // InternalChartDSL.g:4128:3: ( 'slow' )
+                    // InternalChartDSL.g:4128:4: 'slow'
                     {
                     match(input,56,FOLLOW_2); if (state.failed) return ;
 
@@ -15197,16 +15350,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:4091:2: ( ( 'fast' ) )
+                    // InternalChartDSL.g:4132:2: ( ( 'fast' ) )
                     {
-                    // InternalChartDSL.g:4091:2: ( ( 'fast' ) )
-                    // InternalChartDSL.g:4092:3: ( 'fast' )
+                    // InternalChartDSL.g:4132:2: ( ( 'fast' ) )
+                    // InternalChartDSL.g:4133:3: ( 'fast' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getToggleTypeEnumAccess().getFASTEnumLiteralDeclaration_2()); 
                     }
-                    // InternalChartDSL.g:4093:3: ( 'fast' )
-                    // InternalChartDSL.g:4093:4: 'fast'
+                    // InternalChartDSL.g:4134:3: ( 'fast' )
+                    // InternalChartDSL.g:4134:4: 'fast'
                     {
                     match(input,57,FOLLOW_2); if (state.failed) return ;
 
@@ -15239,13 +15392,13 @@
 
 
     // $ANTLR start "rule__TooltipLocationEnum__Alternatives"
-    // InternalChartDSL.g:4101:1: rule__TooltipLocationEnum__Alternatives : ( ( ( 'north' ) ) | ( ( 'north-east' ) ) | ( ( 'east' ) ) | ( ( 'south-east' ) ) | ( ( 'south' ) ) | ( ( 'south-west' ) ) | ( ( 'west' ) ) | ( ( 'north-west' ) ) );
+    // InternalChartDSL.g:4142:1: rule__TooltipLocationEnum__Alternatives : ( ( ( 'north' ) ) | ( ( 'north-east' ) ) | ( ( 'east' ) ) | ( ( 'south-east' ) ) | ( ( 'south' ) ) | ( ( 'south-west' ) ) | ( ( 'west' ) ) | ( ( 'north-west' ) ) );
     public final void rule__TooltipLocationEnum__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4105:1: ( ( ( 'north' ) ) | ( ( 'north-east' ) ) | ( ( 'east' ) ) | ( ( 'south-east' ) ) | ( ( 'south' ) ) | ( ( 'south-west' ) ) | ( ( 'west' ) ) | ( ( 'north-west' ) ) )
+            // InternalChartDSL.g:4146:1: ( ( ( 'north' ) ) | ( ( 'north-east' ) ) | ( ( 'east' ) ) | ( ( 'south-east' ) ) | ( ( 'south' ) ) | ( ( 'south-west' ) ) | ( ( 'west' ) ) | ( ( 'north-west' ) ) )
             int alt53=8;
             switch ( input.LA(1) ) {
             case 58:
@@ -15298,16 +15451,16 @@
 
             switch (alt53) {
                 case 1 :
-                    // InternalChartDSL.g:4106:2: ( ( 'north' ) )
+                    // InternalChartDSL.g:4147:2: ( ( 'north' ) )
                     {
-                    // InternalChartDSL.g:4106:2: ( ( 'north' ) )
-                    // InternalChartDSL.g:4107:3: ( 'north' )
+                    // InternalChartDSL.g:4147:2: ( ( 'north' ) )
+                    // InternalChartDSL.g:4148:3: ( 'north' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTooltipLocationEnumAccess().getNORTHEnumLiteralDeclaration_0()); 
                     }
-                    // InternalChartDSL.g:4108:3: ( 'north' )
-                    // InternalChartDSL.g:4108:4: 'north'
+                    // InternalChartDSL.g:4149:3: ( 'north' )
+                    // InternalChartDSL.g:4149:4: 'north'
                     {
                     match(input,58,FOLLOW_2); if (state.failed) return ;
 
@@ -15323,16 +15476,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:4112:2: ( ( 'north-east' ) )
+                    // InternalChartDSL.g:4153:2: ( ( 'north-east' ) )
                     {
-                    // InternalChartDSL.g:4112:2: ( ( 'north-east' ) )
-                    // InternalChartDSL.g:4113:3: ( 'north-east' )
+                    // InternalChartDSL.g:4153:2: ( ( 'north-east' ) )
+                    // InternalChartDSL.g:4154:3: ( 'north-east' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTooltipLocationEnumAccess().getNORTH_EASTEnumLiteralDeclaration_1()); 
                     }
-                    // InternalChartDSL.g:4114:3: ( 'north-east' )
-                    // InternalChartDSL.g:4114:4: 'north-east'
+                    // InternalChartDSL.g:4155:3: ( 'north-east' )
+                    // InternalChartDSL.g:4155:4: 'north-east'
                     {
                     match(input,59,FOLLOW_2); if (state.failed) return ;
 
@@ -15348,16 +15501,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:4118:2: ( ( 'east' ) )
+                    // InternalChartDSL.g:4159:2: ( ( 'east' ) )
                     {
-                    // InternalChartDSL.g:4118:2: ( ( 'east' ) )
-                    // InternalChartDSL.g:4119:3: ( 'east' )
+                    // InternalChartDSL.g:4159:2: ( ( 'east' ) )
+                    // InternalChartDSL.g:4160:3: ( 'east' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTooltipLocationEnumAccess().getEASTEnumLiteralDeclaration_2()); 
                     }
-                    // InternalChartDSL.g:4120:3: ( 'east' )
-                    // InternalChartDSL.g:4120:4: 'east'
+                    // InternalChartDSL.g:4161:3: ( 'east' )
+                    // InternalChartDSL.g:4161:4: 'east'
                     {
                     match(input,60,FOLLOW_2); if (state.failed) return ;
 
@@ -15373,16 +15526,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:4124:2: ( ( 'south-east' ) )
+                    // InternalChartDSL.g:4165:2: ( ( 'south-east' ) )
                     {
-                    // InternalChartDSL.g:4124:2: ( ( 'south-east' ) )
-                    // InternalChartDSL.g:4125:3: ( 'south-east' )
+                    // InternalChartDSL.g:4165:2: ( ( 'south-east' ) )
+                    // InternalChartDSL.g:4166:3: ( 'south-east' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTooltipLocationEnumAccess().getSOUTH_EASTEnumLiteralDeclaration_3()); 
                     }
-                    // InternalChartDSL.g:4126:3: ( 'south-east' )
-                    // InternalChartDSL.g:4126:4: 'south-east'
+                    // InternalChartDSL.g:4167:3: ( 'south-east' )
+                    // InternalChartDSL.g:4167:4: 'south-east'
                     {
                     match(input,61,FOLLOW_2); if (state.failed) return ;
 
@@ -15398,16 +15551,16 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:4130:2: ( ( 'south' ) )
+                    // InternalChartDSL.g:4171:2: ( ( 'south' ) )
                     {
-                    // InternalChartDSL.g:4130:2: ( ( 'south' ) )
-                    // InternalChartDSL.g:4131:3: ( 'south' )
+                    // InternalChartDSL.g:4171:2: ( ( 'south' ) )
+                    // InternalChartDSL.g:4172:3: ( 'south' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTooltipLocationEnumAccess().getSOUTHEnumLiteralDeclaration_4()); 
                     }
-                    // InternalChartDSL.g:4132:3: ( 'south' )
-                    // InternalChartDSL.g:4132:4: 'south'
+                    // InternalChartDSL.g:4173:3: ( 'south' )
+                    // InternalChartDSL.g:4173:4: 'south'
                     {
                     match(input,62,FOLLOW_2); if (state.failed) return ;
 
@@ -15423,16 +15576,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:4136:2: ( ( 'south-west' ) )
+                    // InternalChartDSL.g:4177:2: ( ( 'south-west' ) )
                     {
-                    // InternalChartDSL.g:4136:2: ( ( 'south-west' ) )
-                    // InternalChartDSL.g:4137:3: ( 'south-west' )
+                    // InternalChartDSL.g:4177:2: ( ( 'south-west' ) )
+                    // InternalChartDSL.g:4178:3: ( 'south-west' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTooltipLocationEnumAccess().getSOUTH_WESTEnumLiteralDeclaration_5()); 
                     }
-                    // InternalChartDSL.g:4138:3: ( 'south-west' )
-                    // InternalChartDSL.g:4138:4: 'south-west'
+                    // InternalChartDSL.g:4179:3: ( 'south-west' )
+                    // InternalChartDSL.g:4179:4: 'south-west'
                     {
                     match(input,63,FOLLOW_2); if (state.failed) return ;
 
@@ -15448,16 +15601,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalChartDSL.g:4142:2: ( ( 'west' ) )
+                    // InternalChartDSL.g:4183:2: ( ( 'west' ) )
                     {
-                    // InternalChartDSL.g:4142:2: ( ( 'west' ) )
-                    // InternalChartDSL.g:4143:3: ( 'west' )
+                    // InternalChartDSL.g:4183:2: ( ( 'west' ) )
+                    // InternalChartDSL.g:4184:3: ( 'west' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTooltipLocationEnumAccess().getWESTEnumLiteralDeclaration_6()); 
                     }
-                    // InternalChartDSL.g:4144:3: ( 'west' )
-                    // InternalChartDSL.g:4144:4: 'west'
+                    // InternalChartDSL.g:4185:3: ( 'west' )
+                    // InternalChartDSL.g:4185:4: 'west'
                     {
                     match(input,64,FOLLOW_2); if (state.failed) return ;
 
@@ -15473,16 +15626,16 @@
                     }
                     break;
                 case 8 :
-                    // InternalChartDSL.g:4148:2: ( ( 'north-west' ) )
+                    // InternalChartDSL.g:4189:2: ( ( 'north-west' ) )
                     {
-                    // InternalChartDSL.g:4148:2: ( ( 'north-west' ) )
-                    // InternalChartDSL.g:4149:3: ( 'north-west' )
+                    // InternalChartDSL.g:4189:2: ( ( 'north-west' ) )
+                    // InternalChartDSL.g:4190:3: ( 'north-west' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTooltipLocationEnumAccess().getNORTH_WESTEnumLiteralDeclaration_7()); 
                     }
-                    // InternalChartDSL.g:4150:3: ( 'north-west' )
-                    // InternalChartDSL.g:4150:4: 'north-west'
+                    // InternalChartDSL.g:4191:3: ( 'north-west' )
+                    // InternalChartDSL.g:4191:4: 'north-west'
                     {
                     match(input,65,FOLLOW_2); if (state.failed) return ;
 
@@ -15515,13 +15668,13 @@
 
 
     // $ANTLR start "rule__RenderTypeEnum__Alternatives"
-    // InternalChartDSL.g:4158:1: rule__RenderTypeEnum__Alternatives : ( ( ( 'category' ) ) | ( ( 'linear' ) ) | ( ( 'date' ) ) | ( ( 'logarithmic' ) ) | ( ( 'pyramid' ) ) );
+    // InternalChartDSL.g:4199:1: rule__RenderTypeEnum__Alternatives : ( ( ( 'category' ) ) | ( ( 'linear' ) ) | ( ( 'date' ) ) | ( ( 'logarithmic' ) ) | ( ( 'pyramid' ) ) );
     public final void rule__RenderTypeEnum__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4162:1: ( ( ( 'category' ) ) | ( ( 'linear' ) ) | ( ( 'date' ) ) | ( ( 'logarithmic' ) ) | ( ( 'pyramid' ) ) )
+            // InternalChartDSL.g:4203:1: ( ( ( 'category' ) ) | ( ( 'linear' ) ) | ( ( 'date' ) ) | ( ( 'logarithmic' ) ) | ( ( 'pyramid' ) ) )
             int alt54=5;
             switch ( input.LA(1) ) {
             case 66:
@@ -15559,16 +15712,16 @@
 
             switch (alt54) {
                 case 1 :
-                    // InternalChartDSL.g:4163:2: ( ( 'category' ) )
+                    // InternalChartDSL.g:4204:2: ( ( 'category' ) )
                     {
-                    // InternalChartDSL.g:4163:2: ( ( 'category' ) )
-                    // InternalChartDSL.g:4164:3: ( 'category' )
+                    // InternalChartDSL.g:4204:2: ( ( 'category' ) )
+                    // InternalChartDSL.g:4205:3: ( 'category' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRenderTypeEnumAccess().getCATEGORYEnumLiteralDeclaration_0()); 
                     }
-                    // InternalChartDSL.g:4165:3: ( 'category' )
-                    // InternalChartDSL.g:4165:4: 'category'
+                    // InternalChartDSL.g:4206:3: ( 'category' )
+                    // InternalChartDSL.g:4206:4: 'category'
                     {
                     match(input,66,FOLLOW_2); if (state.failed) return ;
 
@@ -15584,16 +15737,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:4169:2: ( ( 'linear' ) )
+                    // InternalChartDSL.g:4210:2: ( ( 'linear' ) )
                     {
-                    // InternalChartDSL.g:4169:2: ( ( 'linear' ) )
-                    // InternalChartDSL.g:4170:3: ( 'linear' )
+                    // InternalChartDSL.g:4210:2: ( ( 'linear' ) )
+                    // InternalChartDSL.g:4211:3: ( 'linear' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRenderTypeEnumAccess().getLINEAREnumLiteralDeclaration_1()); 
                     }
-                    // InternalChartDSL.g:4171:3: ( 'linear' )
-                    // InternalChartDSL.g:4171:4: 'linear'
+                    // InternalChartDSL.g:4212:3: ( 'linear' )
+                    // InternalChartDSL.g:4212:4: 'linear'
                     {
                     match(input,67,FOLLOW_2); if (state.failed) return ;
 
@@ -15609,16 +15762,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:4175:2: ( ( 'date' ) )
+                    // InternalChartDSL.g:4216:2: ( ( 'date' ) )
                     {
-                    // InternalChartDSL.g:4175:2: ( ( 'date' ) )
-                    // InternalChartDSL.g:4176:3: ( 'date' )
+                    // InternalChartDSL.g:4216:2: ( ( 'date' ) )
+                    // InternalChartDSL.g:4217:3: ( 'date' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRenderTypeEnumAccess().getDATEEnumLiteralDeclaration_2()); 
                     }
-                    // InternalChartDSL.g:4177:3: ( 'date' )
-                    // InternalChartDSL.g:4177:4: 'date'
+                    // InternalChartDSL.g:4218:3: ( 'date' )
+                    // InternalChartDSL.g:4218:4: 'date'
                     {
                     match(input,68,FOLLOW_2); if (state.failed) return ;
 
@@ -15634,16 +15787,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:4181:2: ( ( 'logarithmic' ) )
+                    // InternalChartDSL.g:4222:2: ( ( 'logarithmic' ) )
                     {
-                    // InternalChartDSL.g:4181:2: ( ( 'logarithmic' ) )
-                    // InternalChartDSL.g:4182:3: ( 'logarithmic' )
+                    // InternalChartDSL.g:4222:2: ( ( 'logarithmic' ) )
+                    // InternalChartDSL.g:4223:3: ( 'logarithmic' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRenderTypeEnumAccess().getLOGEnumLiteralDeclaration_3()); 
                     }
-                    // InternalChartDSL.g:4183:3: ( 'logarithmic' )
-                    // InternalChartDSL.g:4183:4: 'logarithmic'
+                    // InternalChartDSL.g:4224:3: ( 'logarithmic' )
+                    // InternalChartDSL.g:4224:4: 'logarithmic'
                     {
                     match(input,69,FOLLOW_2); if (state.failed) return ;
 
@@ -15659,16 +15812,16 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:4187:2: ( ( 'pyramid' ) )
+                    // InternalChartDSL.g:4228:2: ( ( 'pyramid' ) )
                     {
-                    // InternalChartDSL.g:4187:2: ( ( 'pyramid' ) )
-                    // InternalChartDSL.g:4188:3: ( 'pyramid' )
+                    // InternalChartDSL.g:4228:2: ( ( 'pyramid' ) )
+                    // InternalChartDSL.g:4229:3: ( 'pyramid' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRenderTypeEnumAccess().getPYRAMIDEnumLiteralDeclaration_4()); 
                     }
-                    // InternalChartDSL.g:4189:3: ( 'pyramid' )
-                    // InternalChartDSL.g:4189:4: 'pyramid'
+                    // InternalChartDSL.g:4230:3: ( 'pyramid' )
+                    // InternalChartDSL.g:4230:4: 'pyramid'
                     {
                     match(input,70,FOLLOW_2); if (state.failed) return ;
 
@@ -15700,15 +15853,261 @@
     // $ANTLR end "rule__RenderTypeEnum__Alternatives"
 
 
+    // $ANTLR start "rule__CanvasFontFamilyEnum__Alternatives"
+    // InternalChartDSL.g:4238:1: rule__CanvasFontFamilyEnum__Alternatives : ( ( ( 'Default' ) ) | ( ( 'Arial' ) ) | ( ( 'Verdana' ) ) | ( ( 'Times New Roman' ) ) | ( ( 'Courier New' ) ) | ( ( 'serif' ) ) | ( ( 'sans-serif' ) ) );
+    public final void rule__CanvasFontFamilyEnum__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4242:1: ( ( ( 'Default' ) ) | ( ( 'Arial' ) ) | ( ( 'Verdana' ) ) | ( ( 'Times New Roman' ) ) | ( ( 'Courier New' ) ) | ( ( 'serif' ) ) | ( ( 'sans-serif' ) ) )
+            int alt55=7;
+            switch ( input.LA(1) ) {
+            case 71:
+                {
+                alt55=1;
+                }
+                break;
+            case 72:
+                {
+                alt55=2;
+                }
+                break;
+            case 73:
+                {
+                alt55=3;
+                }
+                break;
+            case 74:
+                {
+                alt55=4;
+                }
+                break;
+            case 75:
+                {
+                alt55=5;
+                }
+                break;
+            case 76:
+                {
+                alt55=6;
+                }
+                break;
+            case 77:
+                {
+                alt55=7;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 55, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt55) {
+                case 1 :
+                    // InternalChartDSL.g:4243:2: ( ( 'Default' ) )
+                    {
+                    // InternalChartDSL.g:4243:2: ( ( 'Default' ) )
+                    // InternalChartDSL.g:4244:3: ( 'Default' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getCanvasFontFamilyEnumAccess().getDEFAULTEnumLiteralDeclaration_0()); 
+                    }
+                    // InternalChartDSL.g:4245:3: ( 'Default' )
+                    // InternalChartDSL.g:4245:4: 'Default'
+                    {
+                    match(input,71,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getCanvasFontFamilyEnumAccess().getDEFAULTEnumLiteralDeclaration_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalChartDSL.g:4249:2: ( ( 'Arial' ) )
+                    {
+                    // InternalChartDSL.g:4249:2: ( ( 'Arial' ) )
+                    // InternalChartDSL.g:4250:3: ( 'Arial' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getCanvasFontFamilyEnumAccess().getARIALEnumLiteralDeclaration_1()); 
+                    }
+                    // InternalChartDSL.g:4251:3: ( 'Arial' )
+                    // InternalChartDSL.g:4251:4: 'Arial'
+                    {
+                    match(input,72,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getCanvasFontFamilyEnumAccess().getARIALEnumLiteralDeclaration_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalChartDSL.g:4255:2: ( ( 'Verdana' ) )
+                    {
+                    // InternalChartDSL.g:4255:2: ( ( 'Verdana' ) )
+                    // InternalChartDSL.g:4256:3: ( 'Verdana' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getCanvasFontFamilyEnumAccess().getVERDANAEnumLiteralDeclaration_2()); 
+                    }
+                    // InternalChartDSL.g:4257:3: ( 'Verdana' )
+                    // InternalChartDSL.g:4257:4: 'Verdana'
+                    {
+                    match(input,73,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getCanvasFontFamilyEnumAccess().getVERDANAEnumLiteralDeclaration_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalChartDSL.g:4261:2: ( ( 'Times New Roman' ) )
+                    {
+                    // InternalChartDSL.g:4261:2: ( ( 'Times New Roman' ) )
+                    // InternalChartDSL.g:4262:3: ( 'Times New Roman' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getCanvasFontFamilyEnumAccess().getTIMESNEWROMANEnumLiteralDeclaration_3()); 
+                    }
+                    // InternalChartDSL.g:4263:3: ( 'Times New Roman' )
+                    // InternalChartDSL.g:4263:4: 'Times New Roman'
+                    {
+                    match(input,74,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getCanvasFontFamilyEnumAccess().getTIMESNEWROMANEnumLiteralDeclaration_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalChartDSL.g:4267:2: ( ( 'Courier New' ) )
+                    {
+                    // InternalChartDSL.g:4267:2: ( ( 'Courier New' ) )
+                    // InternalChartDSL.g:4268:3: ( 'Courier New' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getCanvasFontFamilyEnumAccess().getCOURIERNEWEnumLiteralDeclaration_4()); 
+                    }
+                    // InternalChartDSL.g:4269:3: ( 'Courier New' )
+                    // InternalChartDSL.g:4269:4: 'Courier New'
+                    {
+                    match(input,75,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getCanvasFontFamilyEnumAccess().getCOURIERNEWEnumLiteralDeclaration_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalChartDSL.g:4273:2: ( ( 'serif' ) )
+                    {
+                    // InternalChartDSL.g:4273:2: ( ( 'serif' ) )
+                    // InternalChartDSL.g:4274:3: ( 'serif' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getCanvasFontFamilyEnumAccess().getSERIFEnumLiteralDeclaration_5()); 
+                    }
+                    // InternalChartDSL.g:4275:3: ( 'serif' )
+                    // InternalChartDSL.g:4275:4: 'serif'
+                    {
+                    match(input,76,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getCanvasFontFamilyEnumAccess().getSERIFEnumLiteralDeclaration_5()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalChartDSL.g:4279:2: ( ( 'sans-serif' ) )
+                    {
+                    // InternalChartDSL.g:4279:2: ( ( 'sans-serif' ) )
+                    // InternalChartDSL.g:4280:3: ( 'sans-serif' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getCanvasFontFamilyEnumAccess().getSANSERIFEnumLiteralDeclaration_6()); 
+                    }
+                    // InternalChartDSL.g:4281:3: ( 'sans-serif' )
+                    // InternalChartDSL.g:4281:4: 'sans-serif'
+                    {
+                    match(input,77,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getCanvasFontFamilyEnumAccess().getSANSERIFEnumLiteralDeclaration_6()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CanvasFontFamilyEnum__Alternatives"
+
+
     // $ANTLR start "rule__ChartModel__Group__0"
-    // InternalChartDSL.g:4197:1: rule__ChartModel__Group__0 : rule__ChartModel__Group__0__Impl rule__ChartModel__Group__1 ;
+    // InternalChartDSL.g:4289:1: rule__ChartModel__Group__0 : rule__ChartModel__Group__0__Impl rule__ChartModel__Group__1 ;
     public final void rule__ChartModel__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4201:1: ( rule__ChartModel__Group__0__Impl rule__ChartModel__Group__1 )
-            // InternalChartDSL.g:4202:2: rule__ChartModel__Group__0__Impl rule__ChartModel__Group__1
+            // InternalChartDSL.g:4293:1: ( rule__ChartModel__Group__0__Impl rule__ChartModel__Group__1 )
+            // InternalChartDSL.g:4294:2: rule__ChartModel__Group__0__Impl rule__ChartModel__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__ChartModel__Group__0__Impl();
@@ -15739,31 +16138,31 @@
 
 
     // $ANTLR start "rule__ChartModel__Group__0__Impl"
-    // InternalChartDSL.g:4209:1: rule__ChartModel__Group__0__Impl : ( ( rule__ChartModel__ImportSectionAssignment_0 )? ) ;
+    // InternalChartDSL.g:4301:1: rule__ChartModel__Group__0__Impl : ( ( rule__ChartModel__ImportSectionAssignment_0 )? ) ;
     public final void rule__ChartModel__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4213:1: ( ( ( rule__ChartModel__ImportSectionAssignment_0 )? ) )
-            // InternalChartDSL.g:4214:1: ( ( rule__ChartModel__ImportSectionAssignment_0 )? )
+            // InternalChartDSL.g:4305:1: ( ( ( rule__ChartModel__ImportSectionAssignment_0 )? ) )
+            // InternalChartDSL.g:4306:1: ( ( rule__ChartModel__ImportSectionAssignment_0 )? )
             {
-            // InternalChartDSL.g:4214:1: ( ( rule__ChartModel__ImportSectionAssignment_0 )? )
-            // InternalChartDSL.g:4215:2: ( rule__ChartModel__ImportSectionAssignment_0 )?
+            // InternalChartDSL.g:4306:1: ( ( rule__ChartModel__ImportSectionAssignment_0 )? )
+            // InternalChartDSL.g:4307:2: ( rule__ChartModel__ImportSectionAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartModelAccess().getImportSectionAssignment_0()); 
             }
-            // InternalChartDSL.g:4216:2: ( rule__ChartModel__ImportSectionAssignment_0 )?
-            int alt55=2;
-            int LA55_0 = input.LA(1);
+            // InternalChartDSL.g:4308:2: ( rule__ChartModel__ImportSectionAssignment_0 )?
+            int alt56=2;
+            int LA56_0 = input.LA(1);
 
-            if ( (LA55_0==47) ) {
-                alt55=1;
+            if ( (LA56_0==47) ) {
+                alt56=1;
             }
-            switch (alt55) {
+            switch (alt56) {
                 case 1 :
-                    // InternalChartDSL.g:4216:3: rule__ChartModel__ImportSectionAssignment_0
+                    // InternalChartDSL.g:4308:3: rule__ChartModel__ImportSectionAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartModel__ImportSectionAssignment_0();
@@ -15801,14 +16200,14 @@
 
 
     // $ANTLR start "rule__ChartModel__Group__1"
-    // InternalChartDSL.g:4224:1: rule__ChartModel__Group__1 : rule__ChartModel__Group__1__Impl ;
+    // InternalChartDSL.g:4316:1: rule__ChartModel__Group__1 : rule__ChartModel__Group__1__Impl ;
     public final void rule__ChartModel__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4228:1: ( rule__ChartModel__Group__1__Impl )
-            // InternalChartDSL.g:4229:2: rule__ChartModel__Group__1__Impl
+            // InternalChartDSL.g:4320:1: ( rule__ChartModel__Group__1__Impl )
+            // InternalChartDSL.g:4321:2: rule__ChartModel__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartModel__Group__1__Impl();
@@ -15834,35 +16233,35 @@
 
 
     // $ANTLR start "rule__ChartModel__Group__1__Impl"
-    // InternalChartDSL.g:4235:1: rule__ChartModel__Group__1__Impl : ( ( rule__ChartModel__PackagesAssignment_1 )* ) ;
+    // InternalChartDSL.g:4327:1: rule__ChartModel__Group__1__Impl : ( ( rule__ChartModel__PackagesAssignment_1 )* ) ;
     public final void rule__ChartModel__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4239:1: ( ( ( rule__ChartModel__PackagesAssignment_1 )* ) )
-            // InternalChartDSL.g:4240:1: ( ( rule__ChartModel__PackagesAssignment_1 )* )
+            // InternalChartDSL.g:4331:1: ( ( ( rule__ChartModel__PackagesAssignment_1 )* ) )
+            // InternalChartDSL.g:4332:1: ( ( rule__ChartModel__PackagesAssignment_1 )* )
             {
-            // InternalChartDSL.g:4240:1: ( ( rule__ChartModel__PackagesAssignment_1 )* )
-            // InternalChartDSL.g:4241:2: ( rule__ChartModel__PackagesAssignment_1 )*
+            // InternalChartDSL.g:4332:1: ( ( rule__ChartModel__PackagesAssignment_1 )* )
+            // InternalChartDSL.g:4333:2: ( rule__ChartModel__PackagesAssignment_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartModelAccess().getPackagesAssignment_1()); 
             }
-            // InternalChartDSL.g:4242:2: ( rule__ChartModel__PackagesAssignment_1 )*
-            loop56:
+            // InternalChartDSL.g:4334:2: ( rule__ChartModel__PackagesAssignment_1 )*
+            loop57:
             do {
-                int alt56=2;
-                int LA56_0 = input.LA(1);
+                int alt57=2;
+                int LA57_0 = input.LA(1);
 
-                if ( (LA56_0==71) ) {
-                    alt56=1;
+                if ( (LA57_0==78) ) {
+                    alt57=1;
                 }
 
 
-                switch (alt56) {
+                switch (alt57) {
             	case 1 :
-            	    // InternalChartDSL.g:4242:3: rule__ChartModel__PackagesAssignment_1
+            	    // InternalChartDSL.g:4334:3: rule__ChartModel__PackagesAssignment_1
             	    {
             	    pushFollow(FOLLOW_6);
             	    rule__ChartModel__PackagesAssignment_1();
@@ -15874,7 +16273,7 @@
             	    break;
 
             	default :
-            	    break loop56;
+            	    break loop57;
                 }
             } while (true);
 
@@ -15903,14 +16302,14 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group__0"
-    // InternalChartDSL.g:4251:1: rule__ChartPackage__Group__0 : rule__ChartPackage__Group__0__Impl rule__ChartPackage__Group__1 ;
+    // InternalChartDSL.g:4343:1: rule__ChartPackage__Group__0 : rule__ChartPackage__Group__0__Impl rule__ChartPackage__Group__1 ;
     public final void rule__ChartPackage__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4255:1: ( rule__ChartPackage__Group__0__Impl rule__ChartPackage__Group__1 )
-            // InternalChartDSL.g:4256:2: rule__ChartPackage__Group__0__Impl rule__ChartPackage__Group__1
+            // InternalChartDSL.g:4347:1: ( rule__ChartPackage__Group__0__Impl rule__ChartPackage__Group__1 )
+            // InternalChartDSL.g:4348:2: rule__ChartPackage__Group__0__Impl rule__ChartPackage__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__ChartPackage__Group__0__Impl();
@@ -15941,23 +16340,23 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group__0__Impl"
-    // InternalChartDSL.g:4263:1: rule__ChartPackage__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:4355:1: rule__ChartPackage__Group__0__Impl : ( () ) ;
     public final void rule__ChartPackage__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4267:1: ( ( () ) )
-            // InternalChartDSL.g:4268:1: ( () )
+            // InternalChartDSL.g:4359:1: ( ( () ) )
+            // InternalChartDSL.g:4360:1: ( () )
             {
-            // InternalChartDSL.g:4268:1: ( () )
-            // InternalChartDSL.g:4269:2: ()
+            // InternalChartDSL.g:4360:1: ( () )
+            // InternalChartDSL.g:4361:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPackageAccess().getChartPackageAction_0()); 
             }
-            // InternalChartDSL.g:4270:2: ()
-            // InternalChartDSL.g:4270:3: 
+            // InternalChartDSL.g:4362:2: ()
+            // InternalChartDSL.g:4362:3: 
             {
             }
 
@@ -15982,14 +16381,14 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group__1"
-    // InternalChartDSL.g:4278:1: rule__ChartPackage__Group__1 : rule__ChartPackage__Group__1__Impl rule__ChartPackage__Group__2 ;
+    // InternalChartDSL.g:4370:1: rule__ChartPackage__Group__1 : rule__ChartPackage__Group__1__Impl rule__ChartPackage__Group__2 ;
     public final void rule__ChartPackage__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4282:1: ( rule__ChartPackage__Group__1__Impl rule__ChartPackage__Group__2 )
-            // InternalChartDSL.g:4283:2: rule__ChartPackage__Group__1__Impl rule__ChartPackage__Group__2
+            // InternalChartDSL.g:4374:1: ( rule__ChartPackage__Group__1__Impl rule__ChartPackage__Group__2 )
+            // InternalChartDSL.g:4375:2: rule__ChartPackage__Group__1__Impl rule__ChartPackage__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__ChartPackage__Group__1__Impl();
@@ -16020,22 +16419,22 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group__1__Impl"
-    // InternalChartDSL.g:4290:1: rule__ChartPackage__Group__1__Impl : ( 'package' ) ;
+    // InternalChartDSL.g:4382:1: rule__ChartPackage__Group__1__Impl : ( 'package' ) ;
     public final void rule__ChartPackage__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4294:1: ( ( 'package' ) )
-            // InternalChartDSL.g:4295:1: ( 'package' )
+            // InternalChartDSL.g:4386:1: ( ( 'package' ) )
+            // InternalChartDSL.g:4387:1: ( 'package' )
             {
-            // InternalChartDSL.g:4295:1: ( 'package' )
-            // InternalChartDSL.g:4296:2: 'package'
+            // InternalChartDSL.g:4387:1: ( 'package' )
+            // InternalChartDSL.g:4388:2: 'package'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPackageAccess().getPackageKeyword_1()); 
             }
-            match(input,71,FOLLOW_2); if (state.failed) return ;
+            match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartPackageAccess().getPackageKeyword_1()); 
             }
@@ -16061,14 +16460,14 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group__2"
-    // InternalChartDSL.g:4305:1: rule__ChartPackage__Group__2 : rule__ChartPackage__Group__2__Impl rule__ChartPackage__Group__3 ;
+    // InternalChartDSL.g:4397:1: rule__ChartPackage__Group__2 : rule__ChartPackage__Group__2__Impl rule__ChartPackage__Group__3 ;
     public final void rule__ChartPackage__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4309:1: ( rule__ChartPackage__Group__2__Impl rule__ChartPackage__Group__3 )
-            // InternalChartDSL.g:4310:2: rule__ChartPackage__Group__2__Impl rule__ChartPackage__Group__3
+            // InternalChartDSL.g:4401:1: ( rule__ChartPackage__Group__2__Impl rule__ChartPackage__Group__3 )
+            // InternalChartDSL.g:4402:2: rule__ChartPackage__Group__2__Impl rule__ChartPackage__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__ChartPackage__Group__2__Impl();
@@ -16099,23 +16498,23 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group__2__Impl"
-    // InternalChartDSL.g:4317:1: rule__ChartPackage__Group__2__Impl : ( ( rule__ChartPackage__NameAssignment_2 ) ) ;
+    // InternalChartDSL.g:4409:1: rule__ChartPackage__Group__2__Impl : ( ( rule__ChartPackage__NameAssignment_2 ) ) ;
     public final void rule__ChartPackage__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4321:1: ( ( ( rule__ChartPackage__NameAssignment_2 ) ) )
-            // InternalChartDSL.g:4322:1: ( ( rule__ChartPackage__NameAssignment_2 ) )
+            // InternalChartDSL.g:4413:1: ( ( ( rule__ChartPackage__NameAssignment_2 ) ) )
+            // InternalChartDSL.g:4414:1: ( ( rule__ChartPackage__NameAssignment_2 ) )
             {
-            // InternalChartDSL.g:4322:1: ( ( rule__ChartPackage__NameAssignment_2 ) )
-            // InternalChartDSL.g:4323:2: ( rule__ChartPackage__NameAssignment_2 )
+            // InternalChartDSL.g:4414:1: ( ( rule__ChartPackage__NameAssignment_2 ) )
+            // InternalChartDSL.g:4415:2: ( rule__ChartPackage__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPackageAccess().getNameAssignment_2()); 
             }
-            // InternalChartDSL.g:4324:2: ( rule__ChartPackage__NameAssignment_2 )
-            // InternalChartDSL.g:4324:3: rule__ChartPackage__NameAssignment_2
+            // InternalChartDSL.g:4416:2: ( rule__ChartPackage__NameAssignment_2 )
+            // InternalChartDSL.g:4416:3: rule__ChartPackage__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__ChartPackage__NameAssignment_2();
@@ -16150,20 +16549,25 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group__3"
-    // InternalChartDSL.g:4332:1: rule__ChartPackage__Group__3 : rule__ChartPackage__Group__3__Impl ;
+    // InternalChartDSL.g:4424:1: rule__ChartPackage__Group__3 : rule__ChartPackage__Group__3__Impl rule__ChartPackage__Group__4 ;
     public final void rule__ChartPackage__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4336:1: ( rule__ChartPackage__Group__3__Impl )
-            // InternalChartDSL.g:4337:2: rule__ChartPackage__Group__3__Impl
+            // InternalChartDSL.g:4428:1: ( rule__ChartPackage__Group__3__Impl rule__ChartPackage__Group__4 )
+            // InternalChartDSL.g:4429:2: rule__ChartPackage__Group__3__Impl rule__ChartPackage__Group__4
             {
-            pushFollow(FOLLOW_2);
+            pushFollow(FOLLOW_8);
             rule__ChartPackage__Group__3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
@@ -16183,31 +16587,31 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group__3__Impl"
-    // InternalChartDSL.g:4343:1: rule__ChartPackage__Group__3__Impl : ( ( rule__ChartPackage__Group_3__0 )? ) ;
+    // InternalChartDSL.g:4436:1: rule__ChartPackage__Group__3__Impl : ( ( rule__ChartPackage__Group_3__0 )? ) ;
     public final void rule__ChartPackage__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4347:1: ( ( ( rule__ChartPackage__Group_3__0 )? ) )
-            // InternalChartDSL.g:4348:1: ( ( rule__ChartPackage__Group_3__0 )? )
+            // InternalChartDSL.g:4440:1: ( ( ( rule__ChartPackage__Group_3__0 )? ) )
+            // InternalChartDSL.g:4441:1: ( ( rule__ChartPackage__Group_3__0 )? )
             {
-            // InternalChartDSL.g:4348:1: ( ( rule__ChartPackage__Group_3__0 )? )
-            // InternalChartDSL.g:4349:2: ( rule__ChartPackage__Group_3__0 )?
+            // InternalChartDSL.g:4441:1: ( ( rule__ChartPackage__Group_3__0 )? )
+            // InternalChartDSL.g:4442:2: ( rule__ChartPackage__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPackageAccess().getGroup_3()); 
             }
-            // InternalChartDSL.g:4350:2: ( rule__ChartPackage__Group_3__0 )?
-            int alt57=2;
-            int LA57_0 = input.LA(1);
+            // InternalChartDSL.g:4443:2: ( rule__ChartPackage__Group_3__0 )?
+            int alt58=2;
+            int LA58_0 = input.LA(1);
 
-            if ( (LA57_0==72) ) {
-                alt57=1;
+            if ( (LA58_0==139) ) {
+                alt58=1;
             }
-            switch (alt57) {
+            switch (alt58) {
                 case 1 :
-                    // InternalChartDSL.g:4350:3: rule__ChartPackage__Group_3__0
+                    // InternalChartDSL.g:4443:3: rule__ChartPackage__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartPackage__Group_3__0();
@@ -16244,15 +16648,210 @@
     // $ANTLR end "rule__ChartPackage__Group__3__Impl"
 
 
+    // $ANTLR start "rule__ChartPackage__Group__4"
+    // InternalChartDSL.g:4451:1: rule__ChartPackage__Group__4 : rule__ChartPackage__Group__4__Impl rule__ChartPackage__Group__5 ;
+    public final void rule__ChartPackage__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4455:1: ( rule__ChartPackage__Group__4__Impl rule__ChartPackage__Group__5 )
+            // InternalChartDSL.g:4456:2: rule__ChartPackage__Group__4__Impl rule__ChartPackage__Group__5
+            {
+            pushFollow(FOLLOW_8);
+            rule__ChartPackage__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group__4"
+
+
+    // $ANTLR start "rule__ChartPackage__Group__4__Impl"
+    // InternalChartDSL.g:4463:1: rule__ChartPackage__Group__4__Impl : ( ( rule__ChartPackage__Group_4__0 )? ) ;
+    public final void rule__ChartPackage__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4467:1: ( ( ( rule__ChartPackage__Group_4__0 )? ) )
+            // InternalChartDSL.g:4468:1: ( ( rule__ChartPackage__Group_4__0 )? )
+            {
+            // InternalChartDSL.g:4468:1: ( ( rule__ChartPackage__Group_4__0 )? )
+            // InternalChartDSL.g:4469:2: ( rule__ChartPackage__Group_4__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartPackageAccess().getGroup_4()); 
+            }
+            // InternalChartDSL.g:4470:2: ( rule__ChartPackage__Group_4__0 )?
+            int alt59=2;
+            int LA59_0 = input.LA(1);
+
+            if ( (LA59_0==81) ) {
+                alt59=1;
+            }
+            switch (alt59) {
+                case 1 :
+                    // InternalChartDSL.g:4470:3: rule__ChartPackage__Group_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ChartPackage__Group_4__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getGroup_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ChartPackage__Group__5"
+    // InternalChartDSL.g:4478:1: rule__ChartPackage__Group__5 : rule__ChartPackage__Group__5__Impl ;
+    public final void rule__ChartPackage__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4482:1: ( rule__ChartPackage__Group__5__Impl )
+            // InternalChartDSL.g:4483:2: rule__ChartPackage__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group__5"
+
+
+    // $ANTLR start "rule__ChartPackage__Group__5__Impl"
+    // InternalChartDSL.g:4489:1: rule__ChartPackage__Group__5__Impl : ( ( rule__ChartPackage__Group_5__0 )? ) ;
+    public final void rule__ChartPackage__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4493:1: ( ( ( rule__ChartPackage__Group_5__0 )? ) )
+            // InternalChartDSL.g:4494:1: ( ( rule__ChartPackage__Group_5__0 )? )
+            {
+            // InternalChartDSL.g:4494:1: ( ( rule__ChartPackage__Group_5__0 )? )
+            // InternalChartDSL.g:4495:2: ( rule__ChartPackage__Group_5__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartPackageAccess().getGroup_5()); 
+            }
+            // InternalChartDSL.g:4496:2: ( rule__ChartPackage__Group_5__0 )?
+            int alt60=2;
+            int LA60_0 = input.LA(1);
+
+            if ( (LA60_0==79) ) {
+                alt60=1;
+            }
+            switch (alt60) {
+                case 1 :
+                    // InternalChartDSL.g:4496:3: rule__ChartPackage__Group_5__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ChartPackage__Group_5__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getGroup_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group__5__Impl"
+
+
     // $ANTLR start "rule__ChartPackage__Group_3__0"
-    // InternalChartDSL.g:4359:1: rule__ChartPackage__Group_3__0 : rule__ChartPackage__Group_3__0__Impl rule__ChartPackage__Group_3__1 ;
+    // InternalChartDSL.g:4505:1: rule__ChartPackage__Group_3__0 : rule__ChartPackage__Group_3__0__Impl rule__ChartPackage__Group_3__1 ;
     public final void rule__ChartPackage__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4363:1: ( rule__ChartPackage__Group_3__0__Impl rule__ChartPackage__Group_3__1 )
-            // InternalChartDSL.g:4364:2: rule__ChartPackage__Group_3__0__Impl rule__ChartPackage__Group_3__1
+            // InternalChartDSL.g:4509:1: ( rule__ChartPackage__Group_3__0__Impl rule__ChartPackage__Group_3__1 )
+            // InternalChartDSL.g:4510:2: rule__ChartPackage__Group_3__0__Impl rule__ChartPackage__Group_3__1
             {
             pushFollow(FOLLOW_9);
             rule__ChartPackage__Group_3__0__Impl();
@@ -16283,24 +16882,34 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group_3__0__Impl"
-    // InternalChartDSL.g:4371:1: rule__ChartPackage__Group_3__0__Impl : ( '{' ) ;
+    // InternalChartDSL.g:4517:1: rule__ChartPackage__Group_3__0__Impl : ( ( rule__ChartPackage__HasColorsAssignment_3_0 ) ) ;
     public final void rule__ChartPackage__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4375:1: ( ( '{' ) )
-            // InternalChartDSL.g:4376:1: ( '{' )
+            // InternalChartDSL.g:4521:1: ( ( ( rule__ChartPackage__HasColorsAssignment_3_0 ) ) )
+            // InternalChartDSL.g:4522:1: ( ( rule__ChartPackage__HasColorsAssignment_3_0 ) )
             {
-            // InternalChartDSL.g:4376:1: ( '{' )
-            // InternalChartDSL.g:4377:2: '{'
+            // InternalChartDSL.g:4522:1: ( ( rule__ChartPackage__HasColorsAssignment_3_0 ) )
+            // InternalChartDSL.g:4523:2: ( rule__ChartPackage__HasColorsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_0()); 
+               before(grammarAccess.getChartPackageAccess().getHasColorsAssignment_3_0()); 
             }
-            match(input,72,FOLLOW_2); if (state.failed) return ;
+            // InternalChartDSL.g:4524:2: ( rule__ChartPackage__HasColorsAssignment_3_0 )
+            // InternalChartDSL.g:4524:3: rule__ChartPackage__HasColorsAssignment_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__HasColorsAssignment_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_0()); 
+               after(grammarAccess.getChartPackageAccess().getHasColorsAssignment_3_0()); 
             }
 
             }
@@ -16324,16 +16933,16 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group_3__1"
-    // InternalChartDSL.g:4386:1: rule__ChartPackage__Group_3__1 : rule__ChartPackage__Group_3__1__Impl rule__ChartPackage__Group_3__2 ;
+    // InternalChartDSL.g:4532:1: rule__ChartPackage__Group_3__1 : rule__ChartPackage__Group_3__1__Impl rule__ChartPackage__Group_3__2 ;
     public final void rule__ChartPackage__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4390:1: ( rule__ChartPackage__Group_3__1__Impl rule__ChartPackage__Group_3__2 )
-            // InternalChartDSL.g:4391:2: rule__ChartPackage__Group_3__1__Impl rule__ChartPackage__Group_3__2
+            // InternalChartDSL.g:4536:1: ( rule__ChartPackage__Group_3__1__Impl rule__ChartPackage__Group_3__2 )
+            // InternalChartDSL.g:4537:2: rule__ChartPackage__Group_3__1__Impl rule__ChartPackage__Group_3__2
             {
-            pushFollow(FOLLOW_9);
+            pushFollow(FOLLOW_10);
             rule__ChartPackage__Group_3__1__Impl();
 
             state._fsp--;
@@ -16362,52 +16971,24 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group_3__1__Impl"
-    // InternalChartDSL.g:4398:1: rule__ChartPackage__Group_3__1__Impl : ( ( rule__ChartPackage__ChartsAssignment_3_1 )* ) ;
+    // InternalChartDSL.g:4544:1: rule__ChartPackage__Group_3__1__Impl : ( '{' ) ;
     public final void rule__ChartPackage__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4402:1: ( ( ( rule__ChartPackage__ChartsAssignment_3_1 )* ) )
-            // InternalChartDSL.g:4403:1: ( ( rule__ChartPackage__ChartsAssignment_3_1 )* )
+            // InternalChartDSL.g:4548:1: ( ( '{' ) )
+            // InternalChartDSL.g:4549:1: ( '{' )
             {
-            // InternalChartDSL.g:4403:1: ( ( rule__ChartPackage__ChartsAssignment_3_1 )* )
-            // InternalChartDSL.g:4404:2: ( rule__ChartPackage__ChartsAssignment_3_1 )*
+            // InternalChartDSL.g:4549:1: ( '{' )
+            // InternalChartDSL.g:4550:2: '{'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartPackageAccess().getChartsAssignment_3_1()); 
+               before(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_1()); 
             }
-            // InternalChartDSL.g:4405:2: ( rule__ChartPackage__ChartsAssignment_3_1 )*
-            loop58:
-            do {
-                int alt58=2;
-                int LA58_0 = input.LA(1);
-
-                if ( (LA58_0==74) ) {
-                    alt58=1;
-                }
-
-
-                switch (alt58) {
-            	case 1 :
-            	    // InternalChartDSL.g:4405:3: rule__ChartPackage__ChartsAssignment_3_1
-            	    {
-            	    pushFollow(FOLLOW_10);
-            	    rule__ChartPackage__ChartsAssignment_3_1();
-
-            	    state._fsp--;
-            	    if (state.failed) return ;
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop58;
-                }
-            } while (true);
-
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartPackageAccess().getChartsAssignment_3_1()); 
+               after(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_1()); 
             }
 
             }
@@ -16431,20 +17012,25 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group_3__2"
-    // InternalChartDSL.g:4413:1: rule__ChartPackage__Group_3__2 : rule__ChartPackage__Group_3__2__Impl ;
+    // InternalChartDSL.g:4559:1: rule__ChartPackage__Group_3__2 : rule__ChartPackage__Group_3__2__Impl rule__ChartPackage__Group_3__3 ;
     public final void rule__ChartPackage__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4417:1: ( rule__ChartPackage__Group_3__2__Impl )
-            // InternalChartDSL.g:4418:2: rule__ChartPackage__Group_3__2__Impl
+            // InternalChartDSL.g:4563:1: ( rule__ChartPackage__Group_3__2__Impl rule__ChartPackage__Group_3__3 )
+            // InternalChartDSL.g:4564:2: rule__ChartPackage__Group_3__2__Impl rule__ChartPackage__Group_3__3
             {
-            pushFollow(FOLLOW_2);
+            pushFollow(FOLLOW_10);
             rule__ChartPackage__Group_3__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__Group_3__3();
+
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
@@ -16464,24 +17050,52 @@
 
 
     // $ANTLR start "rule__ChartPackage__Group_3__2__Impl"
-    // InternalChartDSL.g:4424:1: rule__ChartPackage__Group_3__2__Impl : ( '}' ) ;
+    // InternalChartDSL.g:4571:1: rule__ChartPackage__Group_3__2__Impl : ( ( rule__ChartPackage__ColorsAssignment_3_2 )* ) ;
     public final void rule__ChartPackage__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4428:1: ( ( '}' ) )
-            // InternalChartDSL.g:4429:1: ( '}' )
+            // InternalChartDSL.g:4575:1: ( ( ( rule__ChartPackage__ColorsAssignment_3_2 )* ) )
+            // InternalChartDSL.g:4576:1: ( ( rule__ChartPackage__ColorsAssignment_3_2 )* )
             {
-            // InternalChartDSL.g:4429:1: ( '}' )
-            // InternalChartDSL.g:4430:2: '}'
+            // InternalChartDSL.g:4576:1: ( ( rule__ChartPackage__ColorsAssignment_3_2 )* )
+            // InternalChartDSL.g:4577:2: ( rule__ChartPackage__ColorsAssignment_3_2 )*
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_2()); 
+               before(grammarAccess.getChartPackageAccess().getColorsAssignment_3_2()); 
             }
-            match(input,73,FOLLOW_2); if (state.failed) return ;
+            // InternalChartDSL.g:4578:2: ( rule__ChartPackage__ColorsAssignment_3_2 )*
+            loop61:
+            do {
+                int alt61=2;
+                int LA61_0 = input.LA(1);
+
+                if ( (LA61_0==RULE_STRING) ) {
+                    alt61=1;
+                }
+
+
+                switch (alt61) {
+            	case 1 :
+            	    // InternalChartDSL.g:4578:3: rule__ChartPackage__ColorsAssignment_3_2
+            	    {
+            	    pushFollow(FOLLOW_11);
+            	    rule__ChartPackage__ColorsAssignment_3_2();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop61;
+                }
+            } while (true);
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_2()); 
+               after(grammarAccess.getChartPackageAccess().getColorsAssignment_3_2()); 
             }
 
             }
@@ -16504,17 +17118,677 @@
     // $ANTLR end "rule__ChartPackage__Group_3__2__Impl"
 
 
+    // $ANTLR start "rule__ChartPackage__Group_3__3"
+    // InternalChartDSL.g:4586:1: rule__ChartPackage__Group_3__3 : rule__ChartPackage__Group_3__3__Impl ;
+    public final void rule__ChartPackage__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4590:1: ( rule__ChartPackage__Group_3__3__Impl )
+            // InternalChartDSL.g:4591:2: rule__ChartPackage__Group_3__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__Group_3__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_3__3"
+
+
+    // $ANTLR start "rule__ChartPackage__Group_3__3__Impl"
+    // InternalChartDSL.g:4597:1: rule__ChartPackage__Group_3__3__Impl : ( '}' ) ;
+    public final void rule__ChartPackage__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4601:1: ( ( '}' ) )
+            // InternalChartDSL.g:4602:1: ( '}' )
+            {
+            // InternalChartDSL.g:4602:1: ( '}' )
+            // InternalChartDSL.g:4603:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_3()); 
+            }
+            match(input,80,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__ChartPackage__Group_4__0"
+    // InternalChartDSL.g:4613:1: rule__ChartPackage__Group_4__0 : rule__ChartPackage__Group_4__0__Impl rule__ChartPackage__Group_4__1 ;
+    public final void rule__ChartPackage__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4617:1: ( rule__ChartPackage__Group_4__0__Impl rule__ChartPackage__Group_4__1 )
+            // InternalChartDSL.g:4618:2: rule__ChartPackage__Group_4__0__Impl rule__ChartPackage__Group_4__1
+            {
+            pushFollow(FOLLOW_12);
+            rule__ChartPackage__Group_4__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__Group_4__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_4__0"
+
+
+    // $ANTLR start "rule__ChartPackage__Group_4__0__Impl"
+    // InternalChartDSL.g:4625:1: rule__ChartPackage__Group_4__0__Impl : ( 'fontFamily' ) ;
+    public final void rule__ChartPackage__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4629:1: ( ( 'fontFamily' ) )
+            // InternalChartDSL.g:4630:1: ( 'fontFamily' )
+            {
+            // InternalChartDSL.g:4630:1: ( 'fontFamily' )
+            // InternalChartDSL.g:4631:2: 'fontFamily'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartPackageAccess().getFontFamilyKeyword_4_0()); 
+            }
+            match(input,81,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getFontFamilyKeyword_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__ChartPackage__Group_4__1"
+    // InternalChartDSL.g:4640:1: rule__ChartPackage__Group_4__1 : rule__ChartPackage__Group_4__1__Impl ;
+    public final void rule__ChartPackage__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4644:1: ( rule__ChartPackage__Group_4__1__Impl )
+            // InternalChartDSL.g:4645:2: rule__ChartPackage__Group_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__Group_4__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_4__1"
+
+
+    // $ANTLR start "rule__ChartPackage__Group_4__1__Impl"
+    // InternalChartDSL.g:4651:1: rule__ChartPackage__Group_4__1__Impl : ( ( rule__ChartPackage__DefaultFontFamilyAssignment_4_1 ) ) ;
+    public final void rule__ChartPackage__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4655:1: ( ( ( rule__ChartPackage__DefaultFontFamilyAssignment_4_1 ) ) )
+            // InternalChartDSL.g:4656:1: ( ( rule__ChartPackage__DefaultFontFamilyAssignment_4_1 ) )
+            {
+            // InternalChartDSL.g:4656:1: ( ( rule__ChartPackage__DefaultFontFamilyAssignment_4_1 ) )
+            // InternalChartDSL.g:4657:2: ( rule__ChartPackage__DefaultFontFamilyAssignment_4_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartPackageAccess().getDefaultFontFamilyAssignment_4_1()); 
+            }
+            // InternalChartDSL.g:4658:2: ( rule__ChartPackage__DefaultFontFamilyAssignment_4_1 )
+            // InternalChartDSL.g:4658:3: rule__ChartPackage__DefaultFontFamilyAssignment_4_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__DefaultFontFamilyAssignment_4_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getDefaultFontFamilyAssignment_4_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__ChartPackage__Group_5__0"
+    // InternalChartDSL.g:4667:1: rule__ChartPackage__Group_5__0 : rule__ChartPackage__Group_5__0__Impl rule__ChartPackage__Group_5__1 ;
+    public final void rule__ChartPackage__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4671:1: ( rule__ChartPackage__Group_5__0__Impl rule__ChartPackage__Group_5__1 )
+            // InternalChartDSL.g:4672:2: rule__ChartPackage__Group_5__0__Impl rule__ChartPackage__Group_5__1
+            {
+            pushFollow(FOLLOW_13);
+            rule__ChartPackage__Group_5__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__Group_5__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_5__0"
+
+
+    // $ANTLR start "rule__ChartPackage__Group_5__0__Impl"
+    // InternalChartDSL.g:4679:1: rule__ChartPackage__Group_5__0__Impl : ( '{' ) ;
+    public final void rule__ChartPackage__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4683:1: ( ( '{' ) )
+            // InternalChartDSL.g:4684:1: ( '{' )
+            {
+            // InternalChartDSL.g:4684:1: ( '{' )
+            // InternalChartDSL.g:4685:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_5_0()); 
+            }
+            match(input,79,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__ChartPackage__Group_5__1"
+    // InternalChartDSL.g:4694:1: rule__ChartPackage__Group_5__1 : rule__ChartPackage__Group_5__1__Impl rule__ChartPackage__Group_5__2 ;
+    public final void rule__ChartPackage__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4698:1: ( rule__ChartPackage__Group_5__1__Impl rule__ChartPackage__Group_5__2 )
+            // InternalChartDSL.g:4699:2: rule__ChartPackage__Group_5__1__Impl rule__ChartPackage__Group_5__2
+            {
+            pushFollow(FOLLOW_13);
+            rule__ChartPackage__Group_5__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__Group_5__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_5__1"
+
+
+    // $ANTLR start "rule__ChartPackage__Group_5__1__Impl"
+    // InternalChartDSL.g:4706:1: rule__ChartPackage__Group_5__1__Impl : ( ( rule__ChartPackage__ChartsAssignment_5_1 )* ) ;
+    public final void rule__ChartPackage__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4710:1: ( ( ( rule__ChartPackage__ChartsAssignment_5_1 )* ) )
+            // InternalChartDSL.g:4711:1: ( ( rule__ChartPackage__ChartsAssignment_5_1 )* )
+            {
+            // InternalChartDSL.g:4711:1: ( ( rule__ChartPackage__ChartsAssignment_5_1 )* )
+            // InternalChartDSL.g:4712:2: ( rule__ChartPackage__ChartsAssignment_5_1 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartPackageAccess().getChartsAssignment_5_1()); 
+            }
+            // InternalChartDSL.g:4713:2: ( rule__ChartPackage__ChartsAssignment_5_1 )*
+            loop62:
+            do {
+                int alt62=2;
+                int LA62_0 = input.LA(1);
+
+                if ( (LA62_0==82) ) {
+                    alt62=1;
+                }
+
+
+                switch (alt62) {
+            	case 1 :
+            	    // InternalChartDSL.g:4713:3: rule__ChartPackage__ChartsAssignment_5_1
+            	    {
+            	    pushFollow(FOLLOW_14);
+            	    rule__ChartPackage__ChartsAssignment_5_1();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop62;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getChartsAssignment_5_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__ChartPackage__Group_5__2"
+    // InternalChartDSL.g:4721:1: rule__ChartPackage__Group_5__2 : rule__ChartPackage__Group_5__2__Impl ;
+    public final void rule__ChartPackage__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4725:1: ( rule__ChartPackage__Group_5__2__Impl )
+            // InternalChartDSL.g:4726:2: rule__ChartPackage__Group_5__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartPackage__Group_5__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_5__2"
+
+
+    // $ANTLR start "rule__ChartPackage__Group_5__2__Impl"
+    // InternalChartDSL.g:4732:1: rule__ChartPackage__Group_5__2__Impl : ( '}' ) ;
+    public final void rule__ChartPackage__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4736:1: ( ( '}' ) )
+            // InternalChartDSL.g:4737:1: ( '}' )
+            {
+            // InternalChartDSL.g:4737:1: ( '}' )
+            // InternalChartDSL.g:4738:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_5_2()); 
+            }
+            match(input,80,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_5_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__SeriesColor__Group__0"
+    // InternalChartDSL.g:4748:1: rule__SeriesColor__Group__0 : rule__SeriesColor__Group__0__Impl rule__SeriesColor__Group__1 ;
+    public final void rule__SeriesColor__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4752:1: ( rule__SeriesColor__Group__0__Impl rule__SeriesColor__Group__1 )
+            // InternalChartDSL.g:4753:2: rule__SeriesColor__Group__0__Impl rule__SeriesColor__Group__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__SeriesColor__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SeriesColor__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SeriesColor__Group__0"
+
+
+    // $ANTLR start "rule__SeriesColor__Group__0__Impl"
+    // InternalChartDSL.g:4760:1: rule__SeriesColor__Group__0__Impl : ( () ) ;
+    public final void rule__SeriesColor__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4764:1: ( ( () ) )
+            // InternalChartDSL.g:4765:1: ( () )
+            {
+            // InternalChartDSL.g:4765:1: ( () )
+            // InternalChartDSL.g:4766:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSeriesColorAccess().getSeriesColorAction_0()); 
+            }
+            // InternalChartDSL.g:4767:2: ()
+            // InternalChartDSL.g:4767:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSeriesColorAccess().getSeriesColorAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SeriesColor__Group__0__Impl"
+
+
+    // $ANTLR start "rule__SeriesColor__Group__1"
+    // InternalChartDSL.g:4775:1: rule__SeriesColor__Group__1 : rule__SeriesColor__Group__1__Impl ;
+    public final void rule__SeriesColor__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4779:1: ( rule__SeriesColor__Group__1__Impl )
+            // InternalChartDSL.g:4780:2: rule__SeriesColor__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SeriesColor__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SeriesColor__Group__1"
+
+
+    // $ANTLR start "rule__SeriesColor__Group__1__Impl"
+    // InternalChartDSL.g:4786:1: rule__SeriesColor__Group__1__Impl : ( ( rule__SeriesColor__RgbAssignment_1 ) ) ;
+    public final void rule__SeriesColor__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:4790:1: ( ( ( rule__SeriesColor__RgbAssignment_1 ) ) )
+            // InternalChartDSL.g:4791:1: ( ( rule__SeriesColor__RgbAssignment_1 ) )
+            {
+            // InternalChartDSL.g:4791:1: ( ( rule__SeriesColor__RgbAssignment_1 ) )
+            // InternalChartDSL.g:4792:2: ( rule__SeriesColor__RgbAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSeriesColorAccess().getRgbAssignment_1()); 
+            }
+            // InternalChartDSL.g:4793:2: ( rule__SeriesColor__RgbAssignment_1 )
+            // InternalChartDSL.g:4793:3: rule__SeriesColor__RgbAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__SeriesColor__RgbAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSeriesColorAccess().getRgbAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SeriesColor__Group__1__Impl"
+
+
     // $ANTLR start "rule__Chart__Group__0"
-    // InternalChartDSL.g:4440:1: rule__Chart__Group__0 : rule__Chart__Group__0__Impl rule__Chart__Group__1 ;
+    // InternalChartDSL.g:4802:1: rule__Chart__Group__0 : rule__Chart__Group__0__Impl rule__Chart__Group__1 ;
     public final void rule__Chart__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4444:1: ( rule__Chart__Group__0__Impl rule__Chart__Group__1 )
-            // InternalChartDSL.g:4445:2: rule__Chart__Group__0__Impl rule__Chart__Group__1
+            // InternalChartDSL.g:4806:1: ( rule__Chart__Group__0__Impl rule__Chart__Group__1 )
+            // InternalChartDSL.g:4807:2: rule__Chart__Group__0__Impl rule__Chart__Group__1
             {
-            pushFollow(FOLLOW_11);
+            pushFollow(FOLLOW_16);
             rule__Chart__Group__0__Impl();
 
             state._fsp--;
@@ -16543,23 +17817,23 @@
 
 
     // $ANTLR start "rule__Chart__Group__0__Impl"
-    // InternalChartDSL.g:4452:1: rule__Chart__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:4814:1: rule__Chart__Group__0__Impl : ( () ) ;
     public final void rule__Chart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4456:1: ( ( () ) )
-            // InternalChartDSL.g:4457:1: ( () )
+            // InternalChartDSL.g:4818:1: ( ( () ) )
+            // InternalChartDSL.g:4819:1: ( () )
             {
-            // InternalChartDSL.g:4457:1: ( () )
-            // InternalChartDSL.g:4458:2: ()
+            // InternalChartDSL.g:4819:1: ( () )
+            // InternalChartDSL.g:4820:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getChartAction_0()); 
             }
-            // InternalChartDSL.g:4459:2: ()
-            // InternalChartDSL.g:4459:3: 
+            // InternalChartDSL.g:4821:2: ()
+            // InternalChartDSL.g:4821:3: 
             {
             }
 
@@ -16584,14 +17858,14 @@
 
 
     // $ANTLR start "rule__Chart__Group__1"
-    // InternalChartDSL.g:4467:1: rule__Chart__Group__1 : rule__Chart__Group__1__Impl rule__Chart__Group__2 ;
+    // InternalChartDSL.g:4829:1: rule__Chart__Group__1 : rule__Chart__Group__1__Impl rule__Chart__Group__2 ;
     public final void rule__Chart__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4471:1: ( rule__Chart__Group__1__Impl rule__Chart__Group__2 )
-            // InternalChartDSL.g:4472:2: rule__Chart__Group__1__Impl rule__Chart__Group__2
+            // InternalChartDSL.g:4833:1: ( rule__Chart__Group__1__Impl rule__Chart__Group__2 )
+            // InternalChartDSL.g:4834:2: rule__Chart__Group__1__Impl rule__Chart__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__Chart__Group__1__Impl();
@@ -16622,22 +17896,22 @@
 
 
     // $ANTLR start "rule__Chart__Group__1__Impl"
-    // InternalChartDSL.g:4479:1: rule__Chart__Group__1__Impl : ( 'chart' ) ;
+    // InternalChartDSL.g:4841:1: rule__Chart__Group__1__Impl : ( 'chart' ) ;
     public final void rule__Chart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4483:1: ( ( 'chart' ) )
-            // InternalChartDSL.g:4484:1: ( 'chart' )
+            // InternalChartDSL.g:4845:1: ( ( 'chart' ) )
+            // InternalChartDSL.g:4846:1: ( 'chart' )
             {
-            // InternalChartDSL.g:4484:1: ( 'chart' )
-            // InternalChartDSL.g:4485:2: 'chart'
+            // InternalChartDSL.g:4846:1: ( 'chart' )
+            // InternalChartDSL.g:4847:2: 'chart'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getChartKeyword_1()); 
             }
-            match(input,74,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartAccess().getChartKeyword_1()); 
             }
@@ -16663,16 +17937,16 @@
 
 
     // $ANTLR start "rule__Chart__Group__2"
-    // InternalChartDSL.g:4494:1: rule__Chart__Group__2 : rule__Chart__Group__2__Impl rule__Chart__Group__3 ;
+    // InternalChartDSL.g:4856:1: rule__Chart__Group__2 : rule__Chart__Group__2__Impl rule__Chart__Group__3 ;
     public final void rule__Chart__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4498:1: ( rule__Chart__Group__2__Impl rule__Chart__Group__3 )
-            // InternalChartDSL.g:4499:2: rule__Chart__Group__2__Impl rule__Chart__Group__3
+            // InternalChartDSL.g:4860:1: ( rule__Chart__Group__2__Impl rule__Chart__Group__3 )
+            // InternalChartDSL.g:4861:2: rule__Chart__Group__2__Impl rule__Chart__Group__3
             {
-            pushFollow(FOLLOW_12);
+            pushFollow(FOLLOW_17);
             rule__Chart__Group__2__Impl();
 
             state._fsp--;
@@ -16701,23 +17975,23 @@
 
 
     // $ANTLR start "rule__Chart__Group__2__Impl"
-    // InternalChartDSL.g:4506:1: rule__Chart__Group__2__Impl : ( ( rule__Chart__NameAssignment_2 ) ) ;
+    // InternalChartDSL.g:4868:1: rule__Chart__Group__2__Impl : ( ( rule__Chart__NameAssignment_2 ) ) ;
     public final void rule__Chart__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4510:1: ( ( ( rule__Chart__NameAssignment_2 ) ) )
-            // InternalChartDSL.g:4511:1: ( ( rule__Chart__NameAssignment_2 ) )
+            // InternalChartDSL.g:4872:1: ( ( ( rule__Chart__NameAssignment_2 ) ) )
+            // InternalChartDSL.g:4873:1: ( ( rule__Chart__NameAssignment_2 ) )
             {
-            // InternalChartDSL.g:4511:1: ( ( rule__Chart__NameAssignment_2 ) )
-            // InternalChartDSL.g:4512:2: ( rule__Chart__NameAssignment_2 )
+            // InternalChartDSL.g:4873:1: ( ( rule__Chart__NameAssignment_2 ) )
+            // InternalChartDSL.g:4874:2: ( rule__Chart__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getNameAssignment_2()); 
             }
-            // InternalChartDSL.g:4513:2: ( rule__Chart__NameAssignment_2 )
-            // InternalChartDSL.g:4513:3: rule__Chart__NameAssignment_2
+            // InternalChartDSL.g:4875:2: ( rule__Chart__NameAssignment_2 )
+            // InternalChartDSL.g:4875:3: rule__Chart__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__Chart__NameAssignment_2();
@@ -16752,16 +18026,16 @@
 
 
     // $ANTLR start "rule__Chart__Group__3"
-    // InternalChartDSL.g:4521:1: rule__Chart__Group__3 : rule__Chart__Group__3__Impl rule__Chart__Group__4 ;
+    // InternalChartDSL.g:4883:1: rule__Chart__Group__3 : rule__Chart__Group__3__Impl rule__Chart__Group__4 ;
     public final void rule__Chart__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4525:1: ( rule__Chart__Group__3__Impl rule__Chart__Group__4 )
-            // InternalChartDSL.g:4526:2: rule__Chart__Group__3__Impl rule__Chart__Group__4
+            // InternalChartDSL.g:4887:1: ( rule__Chart__Group__3__Impl rule__Chart__Group__4 )
+            // InternalChartDSL.g:4888:2: rule__Chart__Group__3__Impl rule__Chart__Group__4
             {
-            pushFollow(FOLLOW_12);
+            pushFollow(FOLLOW_17);
             rule__Chart__Group__3__Impl();
 
             state._fsp--;
@@ -16790,31 +18064,31 @@
 
 
     // $ANTLR start "rule__Chart__Group__3__Impl"
-    // InternalChartDSL.g:4533:1: rule__Chart__Group__3__Impl : ( ( rule__Chart__Group_3__0 )? ) ;
+    // InternalChartDSL.g:4895:1: rule__Chart__Group__3__Impl : ( ( rule__Chart__Group_3__0 )? ) ;
     public final void rule__Chart__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4537:1: ( ( ( rule__Chart__Group_3__0 )? ) )
-            // InternalChartDSL.g:4538:1: ( ( rule__Chart__Group_3__0 )? )
+            // InternalChartDSL.g:4899:1: ( ( ( rule__Chart__Group_3__0 )? ) )
+            // InternalChartDSL.g:4900:1: ( ( rule__Chart__Group_3__0 )? )
             {
-            // InternalChartDSL.g:4538:1: ( ( rule__Chart__Group_3__0 )? )
-            // InternalChartDSL.g:4539:2: ( rule__Chart__Group_3__0 )?
+            // InternalChartDSL.g:4900:1: ( ( rule__Chart__Group_3__0 )? )
+            // InternalChartDSL.g:4901:2: ( rule__Chart__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getGroup_3()); 
             }
-            // InternalChartDSL.g:4540:2: ( rule__Chart__Group_3__0 )?
-            int alt59=2;
-            int LA59_0 = input.LA(1);
+            // InternalChartDSL.g:4902:2: ( rule__Chart__Group_3__0 )?
+            int alt63=2;
+            int LA63_0 = input.LA(1);
 
-            if ( (LA59_0==124) ) {
-                alt59=1;
+            if ( (LA63_0==140) ) {
+                alt63=1;
             }
-            switch (alt59) {
+            switch (alt63) {
                 case 1 :
-                    // InternalChartDSL.g:4540:3: rule__Chart__Group_3__0
+                    // InternalChartDSL.g:4902:3: rule__Chart__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Chart__Group_3__0();
@@ -16852,16 +18126,16 @@
 
 
     // $ANTLR start "rule__Chart__Group__4"
-    // InternalChartDSL.g:4548:1: rule__Chart__Group__4 : rule__Chart__Group__4__Impl rule__Chart__Group__5 ;
+    // InternalChartDSL.g:4910:1: rule__Chart__Group__4 : rule__Chart__Group__4__Impl rule__Chart__Group__5 ;
     public final void rule__Chart__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4552:1: ( rule__Chart__Group__4__Impl rule__Chart__Group__5 )
-            // InternalChartDSL.g:4553:2: rule__Chart__Group__4__Impl rule__Chart__Group__5
+            // InternalChartDSL.g:4914:1: ( rule__Chart__Group__4__Impl rule__Chart__Group__5 )
+            // InternalChartDSL.g:4915:2: rule__Chart__Group__4__Impl rule__Chart__Group__5
             {
-            pushFollow(FOLLOW_13);
+            pushFollow(FOLLOW_18);
             rule__Chart__Group__4__Impl();
 
             state._fsp--;
@@ -16890,22 +18164,22 @@
 
 
     // $ANTLR start "rule__Chart__Group__4__Impl"
-    // InternalChartDSL.g:4560:1: rule__Chart__Group__4__Impl : ( 'as' ) ;
+    // InternalChartDSL.g:4922:1: rule__Chart__Group__4__Impl : ( 'as' ) ;
     public final void rule__Chart__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4564:1: ( ( 'as' ) )
-            // InternalChartDSL.g:4565:1: ( 'as' )
+            // InternalChartDSL.g:4926:1: ( ( 'as' ) )
+            // InternalChartDSL.g:4927:1: ( 'as' )
             {
-            // InternalChartDSL.g:4565:1: ( 'as' )
-            // InternalChartDSL.g:4566:2: 'as'
+            // InternalChartDSL.g:4927:1: ( 'as' )
+            // InternalChartDSL.g:4928:2: 'as'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getAsKeyword_4()); 
             }
-            match(input,75,FOLLOW_2); if (state.failed) return ;
+            match(input,83,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartAccess().getAsKeyword_4()); 
             }
@@ -16931,16 +18205,16 @@
 
 
     // $ANTLR start "rule__Chart__Group__5"
-    // InternalChartDSL.g:4575:1: rule__Chart__Group__5 : rule__Chart__Group__5__Impl rule__Chart__Group__6 ;
+    // InternalChartDSL.g:4937:1: rule__Chart__Group__5 : rule__Chart__Group__5__Impl rule__Chart__Group__6 ;
     public final void rule__Chart__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4579:1: ( rule__Chart__Group__5__Impl rule__Chart__Group__6 )
-            // InternalChartDSL.g:4580:2: rule__Chart__Group__5__Impl rule__Chart__Group__6
+            // InternalChartDSL.g:4941:1: ( rule__Chart__Group__5__Impl rule__Chart__Group__6 )
+            // InternalChartDSL.g:4942:2: rule__Chart__Group__5__Impl rule__Chart__Group__6
             {
-            pushFollow(FOLLOW_14);
+            pushFollow(FOLLOW_19);
             rule__Chart__Group__5__Impl();
 
             state._fsp--;
@@ -16969,23 +18243,23 @@
 
 
     // $ANTLR start "rule__Chart__Group__5__Impl"
-    // InternalChartDSL.g:4587:1: rule__Chart__Group__5__Impl : ( ( rule__Chart__CharttypeAssignment_5 ) ) ;
+    // InternalChartDSL.g:4949:1: rule__Chart__Group__5__Impl : ( ( rule__Chart__CharttypeAssignment_5 ) ) ;
     public final void rule__Chart__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4591:1: ( ( ( rule__Chart__CharttypeAssignment_5 ) ) )
-            // InternalChartDSL.g:4592:1: ( ( rule__Chart__CharttypeAssignment_5 ) )
+            // InternalChartDSL.g:4953:1: ( ( ( rule__Chart__CharttypeAssignment_5 ) ) )
+            // InternalChartDSL.g:4954:1: ( ( rule__Chart__CharttypeAssignment_5 ) )
             {
-            // InternalChartDSL.g:4592:1: ( ( rule__Chart__CharttypeAssignment_5 ) )
-            // InternalChartDSL.g:4593:2: ( rule__Chart__CharttypeAssignment_5 )
+            // InternalChartDSL.g:4954:1: ( ( rule__Chart__CharttypeAssignment_5 ) )
+            // InternalChartDSL.g:4955:2: ( rule__Chart__CharttypeAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getCharttypeAssignment_5()); 
             }
-            // InternalChartDSL.g:4594:2: ( rule__Chart__CharttypeAssignment_5 )
-            // InternalChartDSL.g:4594:3: rule__Chart__CharttypeAssignment_5
+            // InternalChartDSL.g:4956:2: ( rule__Chart__CharttypeAssignment_5 )
+            // InternalChartDSL.g:4956:3: rule__Chart__CharttypeAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__Chart__CharttypeAssignment_5();
@@ -17020,16 +18294,16 @@
 
 
     // $ANTLR start "rule__Chart__Group__6"
-    // InternalChartDSL.g:4602:1: rule__Chart__Group__6 : rule__Chart__Group__6__Impl rule__Chart__Group__7 ;
+    // InternalChartDSL.g:4964:1: rule__Chart__Group__6 : rule__Chart__Group__6__Impl rule__Chart__Group__7 ;
     public final void rule__Chart__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4606:1: ( rule__Chart__Group__6__Impl rule__Chart__Group__7 )
-            // InternalChartDSL.g:4607:2: rule__Chart__Group__6__Impl rule__Chart__Group__7
+            // InternalChartDSL.g:4968:1: ( rule__Chart__Group__6__Impl rule__Chart__Group__7 )
+            // InternalChartDSL.g:4969:2: rule__Chart__Group__6__Impl rule__Chart__Group__7
             {
-            pushFollow(FOLLOW_15);
+            pushFollow(FOLLOW_20);
             rule__Chart__Group__6__Impl();
 
             state._fsp--;
@@ -17058,23 +18332,23 @@
 
 
     // $ANTLR start "rule__Chart__Group__6__Impl"
-    // InternalChartDSL.g:4614:1: rule__Chart__Group__6__Impl : ( ( rule__Chart__UnorderedGroup_6 ) ) ;
+    // InternalChartDSL.g:4976:1: rule__Chart__Group__6__Impl : ( ( rule__Chart__UnorderedGroup_6 ) ) ;
     public final void rule__Chart__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4618:1: ( ( ( rule__Chart__UnorderedGroup_6 ) ) )
-            // InternalChartDSL.g:4619:1: ( ( rule__Chart__UnorderedGroup_6 ) )
+            // InternalChartDSL.g:4980:1: ( ( ( rule__Chart__UnorderedGroup_6 ) ) )
+            // InternalChartDSL.g:4981:1: ( ( rule__Chart__UnorderedGroup_6 ) )
             {
-            // InternalChartDSL.g:4619:1: ( ( rule__Chart__UnorderedGroup_6 ) )
-            // InternalChartDSL.g:4620:2: ( rule__Chart__UnorderedGroup_6 )
+            // InternalChartDSL.g:4981:1: ( ( rule__Chart__UnorderedGroup_6 ) )
+            // InternalChartDSL.g:4982:2: ( rule__Chart__UnorderedGroup_6 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getUnorderedGroup_6()); 
             }
-            // InternalChartDSL.g:4621:2: ( rule__Chart__UnorderedGroup_6 )
-            // InternalChartDSL.g:4621:3: rule__Chart__UnorderedGroup_6
+            // InternalChartDSL.g:4983:2: ( rule__Chart__UnorderedGroup_6 )
+            // InternalChartDSL.g:4983:3: rule__Chart__UnorderedGroup_6
             {
             pushFollow(FOLLOW_2);
             rule__Chart__UnorderedGroup_6();
@@ -17109,14 +18383,14 @@
 
 
     // $ANTLR start "rule__Chart__Group__7"
-    // InternalChartDSL.g:4629:1: rule__Chart__Group__7 : rule__Chart__Group__7__Impl ;
+    // InternalChartDSL.g:4991:1: rule__Chart__Group__7 : rule__Chart__Group__7__Impl ;
     public final void rule__Chart__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4633:1: ( rule__Chart__Group__7__Impl )
-            // InternalChartDSL.g:4634:2: rule__Chart__Group__7__Impl
+            // InternalChartDSL.g:4995:1: ( rule__Chart__Group__7__Impl )
+            // InternalChartDSL.g:4996:2: rule__Chart__Group__7__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Chart__Group__7__Impl();
@@ -17142,31 +18416,31 @@
 
 
     // $ANTLR start "rule__Chart__Group__7__Impl"
-    // InternalChartDSL.g:4640:1: rule__Chart__Group__7__Impl : ( ( rule__Chart__Group_7__0 )? ) ;
+    // InternalChartDSL.g:5002:1: rule__Chart__Group__7__Impl : ( ( rule__Chart__Group_7__0 )? ) ;
     public final void rule__Chart__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4644:1: ( ( ( rule__Chart__Group_7__0 )? ) )
-            // InternalChartDSL.g:4645:1: ( ( rule__Chart__Group_7__0 )? )
+            // InternalChartDSL.g:5006:1: ( ( ( rule__Chart__Group_7__0 )? ) )
+            // InternalChartDSL.g:5007:1: ( ( rule__Chart__Group_7__0 )? )
             {
-            // InternalChartDSL.g:4645:1: ( ( rule__Chart__Group_7__0 )? )
-            // InternalChartDSL.g:4646:2: ( rule__Chart__Group_7__0 )?
+            // InternalChartDSL.g:5007:1: ( ( rule__Chart__Group_7__0 )? )
+            // InternalChartDSL.g:5008:2: ( rule__Chart__Group_7__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getGroup_7()); 
             }
-            // InternalChartDSL.g:4647:2: ( rule__Chart__Group_7__0 )?
-            int alt60=2;
-            int LA60_0 = input.LA(1);
+            // InternalChartDSL.g:5009:2: ( rule__Chart__Group_7__0 )?
+            int alt64=2;
+            int LA64_0 = input.LA(1);
 
-            if ( (LA60_0==77) ) {
-                alt60=1;
+            if ( (LA64_0==85) ) {
+                alt64=1;
             }
-            switch (alt60) {
+            switch (alt64) {
                 case 1 :
-                    // InternalChartDSL.g:4647:3: rule__Chart__Group_7__0
+                    // InternalChartDSL.g:5009:3: rule__Chart__Group_7__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Chart__Group_7__0();
@@ -17204,16 +18478,16 @@
 
 
     // $ANTLR start "rule__Chart__Group_3__0"
-    // InternalChartDSL.g:4656:1: rule__Chart__Group_3__0 : rule__Chart__Group_3__0__Impl rule__Chart__Group_3__1 ;
+    // InternalChartDSL.g:5018:1: rule__Chart__Group_3__0 : rule__Chart__Group_3__0__Impl rule__Chart__Group_3__1 ;
     public final void rule__Chart__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4660:1: ( rule__Chart__Group_3__0__Impl rule__Chart__Group_3__1 )
-            // InternalChartDSL.g:4661:2: rule__Chart__Group_3__0__Impl rule__Chart__Group_3__1
+            // InternalChartDSL.g:5022:1: ( rule__Chart__Group_3__0__Impl rule__Chart__Group_3__1 )
+            // InternalChartDSL.g:5023:2: rule__Chart__Group_3__0__Impl rule__Chart__Group_3__1
             {
-            pushFollow(FOLLOW_16);
+            pushFollow(FOLLOW_15);
             rule__Chart__Group_3__0__Impl();
 
             state._fsp--;
@@ -17242,23 +18516,23 @@
 
 
     // $ANTLR start "rule__Chart__Group_3__0__Impl"
-    // InternalChartDSL.g:4668:1: rule__Chart__Group_3__0__Impl : ( ( rule__Chart__DescriptionAssignment_3_0 ) ) ;
+    // InternalChartDSL.g:5030:1: rule__Chart__Group_3__0__Impl : ( ( rule__Chart__DescriptionAssignment_3_0 ) ) ;
     public final void rule__Chart__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4672:1: ( ( ( rule__Chart__DescriptionAssignment_3_0 ) ) )
-            // InternalChartDSL.g:4673:1: ( ( rule__Chart__DescriptionAssignment_3_0 ) )
+            // InternalChartDSL.g:5034:1: ( ( ( rule__Chart__DescriptionAssignment_3_0 ) ) )
+            // InternalChartDSL.g:5035:1: ( ( rule__Chart__DescriptionAssignment_3_0 ) )
             {
-            // InternalChartDSL.g:4673:1: ( ( rule__Chart__DescriptionAssignment_3_0 ) )
-            // InternalChartDSL.g:4674:2: ( rule__Chart__DescriptionAssignment_3_0 )
+            // InternalChartDSL.g:5035:1: ( ( rule__Chart__DescriptionAssignment_3_0 ) )
+            // InternalChartDSL.g:5036:2: ( rule__Chart__DescriptionAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getDescriptionAssignment_3_0()); 
             }
-            // InternalChartDSL.g:4675:2: ( rule__Chart__DescriptionAssignment_3_0 )
-            // InternalChartDSL.g:4675:3: rule__Chart__DescriptionAssignment_3_0
+            // InternalChartDSL.g:5037:2: ( rule__Chart__DescriptionAssignment_3_0 )
+            // InternalChartDSL.g:5037:3: rule__Chart__DescriptionAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__Chart__DescriptionAssignment_3_0();
@@ -17293,14 +18567,14 @@
 
 
     // $ANTLR start "rule__Chart__Group_3__1"
-    // InternalChartDSL.g:4683:1: rule__Chart__Group_3__1 : rule__Chart__Group_3__1__Impl ;
+    // InternalChartDSL.g:5045:1: rule__Chart__Group_3__1 : rule__Chart__Group_3__1__Impl ;
     public final void rule__Chart__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4687:1: ( rule__Chart__Group_3__1__Impl )
-            // InternalChartDSL.g:4688:2: rule__Chart__Group_3__1__Impl
+            // InternalChartDSL.g:5049:1: ( rule__Chart__Group_3__1__Impl )
+            // InternalChartDSL.g:5050:2: rule__Chart__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Chart__Group_3__1__Impl();
@@ -17326,23 +18600,23 @@
 
 
     // $ANTLR start "rule__Chart__Group_3__1__Impl"
-    // InternalChartDSL.g:4694:1: rule__Chart__Group_3__1__Impl : ( ( rule__Chart__DescriptionValueAssignment_3_1 ) ) ;
+    // InternalChartDSL.g:5056:1: rule__Chart__Group_3__1__Impl : ( ( rule__Chart__DescriptionValueAssignment_3_1 ) ) ;
     public final void rule__Chart__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4698:1: ( ( ( rule__Chart__DescriptionValueAssignment_3_1 ) ) )
-            // InternalChartDSL.g:4699:1: ( ( rule__Chart__DescriptionValueAssignment_3_1 ) )
+            // InternalChartDSL.g:5060:1: ( ( ( rule__Chart__DescriptionValueAssignment_3_1 ) ) )
+            // InternalChartDSL.g:5061:1: ( ( rule__Chart__DescriptionValueAssignment_3_1 ) )
             {
-            // InternalChartDSL.g:4699:1: ( ( rule__Chart__DescriptionValueAssignment_3_1 ) )
-            // InternalChartDSL.g:4700:2: ( rule__Chart__DescriptionValueAssignment_3_1 )
+            // InternalChartDSL.g:5061:1: ( ( rule__Chart__DescriptionValueAssignment_3_1 ) )
+            // InternalChartDSL.g:5062:2: ( rule__Chart__DescriptionValueAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getDescriptionValueAssignment_3_1()); 
             }
-            // InternalChartDSL.g:4701:2: ( rule__Chart__DescriptionValueAssignment_3_1 )
-            // InternalChartDSL.g:4701:3: rule__Chart__DescriptionValueAssignment_3_1
+            // InternalChartDSL.g:5063:2: ( rule__Chart__DescriptionValueAssignment_3_1 )
+            // InternalChartDSL.g:5063:3: rule__Chart__DescriptionValueAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__Chart__DescriptionValueAssignment_3_1();
@@ -17377,14 +18651,14 @@
 
 
     // $ANTLR start "rule__Chart__Group_6_1__0"
-    // InternalChartDSL.g:4710:1: rule__Chart__Group_6_1__0 : rule__Chart__Group_6_1__0__Impl rule__Chart__Group_6_1__1 ;
+    // InternalChartDSL.g:5072:1: rule__Chart__Group_6_1__0 : rule__Chart__Group_6_1__0__Impl rule__Chart__Group_6_1__1 ;
     public final void rule__Chart__Group_6_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4714:1: ( rule__Chart__Group_6_1__0__Impl rule__Chart__Group_6_1__1 )
-            // InternalChartDSL.g:4715:2: rule__Chart__Group_6_1__0__Impl rule__Chart__Group_6_1__1
+            // InternalChartDSL.g:5076:1: ( rule__Chart__Group_6_1__0__Impl rule__Chart__Group_6_1__1 )
+            // InternalChartDSL.g:5077:2: rule__Chart__Group_6_1__0__Impl rule__Chart__Group_6_1__1
             {
             pushFollow(FOLLOW_7);
             rule__Chart__Group_6_1__0__Impl();
@@ -17415,22 +18689,22 @@
 
 
     // $ANTLR start "rule__Chart__Group_6_1__0__Impl"
-    // InternalChartDSL.g:4722:1: rule__Chart__Group_6_1__0__Impl : ( 'toolbar' ) ;
+    // InternalChartDSL.g:5084:1: rule__Chart__Group_6_1__0__Impl : ( 'toolbar' ) ;
     public final void rule__Chart__Group_6_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4726:1: ( ( 'toolbar' ) )
-            // InternalChartDSL.g:4727:1: ( 'toolbar' )
+            // InternalChartDSL.g:5088:1: ( ( 'toolbar' ) )
+            // InternalChartDSL.g:5089:1: ( 'toolbar' )
             {
-            // InternalChartDSL.g:4727:1: ( 'toolbar' )
-            // InternalChartDSL.g:4728:2: 'toolbar'
+            // InternalChartDSL.g:5089:1: ( 'toolbar' )
+            // InternalChartDSL.g:5090:2: 'toolbar'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getToolbarKeyword_6_1_0()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,84,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartAccess().getToolbarKeyword_6_1_0()); 
             }
@@ -17456,14 +18730,14 @@
 
 
     // $ANTLR start "rule__Chart__Group_6_1__1"
-    // InternalChartDSL.g:4737:1: rule__Chart__Group_6_1__1 : rule__Chart__Group_6_1__1__Impl ;
+    // InternalChartDSL.g:5099:1: rule__Chart__Group_6_1__1 : rule__Chart__Group_6_1__1__Impl ;
     public final void rule__Chart__Group_6_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4741:1: ( rule__Chart__Group_6_1__1__Impl )
-            // InternalChartDSL.g:4742:2: rule__Chart__Group_6_1__1__Impl
+            // InternalChartDSL.g:5103:1: ( rule__Chart__Group_6_1__1__Impl )
+            // InternalChartDSL.g:5104:2: rule__Chart__Group_6_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Chart__Group_6_1__1__Impl();
@@ -17489,23 +18763,23 @@
 
 
     // $ANTLR start "rule__Chart__Group_6_1__1__Impl"
-    // InternalChartDSL.g:4748:1: rule__Chart__Group_6_1__1__Impl : ( ( rule__Chart__ToolbarAssignment_6_1_1 ) ) ;
+    // InternalChartDSL.g:5110:1: rule__Chart__Group_6_1__1__Impl : ( ( rule__Chart__ToolbarAssignment_6_1_1 ) ) ;
     public final void rule__Chart__Group_6_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4752:1: ( ( ( rule__Chart__ToolbarAssignment_6_1_1 ) ) )
-            // InternalChartDSL.g:4753:1: ( ( rule__Chart__ToolbarAssignment_6_1_1 ) )
+            // InternalChartDSL.g:5114:1: ( ( ( rule__Chart__ToolbarAssignment_6_1_1 ) ) )
+            // InternalChartDSL.g:5115:1: ( ( rule__Chart__ToolbarAssignment_6_1_1 ) )
             {
-            // InternalChartDSL.g:4753:1: ( ( rule__Chart__ToolbarAssignment_6_1_1 ) )
-            // InternalChartDSL.g:4754:2: ( rule__Chart__ToolbarAssignment_6_1_1 )
+            // InternalChartDSL.g:5115:1: ( ( rule__Chart__ToolbarAssignment_6_1_1 ) )
+            // InternalChartDSL.g:5116:2: ( rule__Chart__ToolbarAssignment_6_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getToolbarAssignment_6_1_1()); 
             }
-            // InternalChartDSL.g:4755:2: ( rule__Chart__ToolbarAssignment_6_1_1 )
-            // InternalChartDSL.g:4755:3: rule__Chart__ToolbarAssignment_6_1_1
+            // InternalChartDSL.g:5117:2: ( rule__Chart__ToolbarAssignment_6_1_1 )
+            // InternalChartDSL.g:5117:3: rule__Chart__ToolbarAssignment_6_1_1
             {
             pushFollow(FOLLOW_2);
             rule__Chart__ToolbarAssignment_6_1_1();
@@ -17540,16 +18814,16 @@
 
 
     // $ANTLR start "rule__Chart__Group_7__0"
-    // InternalChartDSL.g:4764:1: rule__Chart__Group_7__0 : rule__Chart__Group_7__0__Impl rule__Chart__Group_7__1 ;
+    // InternalChartDSL.g:5126:1: rule__Chart__Group_7__0 : rule__Chart__Group_7__0__Impl rule__Chart__Group_7__1 ;
     public final void rule__Chart__Group_7__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4768:1: ( rule__Chart__Group_7__0__Impl rule__Chart__Group_7__1 )
-            // InternalChartDSL.g:4769:2: rule__Chart__Group_7__0__Impl rule__Chart__Group_7__1
+            // InternalChartDSL.g:5130:1: ( rule__Chart__Group_7__0__Impl rule__Chart__Group_7__1 )
+            // InternalChartDSL.g:5131:2: rule__Chart__Group_7__0__Impl rule__Chart__Group_7__1
             {
-            pushFollow(FOLLOW_17);
+            pushFollow(FOLLOW_21);
             rule__Chart__Group_7__0__Impl();
 
             state._fsp--;
@@ -17578,22 +18852,22 @@
 
 
     // $ANTLR start "rule__Chart__Group_7__0__Impl"
-    // InternalChartDSL.g:4776:1: rule__Chart__Group_7__0__Impl : ( 'using' ) ;
+    // InternalChartDSL.g:5138:1: rule__Chart__Group_7__0__Impl : ( 'using' ) ;
     public final void rule__Chart__Group_7__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4780:1: ( ( 'using' ) )
-            // InternalChartDSL.g:4781:1: ( 'using' )
+            // InternalChartDSL.g:5142:1: ( ( 'using' ) )
+            // InternalChartDSL.g:5143:1: ( 'using' )
             {
-            // InternalChartDSL.g:4781:1: ( 'using' )
-            // InternalChartDSL.g:4782:2: 'using'
+            // InternalChartDSL.g:5143:1: ( 'using' )
+            // InternalChartDSL.g:5144:2: 'using'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getUsingKeyword_7_0()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartAccess().getUsingKeyword_7_0()); 
             }
@@ -17619,14 +18893,14 @@
 
 
     // $ANTLR start "rule__Chart__Group_7__1"
-    // InternalChartDSL.g:4791:1: rule__Chart__Group_7__1 : rule__Chart__Group_7__1__Impl ;
+    // InternalChartDSL.g:5153:1: rule__Chart__Group_7__1 : rule__Chart__Group_7__1__Impl ;
     public final void rule__Chart__Group_7__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4795:1: ( rule__Chart__Group_7__1__Impl )
-            // InternalChartDSL.g:4796:2: rule__Chart__Group_7__1__Impl
+            // InternalChartDSL.g:5157:1: ( rule__Chart__Group_7__1__Impl )
+            // InternalChartDSL.g:5158:2: rule__Chart__Group_7__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Chart__Group_7__1__Impl();
@@ -17652,23 +18926,23 @@
 
 
     // $ANTLR start "rule__Chart__Group_7__1__Impl"
-    // InternalChartDSL.g:4802:1: rule__Chart__Group_7__1__Impl : ( ( rule__Chart__SourceAssignment_7_1 ) ) ;
+    // InternalChartDSL.g:5164:1: rule__Chart__Group_7__1__Impl : ( ( rule__Chart__SourceAssignment_7_1 ) ) ;
     public final void rule__Chart__Group_7__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4806:1: ( ( ( rule__Chart__SourceAssignment_7_1 ) ) )
-            // InternalChartDSL.g:4807:1: ( ( rule__Chart__SourceAssignment_7_1 ) )
+            // InternalChartDSL.g:5168:1: ( ( ( rule__Chart__SourceAssignment_7_1 ) ) )
+            // InternalChartDSL.g:5169:1: ( ( rule__Chart__SourceAssignment_7_1 ) )
             {
-            // InternalChartDSL.g:4807:1: ( ( rule__Chart__SourceAssignment_7_1 ) )
-            // InternalChartDSL.g:4808:2: ( rule__Chart__SourceAssignment_7_1 )
+            // InternalChartDSL.g:5169:1: ( ( rule__Chart__SourceAssignment_7_1 ) )
+            // InternalChartDSL.g:5170:2: ( rule__Chart__SourceAssignment_7_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getSourceAssignment_7_1()); 
             }
-            // InternalChartDSL.g:4809:2: ( rule__Chart__SourceAssignment_7_1 )
-            // InternalChartDSL.g:4809:3: rule__Chart__SourceAssignment_7_1
+            // InternalChartDSL.g:5171:2: ( rule__Chart__SourceAssignment_7_1 )
+            // InternalChartDSL.g:5171:3: rule__Chart__SourceAssignment_7_1
             {
             pushFollow(FOLLOW_2);
             rule__Chart__SourceAssignment_7_1();
@@ -17703,16 +18977,16 @@
 
 
     // $ANTLR start "rule__ChartBar__Group__0"
-    // InternalChartDSL.g:4818:1: rule__ChartBar__Group__0 : rule__ChartBar__Group__0__Impl rule__ChartBar__Group__1 ;
+    // InternalChartDSL.g:5180:1: rule__ChartBar__Group__0 : rule__ChartBar__Group__0__Impl rule__ChartBar__Group__1 ;
     public final void rule__ChartBar__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4822:1: ( rule__ChartBar__Group__0__Impl rule__ChartBar__Group__1 )
-            // InternalChartDSL.g:4823:2: rule__ChartBar__Group__0__Impl rule__ChartBar__Group__1
+            // InternalChartDSL.g:5184:1: ( rule__ChartBar__Group__0__Impl rule__ChartBar__Group__1 )
+            // InternalChartDSL.g:5185:2: rule__ChartBar__Group__0__Impl rule__ChartBar__Group__1
             {
-            pushFollow(FOLLOW_18);
+            pushFollow(FOLLOW_22);
             rule__ChartBar__Group__0__Impl();
 
             state._fsp--;
@@ -17741,23 +19015,23 @@
 
 
     // $ANTLR start "rule__ChartBar__Group__0__Impl"
-    // InternalChartDSL.g:4830:1: rule__ChartBar__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:5192:1: rule__ChartBar__Group__0__Impl : ( () ) ;
     public final void rule__ChartBar__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4834:1: ( ( () ) )
-            // InternalChartDSL.g:4835:1: ( () )
+            // InternalChartDSL.g:5196:1: ( ( () ) )
+            // InternalChartDSL.g:5197:1: ( () )
             {
-            // InternalChartDSL.g:4835:1: ( () )
-            // InternalChartDSL.g:4836:2: ()
+            // InternalChartDSL.g:5197:1: ( () )
+            // InternalChartDSL.g:5198:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getChartBarAction_0()); 
             }
-            // InternalChartDSL.g:4837:2: ()
-            // InternalChartDSL.g:4837:3: 
+            // InternalChartDSL.g:5199:2: ()
+            // InternalChartDSL.g:5199:3: 
             {
             }
 
@@ -17782,16 +19056,16 @@
 
 
     // $ANTLR start "rule__ChartBar__Group__1"
-    // InternalChartDSL.g:4845:1: rule__ChartBar__Group__1 : rule__ChartBar__Group__1__Impl rule__ChartBar__Group__2 ;
+    // InternalChartDSL.g:5207:1: rule__ChartBar__Group__1 : rule__ChartBar__Group__1__Impl rule__ChartBar__Group__2 ;
     public final void rule__ChartBar__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4849:1: ( rule__ChartBar__Group__1__Impl rule__ChartBar__Group__2 )
-            // InternalChartDSL.g:4850:2: rule__ChartBar__Group__1__Impl rule__ChartBar__Group__2
+            // InternalChartDSL.g:5211:1: ( rule__ChartBar__Group__1__Impl rule__ChartBar__Group__2 )
+            // InternalChartDSL.g:5212:2: rule__ChartBar__Group__1__Impl rule__ChartBar__Group__2
             {
-            pushFollow(FOLLOW_19);
+            pushFollow(FOLLOW_23);
             rule__ChartBar__Group__1__Impl();
 
             state._fsp--;
@@ -17820,22 +19094,22 @@
 
 
     // $ANTLR start "rule__ChartBar__Group__1__Impl"
-    // InternalChartDSL.g:4857:1: rule__ChartBar__Group__1__Impl : ( 'bar' ) ;
+    // InternalChartDSL.g:5219:1: rule__ChartBar__Group__1__Impl : ( 'bar' ) ;
     public final void rule__ChartBar__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4861:1: ( ( 'bar' ) )
-            // InternalChartDSL.g:4862:1: ( 'bar' )
+            // InternalChartDSL.g:5223:1: ( ( 'bar' ) )
+            // InternalChartDSL.g:5224:1: ( 'bar' )
             {
-            // InternalChartDSL.g:4862:1: ( 'bar' )
-            // InternalChartDSL.g:4863:2: 'bar'
+            // InternalChartDSL.g:5224:1: ( 'bar' )
+            // InternalChartDSL.g:5225:2: 'bar'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getBarKeyword_1()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,86,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartBarAccess().getBarKeyword_1()); 
             }
@@ -17861,14 +19135,14 @@
 
 
     // $ANTLR start "rule__ChartBar__Group__2"
-    // InternalChartDSL.g:4872:1: rule__ChartBar__Group__2 : rule__ChartBar__Group__2__Impl ;
+    // InternalChartDSL.g:5234:1: rule__ChartBar__Group__2 : rule__ChartBar__Group__2__Impl ;
     public final void rule__ChartBar__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4876:1: ( rule__ChartBar__Group__2__Impl )
-            // InternalChartDSL.g:4877:2: rule__ChartBar__Group__2__Impl
+            // InternalChartDSL.g:5238:1: ( rule__ChartBar__Group__2__Impl )
+            // InternalChartDSL.g:5239:2: rule__ChartBar__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartBar__Group__2__Impl();
@@ -17894,23 +19168,23 @@
 
 
     // $ANTLR start "rule__ChartBar__Group__2__Impl"
-    // InternalChartDSL.g:4883:1: rule__ChartBar__Group__2__Impl : ( ( rule__ChartBar__UnorderedGroup_2 ) ) ;
+    // InternalChartDSL.g:5245:1: rule__ChartBar__Group__2__Impl : ( ( rule__ChartBar__UnorderedGroup_2 ) ) ;
     public final void rule__ChartBar__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4887:1: ( ( ( rule__ChartBar__UnorderedGroup_2 ) ) )
-            // InternalChartDSL.g:4888:1: ( ( rule__ChartBar__UnorderedGroup_2 ) )
+            // InternalChartDSL.g:5249:1: ( ( ( rule__ChartBar__UnorderedGroup_2 ) ) )
+            // InternalChartDSL.g:5250:1: ( ( rule__ChartBar__UnorderedGroup_2 ) )
             {
-            // InternalChartDSL.g:4888:1: ( ( rule__ChartBar__UnorderedGroup_2 ) )
-            // InternalChartDSL.g:4889:2: ( rule__ChartBar__UnorderedGroup_2 )
+            // InternalChartDSL.g:5250:1: ( ( rule__ChartBar__UnorderedGroup_2 ) )
+            // InternalChartDSL.g:5251:2: ( rule__ChartBar__UnorderedGroup_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getUnorderedGroup_2()); 
             }
-            // InternalChartDSL.g:4890:2: ( rule__ChartBar__UnorderedGroup_2 )
-            // InternalChartDSL.g:4890:3: rule__ChartBar__UnorderedGroup_2
+            // InternalChartDSL.g:5252:2: ( rule__ChartBar__UnorderedGroup_2 )
+            // InternalChartDSL.g:5252:3: rule__ChartBar__UnorderedGroup_2
             {
             pushFollow(FOLLOW_2);
             rule__ChartBar__UnorderedGroup_2();
@@ -17945,16 +19219,16 @@
 
 
     // $ANTLR start "rule__ChartLine__Group__0"
-    // InternalChartDSL.g:4899:1: rule__ChartLine__Group__0 : rule__ChartLine__Group__0__Impl rule__ChartLine__Group__1 ;
+    // InternalChartDSL.g:5261:1: rule__ChartLine__Group__0 : rule__ChartLine__Group__0__Impl rule__ChartLine__Group__1 ;
     public final void rule__ChartLine__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4903:1: ( rule__ChartLine__Group__0__Impl rule__ChartLine__Group__1 )
-            // InternalChartDSL.g:4904:2: rule__ChartLine__Group__0__Impl rule__ChartLine__Group__1
+            // InternalChartDSL.g:5265:1: ( rule__ChartLine__Group__0__Impl rule__ChartLine__Group__1 )
+            // InternalChartDSL.g:5266:2: rule__ChartLine__Group__0__Impl rule__ChartLine__Group__1
             {
-            pushFollow(FOLLOW_20);
+            pushFollow(FOLLOW_24);
             rule__ChartLine__Group__0__Impl();
 
             state._fsp--;
@@ -17983,23 +19257,23 @@
 
 
     // $ANTLR start "rule__ChartLine__Group__0__Impl"
-    // InternalChartDSL.g:4911:1: rule__ChartLine__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:5273:1: rule__ChartLine__Group__0__Impl : ( () ) ;
     public final void rule__ChartLine__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4915:1: ( ( () ) )
-            // InternalChartDSL.g:4916:1: ( () )
+            // InternalChartDSL.g:5277:1: ( ( () ) )
+            // InternalChartDSL.g:5278:1: ( () )
             {
-            // InternalChartDSL.g:4916:1: ( () )
-            // InternalChartDSL.g:4917:2: ()
+            // InternalChartDSL.g:5278:1: ( () )
+            // InternalChartDSL.g:5279:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getChartLineAction_0()); 
             }
-            // InternalChartDSL.g:4918:2: ()
-            // InternalChartDSL.g:4918:3: 
+            // InternalChartDSL.g:5280:2: ()
+            // InternalChartDSL.g:5280:3: 
             {
             }
 
@@ -18024,16 +19298,16 @@
 
 
     // $ANTLR start "rule__ChartLine__Group__1"
-    // InternalChartDSL.g:4926:1: rule__ChartLine__Group__1 : rule__ChartLine__Group__1__Impl rule__ChartLine__Group__2 ;
+    // InternalChartDSL.g:5288:1: rule__ChartLine__Group__1 : rule__ChartLine__Group__1__Impl rule__ChartLine__Group__2 ;
     public final void rule__ChartLine__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4930:1: ( rule__ChartLine__Group__1__Impl rule__ChartLine__Group__2 )
-            // InternalChartDSL.g:4931:2: rule__ChartLine__Group__1__Impl rule__ChartLine__Group__2
+            // InternalChartDSL.g:5292:1: ( rule__ChartLine__Group__1__Impl rule__ChartLine__Group__2 )
+            // InternalChartDSL.g:5293:2: rule__ChartLine__Group__1__Impl rule__ChartLine__Group__2
             {
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_25);
             rule__ChartLine__Group__1__Impl();
 
             state._fsp--;
@@ -18062,22 +19336,22 @@
 
 
     // $ANTLR start "rule__ChartLine__Group__1__Impl"
-    // InternalChartDSL.g:4938:1: rule__ChartLine__Group__1__Impl : ( 'line' ) ;
+    // InternalChartDSL.g:5300:1: rule__ChartLine__Group__1__Impl : ( 'line' ) ;
     public final void rule__ChartLine__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4942:1: ( ( 'line' ) )
-            // InternalChartDSL.g:4943:1: ( 'line' )
+            // InternalChartDSL.g:5304:1: ( ( 'line' ) )
+            // InternalChartDSL.g:5305:1: ( 'line' )
             {
-            // InternalChartDSL.g:4943:1: ( 'line' )
-            // InternalChartDSL.g:4944:2: 'line'
+            // InternalChartDSL.g:5305:1: ( 'line' )
+            // InternalChartDSL.g:5306:2: 'line'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getLineKeyword_1()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,87,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartLineAccess().getLineKeyword_1()); 
             }
@@ -18103,14 +19377,14 @@
 
 
     // $ANTLR start "rule__ChartLine__Group__2"
-    // InternalChartDSL.g:4953:1: rule__ChartLine__Group__2 : rule__ChartLine__Group__2__Impl ;
+    // InternalChartDSL.g:5315:1: rule__ChartLine__Group__2 : rule__ChartLine__Group__2__Impl ;
     public final void rule__ChartLine__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4957:1: ( rule__ChartLine__Group__2__Impl )
-            // InternalChartDSL.g:4958:2: rule__ChartLine__Group__2__Impl
+            // InternalChartDSL.g:5319:1: ( rule__ChartLine__Group__2__Impl )
+            // InternalChartDSL.g:5320:2: rule__ChartLine__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartLine__Group__2__Impl();
@@ -18136,23 +19410,23 @@
 
 
     // $ANTLR start "rule__ChartLine__Group__2__Impl"
-    // InternalChartDSL.g:4964:1: rule__ChartLine__Group__2__Impl : ( ( rule__ChartLine__UnorderedGroup_2 ) ) ;
+    // InternalChartDSL.g:5326:1: rule__ChartLine__Group__2__Impl : ( ( rule__ChartLine__UnorderedGroup_2 ) ) ;
     public final void rule__ChartLine__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4968:1: ( ( ( rule__ChartLine__UnorderedGroup_2 ) ) )
-            // InternalChartDSL.g:4969:1: ( ( rule__ChartLine__UnorderedGroup_2 ) )
+            // InternalChartDSL.g:5330:1: ( ( ( rule__ChartLine__UnorderedGroup_2 ) ) )
+            // InternalChartDSL.g:5331:1: ( ( rule__ChartLine__UnorderedGroup_2 ) )
             {
-            // InternalChartDSL.g:4969:1: ( ( rule__ChartLine__UnorderedGroup_2 ) )
-            // InternalChartDSL.g:4970:2: ( rule__ChartLine__UnorderedGroup_2 )
+            // InternalChartDSL.g:5331:1: ( ( rule__ChartLine__UnorderedGroup_2 ) )
+            // InternalChartDSL.g:5332:2: ( rule__ChartLine__UnorderedGroup_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getUnorderedGroup_2()); 
             }
-            // InternalChartDSL.g:4971:2: ( rule__ChartLine__UnorderedGroup_2 )
-            // InternalChartDSL.g:4971:3: rule__ChartLine__UnorderedGroup_2
+            // InternalChartDSL.g:5333:2: ( rule__ChartLine__UnorderedGroup_2 )
+            // InternalChartDSL.g:5333:3: rule__ChartLine__UnorderedGroup_2
             {
             pushFollow(FOLLOW_2);
             rule__ChartLine__UnorderedGroup_2();
@@ -18187,16 +19461,16 @@
 
 
     // $ANTLR start "rule__ChartLine__Group_2_3__0"
-    // InternalChartDSL.g:4980:1: rule__ChartLine__Group_2_3__0 : rule__ChartLine__Group_2_3__0__Impl rule__ChartLine__Group_2_3__1 ;
+    // InternalChartDSL.g:5342:1: rule__ChartLine__Group_2_3__0 : rule__ChartLine__Group_2_3__0__Impl rule__ChartLine__Group_2_3__1 ;
     public final void rule__ChartLine__Group_2_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4984:1: ( rule__ChartLine__Group_2_3__0__Impl rule__ChartLine__Group_2_3__1 )
-            // InternalChartDSL.g:4985:2: rule__ChartLine__Group_2_3__0__Impl rule__ChartLine__Group_2_3__1
+            // InternalChartDSL.g:5346:1: ( rule__ChartLine__Group_2_3__0__Impl rule__ChartLine__Group_2_3__1 )
+            // InternalChartDSL.g:5347:2: rule__ChartLine__Group_2_3__0__Impl rule__ChartLine__Group_2_3__1
             {
-            pushFollow(FOLLOW_22);
+            pushFollow(FOLLOW_26);
             rule__ChartLine__Group_2_3__0__Impl();
 
             state._fsp--;
@@ -18225,23 +19499,23 @@
 
 
     // $ANTLR start "rule__ChartLine__Group_2_3__0__Impl"
-    // InternalChartDSL.g:4992:1: rule__ChartLine__Group_2_3__0__Impl : ( ( rule__ChartLine__CursorAssignment_2_3_0 ) ) ;
+    // InternalChartDSL.g:5354:1: rule__ChartLine__Group_2_3__0__Impl : ( ( rule__ChartLine__CursorAssignment_2_3_0 ) ) ;
     public final void rule__ChartLine__Group_2_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:4996:1: ( ( ( rule__ChartLine__CursorAssignment_2_3_0 ) ) )
-            // InternalChartDSL.g:4997:1: ( ( rule__ChartLine__CursorAssignment_2_3_0 ) )
+            // InternalChartDSL.g:5358:1: ( ( ( rule__ChartLine__CursorAssignment_2_3_0 ) ) )
+            // InternalChartDSL.g:5359:1: ( ( rule__ChartLine__CursorAssignment_2_3_0 ) )
             {
-            // InternalChartDSL.g:4997:1: ( ( rule__ChartLine__CursorAssignment_2_3_0 ) )
-            // InternalChartDSL.g:4998:2: ( rule__ChartLine__CursorAssignment_2_3_0 )
+            // InternalChartDSL.g:5359:1: ( ( rule__ChartLine__CursorAssignment_2_3_0 ) )
+            // InternalChartDSL.g:5360:2: ( rule__ChartLine__CursorAssignment_2_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getCursorAssignment_2_3_0()); 
             }
-            // InternalChartDSL.g:4999:2: ( rule__ChartLine__CursorAssignment_2_3_0 )
-            // InternalChartDSL.g:4999:3: rule__ChartLine__CursorAssignment_2_3_0
+            // InternalChartDSL.g:5361:2: ( rule__ChartLine__CursorAssignment_2_3_0 )
+            // InternalChartDSL.g:5361:3: rule__ChartLine__CursorAssignment_2_3_0
             {
             pushFollow(FOLLOW_2);
             rule__ChartLine__CursorAssignment_2_3_0();
@@ -18276,16 +19550,16 @@
 
 
     // $ANTLR start "rule__ChartLine__Group_2_3__1"
-    // InternalChartDSL.g:5007:1: rule__ChartLine__Group_2_3__1 : rule__ChartLine__Group_2_3__1__Impl rule__ChartLine__Group_2_3__2 ;
+    // InternalChartDSL.g:5369:1: rule__ChartLine__Group_2_3__1 : rule__ChartLine__Group_2_3__1__Impl rule__ChartLine__Group_2_3__2 ;
     public final void rule__ChartLine__Group_2_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5011:1: ( rule__ChartLine__Group_2_3__1__Impl rule__ChartLine__Group_2_3__2 )
-            // InternalChartDSL.g:5012:2: rule__ChartLine__Group_2_3__1__Impl rule__ChartLine__Group_2_3__2
+            // InternalChartDSL.g:5373:1: ( rule__ChartLine__Group_2_3__1__Impl rule__ChartLine__Group_2_3__2 )
+            // InternalChartDSL.g:5374:2: rule__ChartLine__Group_2_3__1__Impl rule__ChartLine__Group_2_3__2
             {
-            pushFollow(FOLLOW_22);
+            pushFollow(FOLLOW_26);
             rule__ChartLine__Group_2_3__1__Impl();
 
             state._fsp--;
@@ -18314,31 +19588,31 @@
 
 
     // $ANTLR start "rule__ChartLine__Group_2_3__1__Impl"
-    // InternalChartDSL.g:5019:1: rule__ChartLine__Group_2_3__1__Impl : ( ( rule__ChartLine__ZoomAssignment_2_3_1 )? ) ;
+    // InternalChartDSL.g:5381:1: rule__ChartLine__Group_2_3__1__Impl : ( ( rule__ChartLine__ZoomAssignment_2_3_1 )? ) ;
     public final void rule__ChartLine__Group_2_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5023:1: ( ( ( rule__ChartLine__ZoomAssignment_2_3_1 )? ) )
-            // InternalChartDSL.g:5024:1: ( ( rule__ChartLine__ZoomAssignment_2_3_1 )? )
+            // InternalChartDSL.g:5385:1: ( ( ( rule__ChartLine__ZoomAssignment_2_3_1 )? ) )
+            // InternalChartDSL.g:5386:1: ( ( rule__ChartLine__ZoomAssignment_2_3_1 )? )
             {
-            // InternalChartDSL.g:5024:1: ( ( rule__ChartLine__ZoomAssignment_2_3_1 )? )
-            // InternalChartDSL.g:5025:2: ( rule__ChartLine__ZoomAssignment_2_3_1 )?
+            // InternalChartDSL.g:5386:1: ( ( rule__ChartLine__ZoomAssignment_2_3_1 )? )
+            // InternalChartDSL.g:5387:2: ( rule__ChartLine__ZoomAssignment_2_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getZoomAssignment_2_3_1()); 
             }
-            // InternalChartDSL.g:5026:2: ( rule__ChartLine__ZoomAssignment_2_3_1 )?
-            int alt61=2;
-            int LA61_0 = input.LA(1);
+            // InternalChartDSL.g:5388:2: ( rule__ChartLine__ZoomAssignment_2_3_1 )?
+            int alt65=2;
+            int LA65_0 = input.LA(1);
 
-            if ( (LA61_0==133) ) {
-                alt61=1;
+            if ( (LA65_0==149) ) {
+                alt65=1;
             }
-            switch (alt61) {
+            switch (alt65) {
                 case 1 :
-                    // InternalChartDSL.g:5026:3: rule__ChartLine__ZoomAssignment_2_3_1
+                    // InternalChartDSL.g:5388:3: rule__ChartLine__ZoomAssignment_2_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartLine__ZoomAssignment_2_3_1();
@@ -18376,14 +19650,14 @@
 
 
     // $ANTLR start "rule__ChartLine__Group_2_3__2"
-    // InternalChartDSL.g:5034:1: rule__ChartLine__Group_2_3__2 : rule__ChartLine__Group_2_3__2__Impl ;
+    // InternalChartDSL.g:5396:1: rule__ChartLine__Group_2_3__2 : rule__ChartLine__Group_2_3__2__Impl ;
     public final void rule__ChartLine__Group_2_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5038:1: ( rule__ChartLine__Group_2_3__2__Impl )
-            // InternalChartDSL.g:5039:2: rule__ChartLine__Group_2_3__2__Impl
+            // InternalChartDSL.g:5400:1: ( rule__ChartLine__Group_2_3__2__Impl )
+            // InternalChartDSL.g:5401:2: rule__ChartLine__Group_2_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartLine__Group_2_3__2__Impl();
@@ -18409,31 +19683,31 @@
 
 
     // $ANTLR start "rule__ChartLine__Group_2_3__2__Impl"
-    // InternalChartDSL.g:5045:1: rule__ChartLine__Group_2_3__2__Impl : ( ( rule__ChartLine__TooltipAssignment_2_3_2 )? ) ;
+    // InternalChartDSL.g:5407:1: rule__ChartLine__Group_2_3__2__Impl : ( ( rule__ChartLine__TooltipAssignment_2_3_2 )? ) ;
     public final void rule__ChartLine__Group_2_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5049:1: ( ( ( rule__ChartLine__TooltipAssignment_2_3_2 )? ) )
-            // InternalChartDSL.g:5050:1: ( ( rule__ChartLine__TooltipAssignment_2_3_2 )? )
+            // InternalChartDSL.g:5411:1: ( ( ( rule__ChartLine__TooltipAssignment_2_3_2 )? ) )
+            // InternalChartDSL.g:5412:1: ( ( rule__ChartLine__TooltipAssignment_2_3_2 )? )
             {
-            // InternalChartDSL.g:5050:1: ( ( rule__ChartLine__TooltipAssignment_2_3_2 )? )
-            // InternalChartDSL.g:5051:2: ( rule__ChartLine__TooltipAssignment_2_3_2 )?
+            // InternalChartDSL.g:5412:1: ( ( rule__ChartLine__TooltipAssignment_2_3_2 )? )
+            // InternalChartDSL.g:5413:2: ( rule__ChartLine__TooltipAssignment_2_3_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getTooltipAssignment_2_3_2()); 
             }
-            // InternalChartDSL.g:5052:2: ( rule__ChartLine__TooltipAssignment_2_3_2 )?
-            int alt62=2;
-            int LA62_0 = input.LA(1);
+            // InternalChartDSL.g:5414:2: ( rule__ChartLine__TooltipAssignment_2_3_2 )?
+            int alt66=2;
+            int LA66_0 = input.LA(1);
 
-            if ( (LA62_0==90) ) {
-                alt62=1;
+            if ( (LA66_0==100) ) {
+                alt66=1;
             }
-            switch (alt62) {
+            switch (alt66) {
                 case 1 :
-                    // InternalChartDSL.g:5052:3: rule__ChartLine__TooltipAssignment_2_3_2
+                    // InternalChartDSL.g:5414:3: rule__ChartLine__TooltipAssignment_2_3_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartLine__TooltipAssignment_2_3_2();
@@ -18471,16 +19745,16 @@
 
 
     // $ANTLR start "rule__ChartPie__Group__0"
-    // InternalChartDSL.g:5061:1: rule__ChartPie__Group__0 : rule__ChartPie__Group__0__Impl rule__ChartPie__Group__1 ;
+    // InternalChartDSL.g:5423:1: rule__ChartPie__Group__0 : rule__ChartPie__Group__0__Impl rule__ChartPie__Group__1 ;
     public final void rule__ChartPie__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5065:1: ( rule__ChartPie__Group__0__Impl rule__ChartPie__Group__1 )
-            // InternalChartDSL.g:5066:2: rule__ChartPie__Group__0__Impl rule__ChartPie__Group__1
+            // InternalChartDSL.g:5427:1: ( rule__ChartPie__Group__0__Impl rule__ChartPie__Group__1 )
+            // InternalChartDSL.g:5428:2: rule__ChartPie__Group__0__Impl rule__ChartPie__Group__1
             {
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_27);
             rule__ChartPie__Group__0__Impl();
 
             state._fsp--;
@@ -18509,23 +19783,23 @@
 
 
     // $ANTLR start "rule__ChartPie__Group__0__Impl"
-    // InternalChartDSL.g:5073:1: rule__ChartPie__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:5435:1: rule__ChartPie__Group__0__Impl : ( () ) ;
     public final void rule__ChartPie__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5077:1: ( ( () ) )
-            // InternalChartDSL.g:5078:1: ( () )
+            // InternalChartDSL.g:5439:1: ( ( () ) )
+            // InternalChartDSL.g:5440:1: ( () )
             {
-            // InternalChartDSL.g:5078:1: ( () )
-            // InternalChartDSL.g:5079:2: ()
+            // InternalChartDSL.g:5440:1: ( () )
+            // InternalChartDSL.g:5441:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPieAccess().getChartPieAction_0()); 
             }
-            // InternalChartDSL.g:5080:2: ()
-            // InternalChartDSL.g:5080:3: 
+            // InternalChartDSL.g:5442:2: ()
+            // InternalChartDSL.g:5442:3: 
             {
             }
 
@@ -18550,16 +19824,16 @@
 
 
     // $ANTLR start "rule__ChartPie__Group__1"
-    // InternalChartDSL.g:5088:1: rule__ChartPie__Group__1 : rule__ChartPie__Group__1__Impl rule__ChartPie__Group__2 ;
+    // InternalChartDSL.g:5450:1: rule__ChartPie__Group__1 : rule__ChartPie__Group__1__Impl rule__ChartPie__Group__2 ;
     public final void rule__ChartPie__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5092:1: ( rule__ChartPie__Group__1__Impl rule__ChartPie__Group__2 )
-            // InternalChartDSL.g:5093:2: rule__ChartPie__Group__1__Impl rule__ChartPie__Group__2
+            // InternalChartDSL.g:5454:1: ( rule__ChartPie__Group__1__Impl rule__ChartPie__Group__2 )
+            // InternalChartDSL.g:5455:2: rule__ChartPie__Group__1__Impl rule__ChartPie__Group__2
             {
-            pushFollow(FOLLOW_24);
+            pushFollow(FOLLOW_28);
             rule__ChartPie__Group__1__Impl();
 
             state._fsp--;
@@ -18588,22 +19862,22 @@
 
 
     // $ANTLR start "rule__ChartPie__Group__1__Impl"
-    // InternalChartDSL.g:5100:1: rule__ChartPie__Group__1__Impl : ( 'pie' ) ;
+    // InternalChartDSL.g:5462:1: rule__ChartPie__Group__1__Impl : ( 'pie' ) ;
     public final void rule__ChartPie__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5104:1: ( ( 'pie' ) )
-            // InternalChartDSL.g:5105:1: ( 'pie' )
+            // InternalChartDSL.g:5466:1: ( ( 'pie' ) )
+            // InternalChartDSL.g:5467:1: ( 'pie' )
             {
-            // InternalChartDSL.g:5105:1: ( 'pie' )
-            // InternalChartDSL.g:5106:2: 'pie'
+            // InternalChartDSL.g:5467:1: ( 'pie' )
+            // InternalChartDSL.g:5468:2: 'pie'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPieAccess().getPieKeyword_1()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,88,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartPieAccess().getPieKeyword_1()); 
             }
@@ -18629,14 +19903,14 @@
 
 
     // $ANTLR start "rule__ChartPie__Group__2"
-    // InternalChartDSL.g:5115:1: rule__ChartPie__Group__2 : rule__ChartPie__Group__2__Impl ;
+    // InternalChartDSL.g:5477:1: rule__ChartPie__Group__2 : rule__ChartPie__Group__2__Impl ;
     public final void rule__ChartPie__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5119:1: ( rule__ChartPie__Group__2__Impl )
-            // InternalChartDSL.g:5120:2: rule__ChartPie__Group__2__Impl
+            // InternalChartDSL.g:5481:1: ( rule__ChartPie__Group__2__Impl )
+            // InternalChartDSL.g:5482:2: rule__ChartPie__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartPie__Group__2__Impl();
@@ -18662,31 +19936,31 @@
 
 
     // $ANTLR start "rule__ChartPie__Group__2__Impl"
-    // InternalChartDSL.g:5126:1: rule__ChartPie__Group__2__Impl : ( ( rule__ChartPie__EmptyAssignment_2 )? ) ;
+    // InternalChartDSL.g:5488:1: rule__ChartPie__Group__2__Impl : ( ( rule__ChartPie__EmptyAssignment_2 )? ) ;
     public final void rule__ChartPie__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5130:1: ( ( ( rule__ChartPie__EmptyAssignment_2 )? ) )
-            // InternalChartDSL.g:5131:1: ( ( rule__ChartPie__EmptyAssignment_2 )? )
+            // InternalChartDSL.g:5492:1: ( ( ( rule__ChartPie__EmptyAssignment_2 )? ) )
+            // InternalChartDSL.g:5493:1: ( ( rule__ChartPie__EmptyAssignment_2 )? )
             {
-            // InternalChartDSL.g:5131:1: ( ( rule__ChartPie__EmptyAssignment_2 )? )
-            // InternalChartDSL.g:5132:2: ( rule__ChartPie__EmptyAssignment_2 )?
+            // InternalChartDSL.g:5493:1: ( ( rule__ChartPie__EmptyAssignment_2 )? )
+            // InternalChartDSL.g:5494:2: ( rule__ChartPie__EmptyAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPieAccess().getEmptyAssignment_2()); 
             }
-            // InternalChartDSL.g:5133:2: ( rule__ChartPie__EmptyAssignment_2 )?
-            int alt63=2;
-            int LA63_0 = input.LA(1);
+            // InternalChartDSL.g:5495:2: ( rule__ChartPie__EmptyAssignment_2 )?
+            int alt67=2;
+            int LA67_0 = input.LA(1);
 
-            if ( (LA63_0==136) ) {
-                alt63=1;
+            if ( (LA67_0==152) ) {
+                alt67=1;
             }
-            switch (alt63) {
+            switch (alt67) {
                 case 1 :
-                    // InternalChartDSL.g:5133:3: rule__ChartPie__EmptyAssignment_2
+                    // InternalChartDSL.g:5495:3: rule__ChartPie__EmptyAssignment_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartPie__EmptyAssignment_2();
@@ -18724,16 +19998,16 @@
 
 
     // $ANTLR start "rule__ChartDonut__Group__0"
-    // InternalChartDSL.g:5142:1: rule__ChartDonut__Group__0 : rule__ChartDonut__Group__0__Impl rule__ChartDonut__Group__1 ;
+    // InternalChartDSL.g:5504:1: rule__ChartDonut__Group__0 : rule__ChartDonut__Group__0__Impl rule__ChartDonut__Group__1 ;
     public final void rule__ChartDonut__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5146:1: ( rule__ChartDonut__Group__0__Impl rule__ChartDonut__Group__1 )
-            // InternalChartDSL.g:5147:2: rule__ChartDonut__Group__0__Impl rule__ChartDonut__Group__1
+            // InternalChartDSL.g:5508:1: ( rule__ChartDonut__Group__0__Impl rule__ChartDonut__Group__1 )
+            // InternalChartDSL.g:5509:2: rule__ChartDonut__Group__0__Impl rule__ChartDonut__Group__1
             {
-            pushFollow(FOLLOW_25);
+            pushFollow(FOLLOW_29);
             rule__ChartDonut__Group__0__Impl();
 
             state._fsp--;
@@ -18762,23 +20036,23 @@
 
 
     // $ANTLR start "rule__ChartDonut__Group__0__Impl"
-    // InternalChartDSL.g:5154:1: rule__ChartDonut__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:5516:1: rule__ChartDonut__Group__0__Impl : ( () ) ;
     public final void rule__ChartDonut__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5158:1: ( ( () ) )
-            // InternalChartDSL.g:5159:1: ( () )
+            // InternalChartDSL.g:5520:1: ( ( () ) )
+            // InternalChartDSL.g:5521:1: ( () )
             {
-            // InternalChartDSL.g:5159:1: ( () )
-            // InternalChartDSL.g:5160:2: ()
+            // InternalChartDSL.g:5521:1: ( () )
+            // InternalChartDSL.g:5522:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDonutAccess().getChartDonutAction_0()); 
             }
-            // InternalChartDSL.g:5161:2: ()
-            // InternalChartDSL.g:5161:3: 
+            // InternalChartDSL.g:5523:2: ()
+            // InternalChartDSL.g:5523:3: 
             {
             }
 
@@ -18803,14 +20077,14 @@
 
 
     // $ANTLR start "rule__ChartDonut__Group__1"
-    // InternalChartDSL.g:5169:1: rule__ChartDonut__Group__1 : rule__ChartDonut__Group__1__Impl ;
+    // InternalChartDSL.g:5531:1: rule__ChartDonut__Group__1 : rule__ChartDonut__Group__1__Impl ;
     public final void rule__ChartDonut__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5173:1: ( rule__ChartDonut__Group__1__Impl )
-            // InternalChartDSL.g:5174:2: rule__ChartDonut__Group__1__Impl
+            // InternalChartDSL.g:5535:1: ( rule__ChartDonut__Group__1__Impl )
+            // InternalChartDSL.g:5536:2: rule__ChartDonut__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartDonut__Group__1__Impl();
@@ -18836,22 +20110,22 @@
 
 
     // $ANTLR start "rule__ChartDonut__Group__1__Impl"
-    // InternalChartDSL.g:5180:1: rule__ChartDonut__Group__1__Impl : ( 'donut' ) ;
+    // InternalChartDSL.g:5542:1: rule__ChartDonut__Group__1__Impl : ( 'donut' ) ;
     public final void rule__ChartDonut__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5184:1: ( ( 'donut' ) )
-            // InternalChartDSL.g:5185:1: ( 'donut' )
+            // InternalChartDSL.g:5546:1: ( ( 'donut' ) )
+            // InternalChartDSL.g:5547:1: ( 'donut' )
             {
-            // InternalChartDSL.g:5185:1: ( 'donut' )
-            // InternalChartDSL.g:5186:2: 'donut'
+            // InternalChartDSL.g:5547:1: ( 'donut' )
+            // InternalChartDSL.g:5548:2: 'donut'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDonutAccess().getDonutKeyword_1()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartDonutAccess().getDonutKeyword_1()); 
             }
@@ -18877,16 +20151,16 @@
 
 
     // $ANTLR start "rule__ChartBubble__Group__0"
-    // InternalChartDSL.g:5196:1: rule__ChartBubble__Group__0 : rule__ChartBubble__Group__0__Impl rule__ChartBubble__Group__1 ;
+    // InternalChartDSL.g:5558:1: rule__ChartBubble__Group__0 : rule__ChartBubble__Group__0__Impl rule__ChartBubble__Group__1 ;
     public final void rule__ChartBubble__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5200:1: ( rule__ChartBubble__Group__0__Impl rule__ChartBubble__Group__1 )
-            // InternalChartDSL.g:5201:2: rule__ChartBubble__Group__0__Impl rule__ChartBubble__Group__1
+            // InternalChartDSL.g:5562:1: ( rule__ChartBubble__Group__0__Impl rule__ChartBubble__Group__1 )
+            // InternalChartDSL.g:5563:2: rule__ChartBubble__Group__0__Impl rule__ChartBubble__Group__1
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_30);
             rule__ChartBubble__Group__0__Impl();
 
             state._fsp--;
@@ -18915,23 +20189,23 @@
 
 
     // $ANTLR start "rule__ChartBubble__Group__0__Impl"
-    // InternalChartDSL.g:5208:1: rule__ChartBubble__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:5570:1: rule__ChartBubble__Group__0__Impl : ( () ) ;
     public final void rule__ChartBubble__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5212:1: ( ( () ) )
-            // InternalChartDSL.g:5213:1: ( () )
+            // InternalChartDSL.g:5574:1: ( ( () ) )
+            // InternalChartDSL.g:5575:1: ( () )
             {
-            // InternalChartDSL.g:5213:1: ( () )
-            // InternalChartDSL.g:5214:2: ()
+            // InternalChartDSL.g:5575:1: ( () )
+            // InternalChartDSL.g:5576:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getChartBubbleAction_0()); 
             }
-            // InternalChartDSL.g:5215:2: ()
-            // InternalChartDSL.g:5215:3: 
+            // InternalChartDSL.g:5577:2: ()
+            // InternalChartDSL.g:5577:3: 
             {
             }
 
@@ -18956,16 +20230,16 @@
 
 
     // $ANTLR start "rule__ChartBubble__Group__1"
-    // InternalChartDSL.g:5223:1: rule__ChartBubble__Group__1 : rule__ChartBubble__Group__1__Impl rule__ChartBubble__Group__2 ;
+    // InternalChartDSL.g:5585:1: rule__ChartBubble__Group__1 : rule__ChartBubble__Group__1__Impl rule__ChartBubble__Group__2 ;
     public final void rule__ChartBubble__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5227:1: ( rule__ChartBubble__Group__1__Impl rule__ChartBubble__Group__2 )
-            // InternalChartDSL.g:5228:2: rule__ChartBubble__Group__1__Impl rule__ChartBubble__Group__2
+            // InternalChartDSL.g:5589:1: ( rule__ChartBubble__Group__1__Impl rule__ChartBubble__Group__2 )
+            // InternalChartDSL.g:5590:2: rule__ChartBubble__Group__1__Impl rule__ChartBubble__Group__2
             {
-            pushFollow(FOLLOW_27);
+            pushFollow(FOLLOW_31);
             rule__ChartBubble__Group__1__Impl();
 
             state._fsp--;
@@ -18994,22 +20268,22 @@
 
 
     // $ANTLR start "rule__ChartBubble__Group__1__Impl"
-    // InternalChartDSL.g:5235:1: rule__ChartBubble__Group__1__Impl : ( 'bubble' ) ;
+    // InternalChartDSL.g:5597:1: rule__ChartBubble__Group__1__Impl : ( 'bubble' ) ;
     public final void rule__ChartBubble__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5239:1: ( ( 'bubble' ) )
-            // InternalChartDSL.g:5240:1: ( 'bubble' )
+            // InternalChartDSL.g:5601:1: ( ( 'bubble' ) )
+            // InternalChartDSL.g:5602:1: ( 'bubble' )
             {
-            // InternalChartDSL.g:5240:1: ( 'bubble' )
-            // InternalChartDSL.g:5241:2: 'bubble'
+            // InternalChartDSL.g:5602:1: ( 'bubble' )
+            // InternalChartDSL.g:5603:2: 'bubble'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getBubbleKeyword_1()); 
             }
-            match(input,82,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartBubbleAccess().getBubbleKeyword_1()); 
             }
@@ -19035,14 +20309,14 @@
 
 
     // $ANTLR start "rule__ChartBubble__Group__2"
-    // InternalChartDSL.g:5250:1: rule__ChartBubble__Group__2 : rule__ChartBubble__Group__2__Impl ;
+    // InternalChartDSL.g:5612:1: rule__ChartBubble__Group__2 : rule__ChartBubble__Group__2__Impl ;
     public final void rule__ChartBubble__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5254:1: ( rule__ChartBubble__Group__2__Impl )
-            // InternalChartDSL.g:5255:2: rule__ChartBubble__Group__2__Impl
+            // InternalChartDSL.g:5616:1: ( rule__ChartBubble__Group__2__Impl )
+            // InternalChartDSL.g:5617:2: rule__ChartBubble__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartBubble__Group__2__Impl();
@@ -19068,37 +20342,37 @@
 
 
     // $ANTLR start "rule__ChartBubble__Group__2__Impl"
-    // InternalChartDSL.g:5261:1: rule__ChartBubble__Group__2__Impl : ( ( rule__ChartBubble__UnorderedGroup_2 )? ) ;
+    // InternalChartDSL.g:5623:1: rule__ChartBubble__Group__2__Impl : ( ( rule__ChartBubble__UnorderedGroup_2 )? ) ;
     public final void rule__ChartBubble__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5265:1: ( ( ( rule__ChartBubble__UnorderedGroup_2 )? ) )
-            // InternalChartDSL.g:5266:1: ( ( rule__ChartBubble__UnorderedGroup_2 )? )
+            // InternalChartDSL.g:5627:1: ( ( ( rule__ChartBubble__UnorderedGroup_2 )? ) )
+            // InternalChartDSL.g:5628:1: ( ( rule__ChartBubble__UnorderedGroup_2 )? )
             {
-            // InternalChartDSL.g:5266:1: ( ( rule__ChartBubble__UnorderedGroup_2 )? )
-            // InternalChartDSL.g:5267:2: ( rule__ChartBubble__UnorderedGroup_2 )?
+            // InternalChartDSL.g:5628:1: ( ( rule__ChartBubble__UnorderedGroup_2 )? )
+            // InternalChartDSL.g:5629:2: ( rule__ChartBubble__UnorderedGroup_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2()); 
             }
-            // InternalChartDSL.g:5268:2: ( rule__ChartBubble__UnorderedGroup_2 )?
-            int alt64=2;
-            int LA64_0 = input.LA(1);
+            // InternalChartDSL.g:5630:2: ( rule__ChartBubble__UnorderedGroup_2 )?
+            int alt68=2;
+            int LA68_0 = input.LA(1);
 
-            if ( LA64_0 == 137 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
-                alt64=1;
+            if ( LA68_0 == 153 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
+                alt68=1;
             }
-            else if ( LA64_0 == 138 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
-                alt64=1;
+            else if ( LA68_0 == 154 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
+                alt68=1;
             }
-            else if ( LA64_0 == 139 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
-                alt64=1;
+            else if ( LA68_0 == 155 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
+                alt68=1;
             }
-            switch (alt64) {
+            switch (alt68) {
                 case 1 :
-                    // InternalChartDSL.g:5268:3: rule__ChartBubble__UnorderedGroup_2
+                    // InternalChartDSL.g:5630:3: rule__ChartBubble__UnorderedGroup_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartBubble__UnorderedGroup_2();
@@ -19136,16 +20410,16 @@
 
 
     // $ANTLR start "rule__ChartBubble__Group_2_0__0"
-    // InternalChartDSL.g:5277:1: rule__ChartBubble__Group_2_0__0 : rule__ChartBubble__Group_2_0__0__Impl rule__ChartBubble__Group_2_0__1 ;
+    // InternalChartDSL.g:5639:1: rule__ChartBubble__Group_2_0__0 : rule__ChartBubble__Group_2_0__0__Impl rule__ChartBubble__Group_2_0__1 ;
     public final void rule__ChartBubble__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5281:1: ( rule__ChartBubble__Group_2_0__0__Impl rule__ChartBubble__Group_2_0__1 )
-            // InternalChartDSL.g:5282:2: rule__ChartBubble__Group_2_0__0__Impl rule__ChartBubble__Group_2_0__1
+            // InternalChartDSL.g:5643:1: ( rule__ChartBubble__Group_2_0__0__Impl rule__ChartBubble__Group_2_0__1 )
+            // InternalChartDSL.g:5644:2: rule__ChartBubble__Group_2_0__0__Impl rule__ChartBubble__Group_2_0__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_32);
             rule__ChartBubble__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -19174,23 +20448,23 @@
 
 
     // $ANTLR start "rule__ChartBubble__Group_2_0__0__Impl"
-    // InternalChartDSL.g:5289:1: rule__ChartBubble__Group_2_0__0__Impl : ( ( rule__ChartBubble__MultiplierAssignment_2_0_0 ) ) ;
+    // InternalChartDSL.g:5651:1: rule__ChartBubble__Group_2_0__0__Impl : ( ( rule__ChartBubble__MultiplierAssignment_2_0_0 ) ) ;
     public final void rule__ChartBubble__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5293:1: ( ( ( rule__ChartBubble__MultiplierAssignment_2_0_0 ) ) )
-            // InternalChartDSL.g:5294:1: ( ( rule__ChartBubble__MultiplierAssignment_2_0_0 ) )
+            // InternalChartDSL.g:5655:1: ( ( ( rule__ChartBubble__MultiplierAssignment_2_0_0 ) ) )
+            // InternalChartDSL.g:5656:1: ( ( rule__ChartBubble__MultiplierAssignment_2_0_0 ) )
             {
-            // InternalChartDSL.g:5294:1: ( ( rule__ChartBubble__MultiplierAssignment_2_0_0 ) )
-            // InternalChartDSL.g:5295:2: ( rule__ChartBubble__MultiplierAssignment_2_0_0 )
+            // InternalChartDSL.g:5656:1: ( ( rule__ChartBubble__MultiplierAssignment_2_0_0 ) )
+            // InternalChartDSL.g:5657:2: ( rule__ChartBubble__MultiplierAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getMultiplierAssignment_2_0_0()); 
             }
-            // InternalChartDSL.g:5296:2: ( rule__ChartBubble__MultiplierAssignment_2_0_0 )
-            // InternalChartDSL.g:5296:3: rule__ChartBubble__MultiplierAssignment_2_0_0
+            // InternalChartDSL.g:5658:2: ( rule__ChartBubble__MultiplierAssignment_2_0_0 )
+            // InternalChartDSL.g:5658:3: rule__ChartBubble__MultiplierAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__ChartBubble__MultiplierAssignment_2_0_0();
@@ -19225,14 +20499,14 @@
 
 
     // $ANTLR start "rule__ChartBubble__Group_2_0__1"
-    // InternalChartDSL.g:5304:1: rule__ChartBubble__Group_2_0__1 : rule__ChartBubble__Group_2_0__1__Impl ;
+    // InternalChartDSL.g:5666:1: rule__ChartBubble__Group_2_0__1 : rule__ChartBubble__Group_2_0__1__Impl ;
     public final void rule__ChartBubble__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5308:1: ( rule__ChartBubble__Group_2_0__1__Impl )
-            // InternalChartDSL.g:5309:2: rule__ChartBubble__Group_2_0__1__Impl
+            // InternalChartDSL.g:5670:1: ( rule__ChartBubble__Group_2_0__1__Impl )
+            // InternalChartDSL.g:5671:2: rule__ChartBubble__Group_2_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartBubble__Group_2_0__1__Impl();
@@ -19258,23 +20532,23 @@
 
 
     // $ANTLR start "rule__ChartBubble__Group_2_0__1__Impl"
-    // InternalChartDSL.g:5315:1: rule__ChartBubble__Group_2_0__1__Impl : ( ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 ) ) ;
+    // InternalChartDSL.g:5677:1: rule__ChartBubble__Group_2_0__1__Impl : ( ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 ) ) ;
     public final void rule__ChartBubble__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5319:1: ( ( ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 ) ) )
-            // InternalChartDSL.g:5320:1: ( ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 ) )
+            // InternalChartDSL.g:5681:1: ( ( ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 ) ) )
+            // InternalChartDSL.g:5682:1: ( ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 ) )
             {
-            // InternalChartDSL.g:5320:1: ( ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 ) )
-            // InternalChartDSL.g:5321:2: ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 )
+            // InternalChartDSL.g:5682:1: ( ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 ) )
+            // InternalChartDSL.g:5683:2: ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getMultiplierValueAssignment_2_0_1()); 
             }
-            // InternalChartDSL.g:5322:2: ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 )
-            // InternalChartDSL.g:5322:3: rule__ChartBubble__MultiplierValueAssignment_2_0_1
+            // InternalChartDSL.g:5684:2: ( rule__ChartBubble__MultiplierValueAssignment_2_0_1 )
+            // InternalChartDSL.g:5684:3: rule__ChartBubble__MultiplierValueAssignment_2_0_1
             {
             pushFollow(FOLLOW_2);
             rule__ChartBubble__MultiplierValueAssignment_2_0_1();
@@ -19309,16 +20583,16 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group__0"
-    // InternalChartDSL.g:5331:1: rule__ChartGauge__Group__0 : rule__ChartGauge__Group__0__Impl rule__ChartGauge__Group__1 ;
+    // InternalChartDSL.g:5693:1: rule__ChartGauge__Group__0 : rule__ChartGauge__Group__0__Impl rule__ChartGauge__Group__1 ;
     public final void rule__ChartGauge__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5335:1: ( rule__ChartGauge__Group__0__Impl rule__ChartGauge__Group__1 )
-            // InternalChartDSL.g:5336:2: rule__ChartGauge__Group__0__Impl rule__ChartGauge__Group__1
+            // InternalChartDSL.g:5697:1: ( rule__ChartGauge__Group__0__Impl rule__ChartGauge__Group__1 )
+            // InternalChartDSL.g:5698:2: rule__ChartGauge__Group__0__Impl rule__ChartGauge__Group__1
             {
-            pushFollow(FOLLOW_29);
+            pushFollow(FOLLOW_33);
             rule__ChartGauge__Group__0__Impl();
 
             state._fsp--;
@@ -19347,23 +20621,23 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group__0__Impl"
-    // InternalChartDSL.g:5343:1: rule__ChartGauge__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:5705:1: rule__ChartGauge__Group__0__Impl : ( () ) ;
     public final void rule__ChartGauge__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5347:1: ( ( () ) )
-            // InternalChartDSL.g:5348:1: ( () )
+            // InternalChartDSL.g:5709:1: ( ( () ) )
+            // InternalChartDSL.g:5710:1: ( () )
             {
-            // InternalChartDSL.g:5348:1: ( () )
-            // InternalChartDSL.g:5349:2: ()
+            // InternalChartDSL.g:5710:1: ( () )
+            // InternalChartDSL.g:5711:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getChartGaugeAction_0()); 
             }
-            // InternalChartDSL.g:5350:2: ()
-            // InternalChartDSL.g:5350:3: 
+            // InternalChartDSL.g:5712:2: ()
+            // InternalChartDSL.g:5712:3: 
             {
             }
 
@@ -19388,16 +20662,16 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group__1"
-    // InternalChartDSL.g:5358:1: rule__ChartGauge__Group__1 : rule__ChartGauge__Group__1__Impl rule__ChartGauge__Group__2 ;
+    // InternalChartDSL.g:5720:1: rule__ChartGauge__Group__1 : rule__ChartGauge__Group__1__Impl rule__ChartGauge__Group__2 ;
     public final void rule__ChartGauge__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5362:1: ( rule__ChartGauge__Group__1__Impl rule__ChartGauge__Group__2 )
-            // InternalChartDSL.g:5363:2: rule__ChartGauge__Group__1__Impl rule__ChartGauge__Group__2
+            // InternalChartDSL.g:5724:1: ( rule__ChartGauge__Group__1__Impl rule__ChartGauge__Group__2 )
+            // InternalChartDSL.g:5725:2: rule__ChartGauge__Group__1__Impl rule__ChartGauge__Group__2
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_34);
             rule__ChartGauge__Group__1__Impl();
 
             state._fsp--;
@@ -19426,22 +20700,22 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group__1__Impl"
-    // InternalChartDSL.g:5370:1: rule__ChartGauge__Group__1__Impl : ( 'gauge' ) ;
+    // InternalChartDSL.g:5732:1: rule__ChartGauge__Group__1__Impl : ( 'gauge' ) ;
     public final void rule__ChartGauge__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5374:1: ( ( 'gauge' ) )
-            // InternalChartDSL.g:5375:1: ( 'gauge' )
+            // InternalChartDSL.g:5736:1: ( ( 'gauge' ) )
+            // InternalChartDSL.g:5737:1: ( 'gauge' )
             {
-            // InternalChartDSL.g:5375:1: ( 'gauge' )
-            // InternalChartDSL.g:5376:2: 'gauge'
+            // InternalChartDSL.g:5737:1: ( 'gauge' )
+            // InternalChartDSL.g:5738:2: 'gauge'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getGaugeKeyword_1()); 
             }
-            match(input,83,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartGaugeAccess().getGaugeKeyword_1()); 
             }
@@ -19467,14 +20741,14 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group__2"
-    // InternalChartDSL.g:5385:1: rule__ChartGauge__Group__2 : rule__ChartGauge__Group__2__Impl ;
+    // InternalChartDSL.g:5747:1: rule__ChartGauge__Group__2 : rule__ChartGauge__Group__2__Impl ;
     public final void rule__ChartGauge__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5389:1: ( rule__ChartGauge__Group__2__Impl )
-            // InternalChartDSL.g:5390:2: rule__ChartGauge__Group__2__Impl
+            // InternalChartDSL.g:5751:1: ( rule__ChartGauge__Group__2__Impl )
+            // InternalChartDSL.g:5752:2: rule__ChartGauge__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__Group__2__Impl();
@@ -19500,23 +20774,23 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group__2__Impl"
-    // InternalChartDSL.g:5396:1: rule__ChartGauge__Group__2__Impl : ( ( rule__ChartGauge__UnorderedGroup_2 ) ) ;
+    // InternalChartDSL.g:5758:1: rule__ChartGauge__Group__2__Impl : ( ( rule__ChartGauge__UnorderedGroup_2 ) ) ;
     public final void rule__ChartGauge__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5400:1: ( ( ( rule__ChartGauge__UnorderedGroup_2 ) ) )
-            // InternalChartDSL.g:5401:1: ( ( rule__ChartGauge__UnorderedGroup_2 ) )
+            // InternalChartDSL.g:5762:1: ( ( ( rule__ChartGauge__UnorderedGroup_2 ) ) )
+            // InternalChartDSL.g:5763:1: ( ( rule__ChartGauge__UnorderedGroup_2 ) )
             {
-            // InternalChartDSL.g:5401:1: ( ( rule__ChartGauge__UnorderedGroup_2 ) )
-            // InternalChartDSL.g:5402:2: ( rule__ChartGauge__UnorderedGroup_2 )
+            // InternalChartDSL.g:5763:1: ( ( rule__ChartGauge__UnorderedGroup_2 ) )
+            // InternalChartDSL.g:5764:2: ( rule__ChartGauge__UnorderedGroup_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2()); 
             }
-            // InternalChartDSL.g:5403:2: ( rule__ChartGauge__UnorderedGroup_2 )
-            // InternalChartDSL.g:5403:3: rule__ChartGauge__UnorderedGroup_2
+            // InternalChartDSL.g:5765:2: ( rule__ChartGauge__UnorderedGroup_2 )
+            // InternalChartDSL.g:5765:3: rule__ChartGauge__UnorderedGroup_2
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__UnorderedGroup_2();
@@ -19551,16 +20825,16 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_0__0"
-    // InternalChartDSL.g:5412:1: rule__ChartGauge__Group_2_0__0 : rule__ChartGauge__Group_2_0__0__Impl rule__ChartGauge__Group_2_0__1 ;
+    // InternalChartDSL.g:5774:1: rule__ChartGauge__Group_2_0__0 : rule__ChartGauge__Group_2_0__0__Impl rule__ChartGauge__Group_2_0__1 ;
     public final void rule__ChartGauge__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5416:1: ( rule__ChartGauge__Group_2_0__0__Impl rule__ChartGauge__Group_2_0__1 )
-            // InternalChartDSL.g:5417:2: rule__ChartGauge__Group_2_0__0__Impl rule__ChartGauge__Group_2_0__1
+            // InternalChartDSL.g:5778:1: ( rule__ChartGauge__Group_2_0__0__Impl rule__ChartGauge__Group_2_0__1 )
+            // InternalChartDSL.g:5779:2: rule__ChartGauge__Group_2_0__0__Impl rule__ChartGauge__Group_2_0__1
             {
-            pushFollow(FOLLOW_16);
+            pushFollow(FOLLOW_15);
             rule__ChartGauge__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -19589,23 +20863,23 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_0__0__Impl"
-    // InternalChartDSL.g:5424:1: rule__ChartGauge__Group_2_0__0__Impl : ( ( rule__ChartGauge__LabeledAssignment_2_0_0 ) ) ;
+    // InternalChartDSL.g:5786:1: rule__ChartGauge__Group_2_0__0__Impl : ( ( rule__ChartGauge__LabeledAssignment_2_0_0 ) ) ;
     public final void rule__ChartGauge__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5428:1: ( ( ( rule__ChartGauge__LabeledAssignment_2_0_0 ) ) )
-            // InternalChartDSL.g:5429:1: ( ( rule__ChartGauge__LabeledAssignment_2_0_0 ) )
+            // InternalChartDSL.g:5790:1: ( ( ( rule__ChartGauge__LabeledAssignment_2_0_0 ) ) )
+            // InternalChartDSL.g:5791:1: ( ( rule__ChartGauge__LabeledAssignment_2_0_0 ) )
             {
-            // InternalChartDSL.g:5429:1: ( ( rule__ChartGauge__LabeledAssignment_2_0_0 ) )
-            // InternalChartDSL.g:5430:2: ( rule__ChartGauge__LabeledAssignment_2_0_0 )
+            // InternalChartDSL.g:5791:1: ( ( rule__ChartGauge__LabeledAssignment_2_0_0 ) )
+            // InternalChartDSL.g:5792:2: ( rule__ChartGauge__LabeledAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getLabeledAssignment_2_0_0()); 
             }
-            // InternalChartDSL.g:5431:2: ( rule__ChartGauge__LabeledAssignment_2_0_0 )
-            // InternalChartDSL.g:5431:3: rule__ChartGauge__LabeledAssignment_2_0_0
+            // InternalChartDSL.g:5793:2: ( rule__ChartGauge__LabeledAssignment_2_0_0 )
+            // InternalChartDSL.g:5793:3: rule__ChartGauge__LabeledAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__LabeledAssignment_2_0_0();
@@ -19640,14 +20914,14 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_0__1"
-    // InternalChartDSL.g:5439:1: rule__ChartGauge__Group_2_0__1 : rule__ChartGauge__Group_2_0__1__Impl ;
+    // InternalChartDSL.g:5801:1: rule__ChartGauge__Group_2_0__1 : rule__ChartGauge__Group_2_0__1__Impl ;
     public final void rule__ChartGauge__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5443:1: ( rule__ChartGauge__Group_2_0__1__Impl )
-            // InternalChartDSL.g:5444:2: rule__ChartGauge__Group_2_0__1__Impl
+            // InternalChartDSL.g:5805:1: ( rule__ChartGauge__Group_2_0__1__Impl )
+            // InternalChartDSL.g:5806:2: rule__ChartGauge__Group_2_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__Group_2_0__1__Impl();
@@ -19673,23 +20947,23 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_0__1__Impl"
-    // InternalChartDSL.g:5450:1: rule__ChartGauge__Group_2_0__1__Impl : ( ( rule__ChartGauge__LabelValueAssignment_2_0_1 ) ) ;
+    // InternalChartDSL.g:5812:1: rule__ChartGauge__Group_2_0__1__Impl : ( ( rule__ChartGauge__LabelValueAssignment_2_0_1 ) ) ;
     public final void rule__ChartGauge__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5454:1: ( ( ( rule__ChartGauge__LabelValueAssignment_2_0_1 ) ) )
-            // InternalChartDSL.g:5455:1: ( ( rule__ChartGauge__LabelValueAssignment_2_0_1 ) )
+            // InternalChartDSL.g:5816:1: ( ( ( rule__ChartGauge__LabelValueAssignment_2_0_1 ) ) )
+            // InternalChartDSL.g:5817:1: ( ( rule__ChartGauge__LabelValueAssignment_2_0_1 ) )
             {
-            // InternalChartDSL.g:5455:1: ( ( rule__ChartGauge__LabelValueAssignment_2_0_1 ) )
-            // InternalChartDSL.g:5456:2: ( rule__ChartGauge__LabelValueAssignment_2_0_1 )
+            // InternalChartDSL.g:5817:1: ( ( rule__ChartGauge__LabelValueAssignment_2_0_1 ) )
+            // InternalChartDSL.g:5818:2: ( rule__ChartGauge__LabelValueAssignment_2_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getLabelValueAssignment_2_0_1()); 
             }
-            // InternalChartDSL.g:5457:2: ( rule__ChartGauge__LabelValueAssignment_2_0_1 )
-            // InternalChartDSL.g:5457:3: rule__ChartGauge__LabelValueAssignment_2_0_1
+            // InternalChartDSL.g:5819:2: ( rule__ChartGauge__LabelValueAssignment_2_0_1 )
+            // InternalChartDSL.g:5819:3: rule__ChartGauge__LabelValueAssignment_2_0_1
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__LabelValueAssignment_2_0_1();
@@ -19724,16 +20998,16 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_1__0"
-    // InternalChartDSL.g:5466:1: rule__ChartGauge__Group_2_1__0 : rule__ChartGauge__Group_2_1__0__Impl rule__ChartGauge__Group_2_1__1 ;
+    // InternalChartDSL.g:5828:1: rule__ChartGauge__Group_2_1__0 : rule__ChartGauge__Group_2_1__0__Impl rule__ChartGauge__Group_2_1__1 ;
     public final void rule__ChartGauge__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5470:1: ( rule__ChartGauge__Group_2_1__0__Impl rule__ChartGauge__Group_2_1__1 )
-            // InternalChartDSL.g:5471:2: rule__ChartGauge__Group_2_1__0__Impl rule__ChartGauge__Group_2_1__1
+            // InternalChartDSL.g:5832:1: ( rule__ChartGauge__Group_2_1__0__Impl rule__ChartGauge__Group_2_1__1 )
+            // InternalChartDSL.g:5833:2: rule__ChartGauge__Group_2_1__0__Impl rule__ChartGauge__Group_2_1__1
             {
-            pushFollow(FOLLOW_31);
+            pushFollow(FOLLOW_35);
             rule__ChartGauge__Group_2_1__0__Impl();
 
             state._fsp--;
@@ -19762,23 +21036,23 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_1__0__Impl"
-    // InternalChartDSL.g:5478:1: rule__ChartGauge__Group_2_1__0__Impl : ( ( rule__ChartGauge__HasTicksAssignment_2_1_0 ) ) ;
+    // InternalChartDSL.g:5840:1: rule__ChartGauge__Group_2_1__0__Impl : ( ( rule__ChartGauge__HasTicksAssignment_2_1_0 ) ) ;
     public final void rule__ChartGauge__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5482:1: ( ( ( rule__ChartGauge__HasTicksAssignment_2_1_0 ) ) )
-            // InternalChartDSL.g:5483:1: ( ( rule__ChartGauge__HasTicksAssignment_2_1_0 ) )
+            // InternalChartDSL.g:5844:1: ( ( ( rule__ChartGauge__HasTicksAssignment_2_1_0 ) ) )
+            // InternalChartDSL.g:5845:1: ( ( rule__ChartGauge__HasTicksAssignment_2_1_0 ) )
             {
-            // InternalChartDSL.g:5483:1: ( ( rule__ChartGauge__HasTicksAssignment_2_1_0 ) )
-            // InternalChartDSL.g:5484:2: ( rule__ChartGauge__HasTicksAssignment_2_1_0 )
+            // InternalChartDSL.g:5845:1: ( ( rule__ChartGauge__HasTicksAssignment_2_1_0 ) )
+            // InternalChartDSL.g:5846:2: ( rule__ChartGauge__HasTicksAssignment_2_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getHasTicksAssignment_2_1_0()); 
             }
-            // InternalChartDSL.g:5485:2: ( rule__ChartGauge__HasTicksAssignment_2_1_0 )
-            // InternalChartDSL.g:5485:3: rule__ChartGauge__HasTicksAssignment_2_1_0
+            // InternalChartDSL.g:5847:2: ( rule__ChartGauge__HasTicksAssignment_2_1_0 )
+            // InternalChartDSL.g:5847:3: rule__ChartGauge__HasTicksAssignment_2_1_0
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__HasTicksAssignment_2_1_0();
@@ -19813,16 +21087,16 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_1__1"
-    // InternalChartDSL.g:5493:1: rule__ChartGauge__Group_2_1__1 : rule__ChartGauge__Group_2_1__1__Impl rule__ChartGauge__Group_2_1__2 ;
+    // InternalChartDSL.g:5855:1: rule__ChartGauge__Group_2_1__1 : rule__ChartGauge__Group_2_1__1__Impl rule__ChartGauge__Group_2_1__2 ;
     public final void rule__ChartGauge__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5497:1: ( rule__ChartGauge__Group_2_1__1__Impl rule__ChartGauge__Group_2_1__2 )
-            // InternalChartDSL.g:5498:2: rule__ChartGauge__Group_2_1__1__Impl rule__ChartGauge__Group_2_1__2
+            // InternalChartDSL.g:5859:1: ( rule__ChartGauge__Group_2_1__1__Impl rule__ChartGauge__Group_2_1__2 )
+            // InternalChartDSL.g:5860:2: rule__ChartGauge__Group_2_1__1__Impl rule__ChartGauge__Group_2_1__2
             {
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_36);
             rule__ChartGauge__Group_2_1__1__Impl();
 
             state._fsp--;
@@ -19851,22 +21125,22 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_1__1__Impl"
-    // InternalChartDSL.g:5505:1: rule__ChartGauge__Group_2_1__1__Impl : ( 'minimum' ) ;
+    // InternalChartDSL.g:5867:1: rule__ChartGauge__Group_2_1__1__Impl : ( 'minimum' ) ;
     public final void rule__ChartGauge__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5509:1: ( ( 'minimum' ) )
-            // InternalChartDSL.g:5510:1: ( 'minimum' )
+            // InternalChartDSL.g:5871:1: ( ( 'minimum' ) )
+            // InternalChartDSL.g:5872:1: ( 'minimum' )
             {
-            // InternalChartDSL.g:5510:1: ( 'minimum' )
-            // InternalChartDSL.g:5511:2: 'minimum'
+            // InternalChartDSL.g:5872:1: ( 'minimum' )
+            // InternalChartDSL.g:5873:2: 'minimum'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getMinimumKeyword_2_1_1()); 
             }
-            match(input,84,FOLLOW_2); if (state.failed) return ;
+            match(input,92,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartGaugeAccess().getMinimumKeyword_2_1_1()); 
             }
@@ -19892,16 +21166,16 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_1__2"
-    // InternalChartDSL.g:5520:1: rule__ChartGauge__Group_2_1__2 : rule__ChartGauge__Group_2_1__2__Impl rule__ChartGauge__Group_2_1__3 ;
+    // InternalChartDSL.g:5882:1: rule__ChartGauge__Group_2_1__2 : rule__ChartGauge__Group_2_1__2__Impl rule__ChartGauge__Group_2_1__3 ;
     public final void rule__ChartGauge__Group_2_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5524:1: ( rule__ChartGauge__Group_2_1__2__Impl rule__ChartGauge__Group_2_1__3 )
-            // InternalChartDSL.g:5525:2: rule__ChartGauge__Group_2_1__2__Impl rule__ChartGauge__Group_2_1__3
+            // InternalChartDSL.g:5886:1: ( rule__ChartGauge__Group_2_1__2__Impl rule__ChartGauge__Group_2_1__3 )
+            // InternalChartDSL.g:5887:2: rule__ChartGauge__Group_2_1__2__Impl rule__ChartGauge__Group_2_1__3
             {
-            pushFollow(FOLLOW_33);
+            pushFollow(FOLLOW_37);
             rule__ChartGauge__Group_2_1__2__Impl();
 
             state._fsp--;
@@ -19930,23 +21204,23 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_1__2__Impl"
-    // InternalChartDSL.g:5532:1: rule__ChartGauge__Group_2_1__2__Impl : ( ( rule__ChartGauge__MinValueAssignment_2_1_2 ) ) ;
+    // InternalChartDSL.g:5894:1: rule__ChartGauge__Group_2_1__2__Impl : ( ( rule__ChartGauge__MinValueAssignment_2_1_2 ) ) ;
     public final void rule__ChartGauge__Group_2_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5536:1: ( ( ( rule__ChartGauge__MinValueAssignment_2_1_2 ) ) )
-            // InternalChartDSL.g:5537:1: ( ( rule__ChartGauge__MinValueAssignment_2_1_2 ) )
+            // InternalChartDSL.g:5898:1: ( ( ( rule__ChartGauge__MinValueAssignment_2_1_2 ) ) )
+            // InternalChartDSL.g:5899:1: ( ( rule__ChartGauge__MinValueAssignment_2_1_2 ) )
             {
-            // InternalChartDSL.g:5537:1: ( ( rule__ChartGauge__MinValueAssignment_2_1_2 ) )
-            // InternalChartDSL.g:5538:2: ( rule__ChartGauge__MinValueAssignment_2_1_2 )
+            // InternalChartDSL.g:5899:1: ( ( rule__ChartGauge__MinValueAssignment_2_1_2 ) )
+            // InternalChartDSL.g:5900:2: ( rule__ChartGauge__MinValueAssignment_2_1_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getMinValueAssignment_2_1_2()); 
             }
-            // InternalChartDSL.g:5539:2: ( rule__ChartGauge__MinValueAssignment_2_1_2 )
-            // InternalChartDSL.g:5539:3: rule__ChartGauge__MinValueAssignment_2_1_2
+            // InternalChartDSL.g:5901:2: ( rule__ChartGauge__MinValueAssignment_2_1_2 )
+            // InternalChartDSL.g:5901:3: rule__ChartGauge__MinValueAssignment_2_1_2
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__MinValueAssignment_2_1_2();
@@ -19981,16 +21255,16 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_1__3"
-    // InternalChartDSL.g:5547:1: rule__ChartGauge__Group_2_1__3 : rule__ChartGauge__Group_2_1__3__Impl rule__ChartGauge__Group_2_1__4 ;
+    // InternalChartDSL.g:5909:1: rule__ChartGauge__Group_2_1__3 : rule__ChartGauge__Group_2_1__3__Impl rule__ChartGauge__Group_2_1__4 ;
     public final void rule__ChartGauge__Group_2_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5551:1: ( rule__ChartGauge__Group_2_1__3__Impl rule__ChartGauge__Group_2_1__4 )
-            // InternalChartDSL.g:5552:2: rule__ChartGauge__Group_2_1__3__Impl rule__ChartGauge__Group_2_1__4
+            // InternalChartDSL.g:5913:1: ( rule__ChartGauge__Group_2_1__3__Impl rule__ChartGauge__Group_2_1__4 )
+            // InternalChartDSL.g:5914:2: rule__ChartGauge__Group_2_1__3__Impl rule__ChartGauge__Group_2_1__4
             {
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_36);
             rule__ChartGauge__Group_2_1__3__Impl();
 
             state._fsp--;
@@ -20019,22 +21293,22 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_1__3__Impl"
-    // InternalChartDSL.g:5559:1: rule__ChartGauge__Group_2_1__3__Impl : ( 'maximum' ) ;
+    // InternalChartDSL.g:5921:1: rule__ChartGauge__Group_2_1__3__Impl : ( 'maximum' ) ;
     public final void rule__ChartGauge__Group_2_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5563:1: ( ( 'maximum' ) )
-            // InternalChartDSL.g:5564:1: ( 'maximum' )
+            // InternalChartDSL.g:5925:1: ( ( 'maximum' ) )
+            // InternalChartDSL.g:5926:1: ( 'maximum' )
             {
-            // InternalChartDSL.g:5564:1: ( 'maximum' )
-            // InternalChartDSL.g:5565:2: 'maximum'
+            // InternalChartDSL.g:5926:1: ( 'maximum' )
+            // InternalChartDSL.g:5927:2: 'maximum'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getMaximumKeyword_2_1_3()); 
             }
-            match(input,85,FOLLOW_2); if (state.failed) return ;
+            match(input,93,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartGaugeAccess().getMaximumKeyword_2_1_3()); 
             }
@@ -20060,14 +21334,14 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_1__4"
-    // InternalChartDSL.g:5574:1: rule__ChartGauge__Group_2_1__4 : rule__ChartGauge__Group_2_1__4__Impl ;
+    // InternalChartDSL.g:5936:1: rule__ChartGauge__Group_2_1__4 : rule__ChartGauge__Group_2_1__4__Impl ;
     public final void rule__ChartGauge__Group_2_1__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5578:1: ( rule__ChartGauge__Group_2_1__4__Impl )
-            // InternalChartDSL.g:5579:2: rule__ChartGauge__Group_2_1__4__Impl
+            // InternalChartDSL.g:5940:1: ( rule__ChartGauge__Group_2_1__4__Impl )
+            // InternalChartDSL.g:5941:2: rule__ChartGauge__Group_2_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__Group_2_1__4__Impl();
@@ -20093,23 +21367,23 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_1__4__Impl"
-    // InternalChartDSL.g:5585:1: rule__ChartGauge__Group_2_1__4__Impl : ( ( rule__ChartGauge__MaxValueAssignment_2_1_4 ) ) ;
+    // InternalChartDSL.g:5947:1: rule__ChartGauge__Group_2_1__4__Impl : ( ( rule__ChartGauge__MaxValueAssignment_2_1_4 ) ) ;
     public final void rule__ChartGauge__Group_2_1__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5589:1: ( ( ( rule__ChartGauge__MaxValueAssignment_2_1_4 ) ) )
-            // InternalChartDSL.g:5590:1: ( ( rule__ChartGauge__MaxValueAssignment_2_1_4 ) )
+            // InternalChartDSL.g:5951:1: ( ( ( rule__ChartGauge__MaxValueAssignment_2_1_4 ) ) )
+            // InternalChartDSL.g:5952:1: ( ( rule__ChartGauge__MaxValueAssignment_2_1_4 ) )
             {
-            // InternalChartDSL.g:5590:1: ( ( rule__ChartGauge__MaxValueAssignment_2_1_4 ) )
-            // InternalChartDSL.g:5591:2: ( rule__ChartGauge__MaxValueAssignment_2_1_4 )
+            // InternalChartDSL.g:5952:1: ( ( rule__ChartGauge__MaxValueAssignment_2_1_4 ) )
+            // InternalChartDSL.g:5953:2: ( rule__ChartGauge__MaxValueAssignment_2_1_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getMaxValueAssignment_2_1_4()); 
             }
-            // InternalChartDSL.g:5592:2: ( rule__ChartGauge__MaxValueAssignment_2_1_4 )
-            // InternalChartDSL.g:5592:3: rule__ChartGauge__MaxValueAssignment_2_1_4
+            // InternalChartDSL.g:5954:2: ( rule__ChartGauge__MaxValueAssignment_2_1_4 )
+            // InternalChartDSL.g:5954:3: rule__ChartGauge__MaxValueAssignment_2_1_4
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__MaxValueAssignment_2_1_4();
@@ -20144,16 +21418,16 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_2__0"
-    // InternalChartDSL.g:5601:1: rule__ChartGauge__Group_2_2__0 : rule__ChartGauge__Group_2_2__0__Impl rule__ChartGauge__Group_2_2__1 ;
+    // InternalChartDSL.g:5963:1: rule__ChartGauge__Group_2_2__0 : rule__ChartGauge__Group_2_2__0__Impl rule__ChartGauge__Group_2_2__1 ;
     public final void rule__ChartGauge__Group_2_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5605:1: ( rule__ChartGauge__Group_2_2__0__Impl rule__ChartGauge__Group_2_2__1 )
-            // InternalChartDSL.g:5606:2: rule__ChartGauge__Group_2_2__0__Impl rule__ChartGauge__Group_2_2__1
+            // InternalChartDSL.g:5967:1: ( rule__ChartGauge__Group_2_2__0__Impl rule__ChartGauge__Group_2_2__1 )
+            // InternalChartDSL.g:5968:2: rule__ChartGauge__Group_2_2__0__Impl rule__ChartGauge__Group_2_2__1
             {
-            pushFollow(FOLLOW_8);
+            pushFollow(FOLLOW_9);
             rule__ChartGauge__Group_2_2__0__Impl();
 
             state._fsp--;
@@ -20182,23 +21456,23 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_2__0__Impl"
-    // InternalChartDSL.g:5613:1: rule__ChartGauge__Group_2_2__0__Impl : ( ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 ) ) ;
+    // InternalChartDSL.g:5975:1: rule__ChartGauge__Group_2_2__0__Impl : ( ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 ) ) ;
     public final void rule__ChartGauge__Group_2_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5617:1: ( ( ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 ) ) )
-            // InternalChartDSL.g:5618:1: ( ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 ) )
+            // InternalChartDSL.g:5979:1: ( ( ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 ) ) )
+            // InternalChartDSL.g:5980:1: ( ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 ) )
             {
-            // InternalChartDSL.g:5618:1: ( ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 ) )
-            // InternalChartDSL.g:5619:2: ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 )
+            // InternalChartDSL.g:5980:1: ( ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 ) )
+            // InternalChartDSL.g:5981:2: ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getHasIntervalsAssignment_2_2_0()); 
             }
-            // InternalChartDSL.g:5620:2: ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 )
-            // InternalChartDSL.g:5620:3: rule__ChartGauge__HasIntervalsAssignment_2_2_0
+            // InternalChartDSL.g:5982:2: ( rule__ChartGauge__HasIntervalsAssignment_2_2_0 )
+            // InternalChartDSL.g:5982:3: rule__ChartGauge__HasIntervalsAssignment_2_2_0
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__HasIntervalsAssignment_2_2_0();
@@ -20233,16 +21507,16 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_2__1"
-    // InternalChartDSL.g:5628:1: rule__ChartGauge__Group_2_2__1 : rule__ChartGauge__Group_2_2__1__Impl rule__ChartGauge__Group_2_2__2 ;
+    // InternalChartDSL.g:5990:1: rule__ChartGauge__Group_2_2__1 : rule__ChartGauge__Group_2_2__1__Impl rule__ChartGauge__Group_2_2__2 ;
     public final void rule__ChartGauge__Group_2_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5632:1: ( rule__ChartGauge__Group_2_2__1__Impl rule__ChartGauge__Group_2_2__2 )
-            // InternalChartDSL.g:5633:2: rule__ChartGauge__Group_2_2__1__Impl rule__ChartGauge__Group_2_2__2
+            // InternalChartDSL.g:5994:1: ( rule__ChartGauge__Group_2_2__1__Impl rule__ChartGauge__Group_2_2__2 )
+            // InternalChartDSL.g:5995:2: rule__ChartGauge__Group_2_2__1__Impl rule__ChartGauge__Group_2_2__2
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_38);
             rule__ChartGauge__Group_2_2__1__Impl();
 
             state._fsp--;
@@ -20271,22 +21545,22 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_2__1__Impl"
-    // InternalChartDSL.g:5640:1: rule__ChartGauge__Group_2_2__1__Impl : ( '{' ) ;
+    // InternalChartDSL.g:6002:1: rule__ChartGauge__Group_2_2__1__Impl : ( '{' ) ;
     public final void rule__ChartGauge__Group_2_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5644:1: ( ( '{' ) )
-            // InternalChartDSL.g:5645:1: ( '{' )
+            // InternalChartDSL.g:6006:1: ( ( '{' ) )
+            // InternalChartDSL.g:6007:1: ( '{' )
             {
-            // InternalChartDSL.g:5645:1: ( '{' )
-            // InternalChartDSL.g:5646:2: '{'
+            // InternalChartDSL.g:6007:1: ( '{' )
+            // InternalChartDSL.g:6008:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getLeftCurlyBracketKeyword_2_2_1()); 
             }
-            match(input,72,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartGaugeAccess().getLeftCurlyBracketKeyword_2_2_1()); 
             }
@@ -20312,16 +21586,16 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_2__2"
-    // InternalChartDSL.g:5655:1: rule__ChartGauge__Group_2_2__2 : rule__ChartGauge__Group_2_2__2__Impl rule__ChartGauge__Group_2_2__3 ;
+    // InternalChartDSL.g:6017:1: rule__ChartGauge__Group_2_2__2 : rule__ChartGauge__Group_2_2__2__Impl rule__ChartGauge__Group_2_2__3 ;
     public final void rule__ChartGauge__Group_2_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5659:1: ( rule__ChartGauge__Group_2_2__2__Impl rule__ChartGauge__Group_2_2__3 )
-            // InternalChartDSL.g:5660:2: rule__ChartGauge__Group_2_2__2__Impl rule__ChartGauge__Group_2_2__3
+            // InternalChartDSL.g:6021:1: ( rule__ChartGauge__Group_2_2__2__Impl rule__ChartGauge__Group_2_2__3 )
+            // InternalChartDSL.g:6022:2: rule__ChartGauge__Group_2_2__2__Impl rule__ChartGauge__Group_2_2__3
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_38);
             rule__ChartGauge__Group_2_2__2__Impl();
 
             state._fsp--;
@@ -20350,37 +21624,37 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_2__2__Impl"
-    // InternalChartDSL.g:5667:1: rule__ChartGauge__Group_2_2__2__Impl : ( ( rule__ChartGauge__IntervalsAssignment_2_2_2 )* ) ;
+    // InternalChartDSL.g:6029:1: rule__ChartGauge__Group_2_2__2__Impl : ( ( rule__ChartGauge__IntervalsAssignment_2_2_2 )* ) ;
     public final void rule__ChartGauge__Group_2_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5671:1: ( ( ( rule__ChartGauge__IntervalsAssignment_2_2_2 )* ) )
-            // InternalChartDSL.g:5672:1: ( ( rule__ChartGauge__IntervalsAssignment_2_2_2 )* )
+            // InternalChartDSL.g:6033:1: ( ( ( rule__ChartGauge__IntervalsAssignment_2_2_2 )* ) )
+            // InternalChartDSL.g:6034:1: ( ( rule__ChartGauge__IntervalsAssignment_2_2_2 )* )
             {
-            // InternalChartDSL.g:5672:1: ( ( rule__ChartGauge__IntervalsAssignment_2_2_2 )* )
-            // InternalChartDSL.g:5673:2: ( rule__ChartGauge__IntervalsAssignment_2_2_2 )*
+            // InternalChartDSL.g:6034:1: ( ( rule__ChartGauge__IntervalsAssignment_2_2_2 )* )
+            // InternalChartDSL.g:6035:2: ( rule__ChartGauge__IntervalsAssignment_2_2_2 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getIntervalsAssignment_2_2_2()); 
             }
-            // InternalChartDSL.g:5674:2: ( rule__ChartGauge__IntervalsAssignment_2_2_2 )*
-            loop65:
+            // InternalChartDSL.g:6036:2: ( rule__ChartGauge__IntervalsAssignment_2_2_2 )*
+            loop69:
             do {
-                int alt65=2;
-                int LA65_0 = input.LA(1);
+                int alt69=2;
+                int LA69_0 = input.LA(1);
 
-                if ( (LA65_0==87) ) {
-                    alt65=1;
+                if ( (LA69_0==95) ) {
+                    alt69=1;
                 }
 
 
-                switch (alt65) {
+                switch (alt69) {
             	case 1 :
-            	    // InternalChartDSL.g:5674:3: rule__ChartGauge__IntervalsAssignment_2_2_2
+            	    // InternalChartDSL.g:6036:3: rule__ChartGauge__IntervalsAssignment_2_2_2
             	    {
-            	    pushFollow(FOLLOW_35);
+            	    pushFollow(FOLLOW_39);
             	    rule__ChartGauge__IntervalsAssignment_2_2_2();
 
             	    state._fsp--;
@@ -20390,7 +21664,7 @@
             	    break;
 
             	default :
-            	    break loop65;
+            	    break loop69;
                 }
             } while (true);
 
@@ -20419,14 +21693,14 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_2__3"
-    // InternalChartDSL.g:5682:1: rule__ChartGauge__Group_2_2__3 : rule__ChartGauge__Group_2_2__3__Impl ;
+    // InternalChartDSL.g:6044:1: rule__ChartGauge__Group_2_2__3 : rule__ChartGauge__Group_2_2__3__Impl ;
     public final void rule__ChartGauge__Group_2_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5686:1: ( rule__ChartGauge__Group_2_2__3__Impl )
-            // InternalChartDSL.g:5687:2: rule__ChartGauge__Group_2_2__3__Impl
+            // InternalChartDSL.g:6048:1: ( rule__ChartGauge__Group_2_2__3__Impl )
+            // InternalChartDSL.g:6049:2: rule__ChartGauge__Group_2_2__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__Group_2_2__3__Impl();
@@ -20452,22 +21726,22 @@
 
 
     // $ANTLR start "rule__ChartGauge__Group_2_2__3__Impl"
-    // InternalChartDSL.g:5693:1: rule__ChartGauge__Group_2_2__3__Impl : ( '}' ) ;
+    // InternalChartDSL.g:6055:1: rule__ChartGauge__Group_2_2__3__Impl : ( '}' ) ;
     public final void rule__ChartGauge__Group_2_2__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5697:1: ( ( '}' ) )
-            // InternalChartDSL.g:5698:1: ( '}' )
+            // InternalChartDSL.g:6059:1: ( ( '}' ) )
+            // InternalChartDSL.g:6060:1: ( '}' )
             {
-            // InternalChartDSL.g:5698:1: ( '}' )
-            // InternalChartDSL.g:5699:2: '}'
+            // InternalChartDSL.g:6060:1: ( '}' )
+            // InternalChartDSL.g:6061:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getRightCurlyBracketKeyword_2_2_3()); 
             }
-            match(input,73,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartGaugeAccess().getRightCurlyBracketKeyword_2_2_3()); 
             }
@@ -20493,16 +21767,16 @@
 
 
     // $ANTLR start "rule__ChartTree__Group__0"
-    // InternalChartDSL.g:5709:1: rule__ChartTree__Group__0 : rule__ChartTree__Group__0__Impl rule__ChartTree__Group__1 ;
+    // InternalChartDSL.g:6071:1: rule__ChartTree__Group__0 : rule__ChartTree__Group__0__Impl rule__ChartTree__Group__1 ;
     public final void rule__ChartTree__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5713:1: ( rule__ChartTree__Group__0__Impl rule__ChartTree__Group__1 )
-            // InternalChartDSL.g:5714:2: rule__ChartTree__Group__0__Impl rule__ChartTree__Group__1
+            // InternalChartDSL.g:6075:1: ( rule__ChartTree__Group__0__Impl rule__ChartTree__Group__1 )
+            // InternalChartDSL.g:6076:2: rule__ChartTree__Group__0__Impl rule__ChartTree__Group__1
             {
-            pushFollow(FOLLOW_13);
+            pushFollow(FOLLOW_18);
             rule__ChartTree__Group__0__Impl();
 
             state._fsp--;
@@ -20531,23 +21805,23 @@
 
 
     // $ANTLR start "rule__ChartTree__Group__0__Impl"
-    // InternalChartDSL.g:5721:1: rule__ChartTree__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:6083:1: rule__ChartTree__Group__0__Impl : ( () ) ;
     public final void rule__ChartTree__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5725:1: ( ( () ) )
-            // InternalChartDSL.g:5726:1: ( () )
+            // InternalChartDSL.g:6087:1: ( ( () ) )
+            // InternalChartDSL.g:6088:1: ( () )
             {
-            // InternalChartDSL.g:5726:1: ( () )
-            // InternalChartDSL.g:5727:2: ()
+            // InternalChartDSL.g:6088:1: ( () )
+            // InternalChartDSL.g:6089:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartTreeAccess().getChartTreeAction_0()); 
             }
-            // InternalChartDSL.g:5728:2: ()
-            // InternalChartDSL.g:5728:3: 
+            // InternalChartDSL.g:6090:2: ()
+            // InternalChartDSL.g:6090:3: 
             {
             }
 
@@ -20572,16 +21846,16 @@
 
 
     // $ANTLR start "rule__ChartTree__Group__1"
-    // InternalChartDSL.g:5736:1: rule__ChartTree__Group__1 : rule__ChartTree__Group__1__Impl rule__ChartTree__Group__2 ;
+    // InternalChartDSL.g:6098:1: rule__ChartTree__Group__1 : rule__ChartTree__Group__1__Impl rule__ChartTree__Group__2 ;
     public final void rule__ChartTree__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5740:1: ( rule__ChartTree__Group__1__Impl rule__ChartTree__Group__2 )
-            // InternalChartDSL.g:5741:2: rule__ChartTree__Group__1__Impl rule__ChartTree__Group__2
+            // InternalChartDSL.g:6102:1: ( rule__ChartTree__Group__1__Impl rule__ChartTree__Group__2 )
+            // InternalChartDSL.g:6103:2: rule__ChartTree__Group__1__Impl rule__ChartTree__Group__2
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_40);
             rule__ChartTree__Group__1__Impl();
 
             state._fsp--;
@@ -20610,22 +21884,22 @@
 
 
     // $ANTLR start "rule__ChartTree__Group__1__Impl"
-    // InternalChartDSL.g:5748:1: rule__ChartTree__Group__1__Impl : ( 'tree' ) ;
+    // InternalChartDSL.g:6110:1: rule__ChartTree__Group__1__Impl : ( 'tree' ) ;
     public final void rule__ChartTree__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5752:1: ( ( 'tree' ) )
-            // InternalChartDSL.g:5753:1: ( 'tree' )
+            // InternalChartDSL.g:6114:1: ( ( 'tree' ) )
+            // InternalChartDSL.g:6115:1: ( 'tree' )
             {
-            // InternalChartDSL.g:5753:1: ( 'tree' )
-            // InternalChartDSL.g:5754:2: 'tree'
+            // InternalChartDSL.g:6115:1: ( 'tree' )
+            // InternalChartDSL.g:6116:2: 'tree'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartTreeAccess().getTreeKeyword_1()); 
             }
-            match(input,86,FOLLOW_2); if (state.failed) return ;
+            match(input,94,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartTreeAccess().getTreeKeyword_1()); 
             }
@@ -20651,14 +21925,14 @@
 
 
     // $ANTLR start "rule__ChartTree__Group__2"
-    // InternalChartDSL.g:5763:1: rule__ChartTree__Group__2 : rule__ChartTree__Group__2__Impl ;
+    // InternalChartDSL.g:6125:1: rule__ChartTree__Group__2 : rule__ChartTree__Group__2__Impl ;
     public final void rule__ChartTree__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5767:1: ( rule__ChartTree__Group__2__Impl )
-            // InternalChartDSL.g:5768:2: rule__ChartTree__Group__2__Impl
+            // InternalChartDSL.g:6129:1: ( rule__ChartTree__Group__2__Impl )
+            // InternalChartDSL.g:6130:2: rule__ChartTree__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartTree__Group__2__Impl();
@@ -20684,23 +21958,23 @@
 
 
     // $ANTLR start "rule__ChartTree__Group__2__Impl"
-    // InternalChartDSL.g:5774:1: rule__ChartTree__Group__2__Impl : ( ( rule__ChartTree__Alternatives_2 ) ) ;
+    // InternalChartDSL.g:6136:1: rule__ChartTree__Group__2__Impl : ( ( rule__ChartTree__Alternatives_2 ) ) ;
     public final void rule__ChartTree__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5778:1: ( ( ( rule__ChartTree__Alternatives_2 ) ) )
-            // InternalChartDSL.g:5779:1: ( ( rule__ChartTree__Alternatives_2 ) )
+            // InternalChartDSL.g:6140:1: ( ( ( rule__ChartTree__Alternatives_2 ) ) )
+            // InternalChartDSL.g:6141:1: ( ( rule__ChartTree__Alternatives_2 ) )
             {
-            // InternalChartDSL.g:5779:1: ( ( rule__ChartTree__Alternatives_2 ) )
-            // InternalChartDSL.g:5780:2: ( rule__ChartTree__Alternatives_2 )
+            // InternalChartDSL.g:6141:1: ( ( rule__ChartTree__Alternatives_2 ) )
+            // InternalChartDSL.g:6142:2: ( rule__ChartTree__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartTreeAccess().getAlternatives_2()); 
             }
-            // InternalChartDSL.g:5781:2: ( rule__ChartTree__Alternatives_2 )
-            // InternalChartDSL.g:5781:3: rule__ChartTree__Alternatives_2
+            // InternalChartDSL.g:6143:2: ( rule__ChartTree__Alternatives_2 )
+            // InternalChartDSL.g:6143:3: rule__ChartTree__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__ChartTree__Alternatives_2();
@@ -20735,16 +22009,16 @@
 
 
     // $ANTLR start "rule__ChartNumberInterval__Group__0"
-    // InternalChartDSL.g:5790:1: rule__ChartNumberInterval__Group__0 : rule__ChartNumberInterval__Group__0__Impl rule__ChartNumberInterval__Group__1 ;
+    // InternalChartDSL.g:6152:1: rule__ChartNumberInterval__Group__0 : rule__ChartNumberInterval__Group__0__Impl rule__ChartNumberInterval__Group__1 ;
     public final void rule__ChartNumberInterval__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5794:1: ( rule__ChartNumberInterval__Group__0__Impl rule__ChartNumberInterval__Group__1 )
-            // InternalChartDSL.g:5795:2: rule__ChartNumberInterval__Group__0__Impl rule__ChartNumberInterval__Group__1
+            // InternalChartDSL.g:6156:1: ( rule__ChartNumberInterval__Group__0__Impl rule__ChartNumberInterval__Group__1 )
+            // InternalChartDSL.g:6157:2: rule__ChartNumberInterval__Group__0__Impl rule__ChartNumberInterval__Group__1
             {
-            pushFollow(FOLLOW_37);
+            pushFollow(FOLLOW_41);
             rule__ChartNumberInterval__Group__0__Impl();
 
             state._fsp--;
@@ -20773,23 +22047,23 @@
 
 
     // $ANTLR start "rule__ChartNumberInterval__Group__0__Impl"
-    // InternalChartDSL.g:5802:1: rule__ChartNumberInterval__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:6164:1: rule__ChartNumberInterval__Group__0__Impl : ( () ) ;
     public final void rule__ChartNumberInterval__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5806:1: ( ( () ) )
-            // InternalChartDSL.g:5807:1: ( () )
+            // InternalChartDSL.g:6168:1: ( ( () ) )
+            // InternalChartDSL.g:6169:1: ( () )
             {
-            // InternalChartDSL.g:5807:1: ( () )
-            // InternalChartDSL.g:5808:2: ()
+            // InternalChartDSL.g:6169:1: ( () )
+            // InternalChartDSL.g:6170:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartNumberIntervalAccess().getChartNumberIntervalAction_0()); 
             }
-            // InternalChartDSL.g:5809:2: ()
-            // InternalChartDSL.g:5809:3: 
+            // InternalChartDSL.g:6171:2: ()
+            // InternalChartDSL.g:6171:3: 
             {
             }
 
@@ -20814,16 +22088,16 @@
 
 
     // $ANTLR start "rule__ChartNumberInterval__Group__1"
-    // InternalChartDSL.g:5817:1: rule__ChartNumberInterval__Group__1 : rule__ChartNumberInterval__Group__1__Impl rule__ChartNumberInterval__Group__2 ;
+    // InternalChartDSL.g:6179:1: rule__ChartNumberInterval__Group__1 : rule__ChartNumberInterval__Group__1__Impl rule__ChartNumberInterval__Group__2 ;
     public final void rule__ChartNumberInterval__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5821:1: ( rule__ChartNumberInterval__Group__1__Impl rule__ChartNumberInterval__Group__2 )
-            // InternalChartDSL.g:5822:2: rule__ChartNumberInterval__Group__1__Impl rule__ChartNumberInterval__Group__2
+            // InternalChartDSL.g:6183:1: ( rule__ChartNumberInterval__Group__1__Impl rule__ChartNumberInterval__Group__2 )
+            // InternalChartDSL.g:6184:2: rule__ChartNumberInterval__Group__1__Impl rule__ChartNumberInterval__Group__2
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_42);
             rule__ChartNumberInterval__Group__1__Impl();
 
             state._fsp--;
@@ -20852,22 +22126,22 @@
 
 
     // $ANTLR start "rule__ChartNumberInterval__Group__1__Impl"
-    // InternalChartDSL.g:5829:1: rule__ChartNumberInterval__Group__1__Impl : ( 'upTo' ) ;
+    // InternalChartDSL.g:6191:1: rule__ChartNumberInterval__Group__1__Impl : ( 'upTo' ) ;
     public final void rule__ChartNumberInterval__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5833:1: ( ( 'upTo' ) )
-            // InternalChartDSL.g:5834:1: ( 'upTo' )
+            // InternalChartDSL.g:6195:1: ( ( 'upTo' ) )
+            // InternalChartDSL.g:6196:1: ( 'upTo' )
             {
-            // InternalChartDSL.g:5834:1: ( 'upTo' )
-            // InternalChartDSL.g:5835:2: 'upTo'
+            // InternalChartDSL.g:6196:1: ( 'upTo' )
+            // InternalChartDSL.g:6197:2: 'upTo'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartNumberIntervalAccess().getUpToKeyword_1()); 
             }
-            match(input,87,FOLLOW_2); if (state.failed) return ;
+            match(input,95,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartNumberIntervalAccess().getUpToKeyword_1()); 
             }
@@ -20893,16 +22167,16 @@
 
 
     // $ANTLR start "rule__ChartNumberInterval__Group__2"
-    // InternalChartDSL.g:5844:1: rule__ChartNumberInterval__Group__2 : rule__ChartNumberInterval__Group__2__Impl rule__ChartNumberInterval__Group__3 ;
+    // InternalChartDSL.g:6206:1: rule__ChartNumberInterval__Group__2 : rule__ChartNumberInterval__Group__2__Impl rule__ChartNumberInterval__Group__3 ;
     public final void rule__ChartNumberInterval__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5848:1: ( rule__ChartNumberInterval__Group__2__Impl rule__ChartNumberInterval__Group__3 )
-            // InternalChartDSL.g:5849:2: rule__ChartNumberInterval__Group__2__Impl rule__ChartNumberInterval__Group__3
+            // InternalChartDSL.g:6210:1: ( rule__ChartNumberInterval__Group__2__Impl rule__ChartNumberInterval__Group__3 )
+            // InternalChartDSL.g:6211:2: rule__ChartNumberInterval__Group__2__Impl rule__ChartNumberInterval__Group__3
             {
-            pushFollow(FOLLOW_39);
+            pushFollow(FOLLOW_43);
             rule__ChartNumberInterval__Group__2__Impl();
 
             state._fsp--;
@@ -20931,23 +22205,23 @@
 
 
     // $ANTLR start "rule__ChartNumberInterval__Group__2__Impl"
-    // InternalChartDSL.g:5856:1: rule__ChartNumberInterval__Group__2__Impl : ( ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 ) ) ;
+    // InternalChartDSL.g:6218:1: rule__ChartNumberInterval__Group__2__Impl : ( ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 ) ) ;
     public final void rule__ChartNumberInterval__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5860:1: ( ( ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 ) ) )
-            // InternalChartDSL.g:5861:1: ( ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 ) )
+            // InternalChartDSL.g:6222:1: ( ( ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 ) ) )
+            // InternalChartDSL.g:6223:1: ( ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 ) )
             {
-            // InternalChartDSL.g:5861:1: ( ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 ) )
-            // InternalChartDSL.g:5862:2: ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 )
+            // InternalChartDSL.g:6223:1: ( ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 ) )
+            // InternalChartDSL.g:6224:2: ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartNumberIntervalAccess().getNumberIntervalValueAssignment_2()); 
             }
-            // InternalChartDSL.g:5863:2: ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 )
-            // InternalChartDSL.g:5863:3: rule__ChartNumberInterval__NumberIntervalValueAssignment_2
+            // InternalChartDSL.g:6225:2: ( rule__ChartNumberInterval__NumberIntervalValueAssignment_2 )
+            // InternalChartDSL.g:6225:3: rule__ChartNumberInterval__NumberIntervalValueAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__ChartNumberInterval__NumberIntervalValueAssignment_2();
@@ -20982,14 +22256,14 @@
 
 
     // $ANTLR start "rule__ChartNumberInterval__Group__3"
-    // InternalChartDSL.g:5871:1: rule__ChartNumberInterval__Group__3 : rule__ChartNumberInterval__Group__3__Impl ;
+    // InternalChartDSL.g:6233:1: rule__ChartNumberInterval__Group__3 : rule__ChartNumberInterval__Group__3__Impl ;
     public final void rule__ChartNumberInterval__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5875:1: ( rule__ChartNumberInterval__Group__3__Impl )
-            // InternalChartDSL.g:5876:2: rule__ChartNumberInterval__Group__3__Impl
+            // InternalChartDSL.g:6237:1: ( rule__ChartNumberInterval__Group__3__Impl )
+            // InternalChartDSL.g:6238:2: rule__ChartNumberInterval__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartNumberInterval__Group__3__Impl();
@@ -21015,23 +22289,23 @@
 
 
     // $ANTLR start "rule__ChartNumberInterval__Group__3__Impl"
-    // InternalChartDSL.g:5882:1: rule__ChartNumberInterval__Group__3__Impl : ( ( rule__ChartNumberInterval__NumberRangeAssignment_3 ) ) ;
+    // InternalChartDSL.g:6244:1: rule__ChartNumberInterval__Group__3__Impl : ( ( rule__ChartNumberInterval__NumberRangeAssignment_3 ) ) ;
     public final void rule__ChartNumberInterval__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5886:1: ( ( ( rule__ChartNumberInterval__NumberRangeAssignment_3 ) ) )
-            // InternalChartDSL.g:5887:1: ( ( rule__ChartNumberInterval__NumberRangeAssignment_3 ) )
+            // InternalChartDSL.g:6248:1: ( ( ( rule__ChartNumberInterval__NumberRangeAssignment_3 ) ) )
+            // InternalChartDSL.g:6249:1: ( ( rule__ChartNumberInterval__NumberRangeAssignment_3 ) )
             {
-            // InternalChartDSL.g:5887:1: ( ( rule__ChartNumberInterval__NumberRangeAssignment_3 ) )
-            // InternalChartDSL.g:5888:2: ( rule__ChartNumberInterval__NumberRangeAssignment_3 )
+            // InternalChartDSL.g:6249:1: ( ( rule__ChartNumberInterval__NumberRangeAssignment_3 ) )
+            // InternalChartDSL.g:6250:2: ( rule__ChartNumberInterval__NumberRangeAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartNumberIntervalAccess().getNumberRangeAssignment_3()); 
             }
-            // InternalChartDSL.g:5889:2: ( rule__ChartNumberInterval__NumberRangeAssignment_3 )
-            // InternalChartDSL.g:5889:3: rule__ChartNumberInterval__NumberRangeAssignment_3
+            // InternalChartDSL.g:6251:2: ( rule__ChartNumberInterval__NumberRangeAssignment_3 )
+            // InternalChartDSL.g:6251:3: rule__ChartNumberInterval__NumberRangeAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__ChartNumberInterval__NumberRangeAssignment_3();
@@ -21066,14 +22340,14 @@
 
 
     // $ANTLR start "rule__ChartDatamart__Group__0"
-    // InternalChartDSL.g:5898:1: rule__ChartDatamart__Group__0 : rule__ChartDatamart__Group__0__Impl rule__ChartDatamart__Group__1 ;
+    // InternalChartDSL.g:6260:1: rule__ChartDatamart__Group__0 : rule__ChartDatamart__Group__0__Impl rule__ChartDatamart__Group__1 ;
     public final void rule__ChartDatamart__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5902:1: ( rule__ChartDatamart__Group__0__Impl rule__ChartDatamart__Group__1 )
-            // InternalChartDSL.g:5903:2: rule__ChartDatamart__Group__0__Impl rule__ChartDatamart__Group__1
+            // InternalChartDSL.g:6264:1: ( rule__ChartDatamart__Group__0__Impl rule__ChartDatamart__Group__1 )
+            // InternalChartDSL.g:6265:2: rule__ChartDatamart__Group__0__Impl rule__ChartDatamart__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__ChartDatamart__Group__0__Impl();
@@ -21104,22 +22378,22 @@
 
 
     // $ANTLR start "rule__ChartDatamart__Group__0__Impl"
-    // InternalChartDSL.g:5910:1: rule__ChartDatamart__Group__0__Impl : ( 'datamart' ) ;
+    // InternalChartDSL.g:6272:1: rule__ChartDatamart__Group__0__Impl : ( 'datamart' ) ;
     public final void rule__ChartDatamart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5914:1: ( ( 'datamart' ) )
-            // InternalChartDSL.g:5915:1: ( 'datamart' )
+            // InternalChartDSL.g:6276:1: ( ( 'datamart' ) )
+            // InternalChartDSL.g:6277:1: ( 'datamart' )
             {
-            // InternalChartDSL.g:5915:1: ( 'datamart' )
-            // InternalChartDSL.g:5916:2: 'datamart'
+            // InternalChartDSL.g:6277:1: ( 'datamart' )
+            // InternalChartDSL.g:6278:2: 'datamart'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDatamartAccess().getDatamartKeyword_0()); 
             }
-            match(input,88,FOLLOW_2); if (state.failed) return ;
+            match(input,96,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartDatamartAccess().getDatamartKeyword_0()); 
             }
@@ -21145,16 +22419,16 @@
 
 
     // $ANTLR start "rule__ChartDatamart__Group__1"
-    // InternalChartDSL.g:5925:1: rule__ChartDatamart__Group__1 : rule__ChartDatamart__Group__1__Impl rule__ChartDatamart__Group__2 ;
+    // InternalChartDSL.g:6287:1: rule__ChartDatamart__Group__1 : rule__ChartDatamart__Group__1__Impl rule__ChartDatamart__Group__2 ;
     public final void rule__ChartDatamart__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5929:1: ( rule__ChartDatamart__Group__1__Impl rule__ChartDatamart__Group__2 )
-            // InternalChartDSL.g:5930:2: rule__ChartDatamart__Group__1__Impl rule__ChartDatamart__Group__2
+            // InternalChartDSL.g:6291:1: ( rule__ChartDatamart__Group__1__Impl rule__ChartDatamart__Group__2 )
+            // InternalChartDSL.g:6292:2: rule__ChartDatamart__Group__1__Impl rule__ChartDatamart__Group__2
             {
-            pushFollow(FOLLOW_8);
+            pushFollow(FOLLOW_9);
             rule__ChartDatamart__Group__1__Impl();
 
             state._fsp--;
@@ -21183,23 +22457,23 @@
 
 
     // $ANTLR start "rule__ChartDatamart__Group__1__Impl"
-    // InternalChartDSL.g:5937:1: rule__ChartDatamart__Group__1__Impl : ( ( rule__ChartDatamart__DatamartRefAssignment_1 ) ) ;
+    // InternalChartDSL.g:6299:1: rule__ChartDatamart__Group__1__Impl : ( ( rule__ChartDatamart__DatamartRefAssignment_1 ) ) ;
     public final void rule__ChartDatamart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5941:1: ( ( ( rule__ChartDatamart__DatamartRefAssignment_1 ) ) )
-            // InternalChartDSL.g:5942:1: ( ( rule__ChartDatamart__DatamartRefAssignment_1 ) )
+            // InternalChartDSL.g:6303:1: ( ( ( rule__ChartDatamart__DatamartRefAssignment_1 ) ) )
+            // InternalChartDSL.g:6304:1: ( ( rule__ChartDatamart__DatamartRefAssignment_1 ) )
             {
-            // InternalChartDSL.g:5942:1: ( ( rule__ChartDatamart__DatamartRefAssignment_1 ) )
-            // InternalChartDSL.g:5943:2: ( rule__ChartDatamart__DatamartRefAssignment_1 )
+            // InternalChartDSL.g:6304:1: ( ( rule__ChartDatamart__DatamartRefAssignment_1 ) )
+            // InternalChartDSL.g:6305:2: ( rule__ChartDatamart__DatamartRefAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDatamartAccess().getDatamartRefAssignment_1()); 
             }
-            // InternalChartDSL.g:5944:2: ( rule__ChartDatamart__DatamartRefAssignment_1 )
-            // InternalChartDSL.g:5944:3: rule__ChartDatamart__DatamartRefAssignment_1
+            // InternalChartDSL.g:6306:2: ( rule__ChartDatamart__DatamartRefAssignment_1 )
+            // InternalChartDSL.g:6306:3: rule__ChartDatamart__DatamartRefAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ChartDatamart__DatamartRefAssignment_1();
@@ -21234,16 +22508,16 @@
 
 
     // $ANTLR start "rule__ChartDatamart__Group__2"
-    // InternalChartDSL.g:5952:1: rule__ChartDatamart__Group__2 : rule__ChartDatamart__Group__2__Impl rule__ChartDatamart__Group__3 ;
+    // InternalChartDSL.g:6314:1: rule__ChartDatamart__Group__2 : rule__ChartDatamart__Group__2__Impl rule__ChartDatamart__Group__3 ;
     public final void rule__ChartDatamart__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5956:1: ( rule__ChartDatamart__Group__2__Impl rule__ChartDatamart__Group__3 )
-            // InternalChartDSL.g:5957:2: rule__ChartDatamart__Group__2__Impl rule__ChartDatamart__Group__3
+            // InternalChartDSL.g:6318:1: ( rule__ChartDatamart__Group__2__Impl rule__ChartDatamart__Group__3 )
+            // InternalChartDSL.g:6319:2: rule__ChartDatamart__Group__2__Impl rule__ChartDatamart__Group__3
             {
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_44);
             rule__ChartDatamart__Group__2__Impl();
 
             state._fsp--;
@@ -21272,22 +22546,22 @@
 
 
     // $ANTLR start "rule__ChartDatamart__Group__2__Impl"
-    // InternalChartDSL.g:5964:1: rule__ChartDatamart__Group__2__Impl : ( '{' ) ;
+    // InternalChartDSL.g:6326:1: rule__ChartDatamart__Group__2__Impl : ( '{' ) ;
     public final void rule__ChartDatamart__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5968:1: ( ( '{' ) )
-            // InternalChartDSL.g:5969:1: ( '{' )
+            // InternalChartDSL.g:6330:1: ( ( '{' ) )
+            // InternalChartDSL.g:6331:1: ( '{' )
             {
-            // InternalChartDSL.g:5969:1: ( '{' )
-            // InternalChartDSL.g:5970:2: '{'
+            // InternalChartDSL.g:6331:1: ( '{' )
+            // InternalChartDSL.g:6332:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDatamartAccess().getLeftCurlyBracketKeyword_2()); 
             }
-            match(input,72,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartDatamartAccess().getLeftCurlyBracketKeyword_2()); 
             }
@@ -21313,16 +22587,16 @@
 
 
     // $ANTLR start "rule__ChartDatamart__Group__3"
-    // InternalChartDSL.g:5979:1: rule__ChartDatamart__Group__3 : rule__ChartDatamart__Group__3__Impl rule__ChartDatamart__Group__4 ;
+    // InternalChartDSL.g:6341:1: rule__ChartDatamart__Group__3 : rule__ChartDatamart__Group__3__Impl rule__ChartDatamart__Group__4 ;
     public final void rule__ChartDatamart__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5983:1: ( rule__ChartDatamart__Group__3__Impl rule__ChartDatamart__Group__4 )
-            // InternalChartDSL.g:5984:2: rule__ChartDatamart__Group__3__Impl rule__ChartDatamart__Group__4
+            // InternalChartDSL.g:6345:1: ( rule__ChartDatamart__Group__3__Impl rule__ChartDatamart__Group__4 )
+            // InternalChartDSL.g:6346:2: rule__ChartDatamart__Group__3__Impl rule__ChartDatamart__Group__4
             {
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_44);
             rule__ChartDatamart__Group__3__Impl();
 
             state._fsp--;
@@ -21351,37 +22625,37 @@
 
 
     // $ANTLR start "rule__ChartDatamart__Group__3__Impl"
-    // InternalChartDSL.g:5991:1: rule__ChartDatamart__Group__3__Impl : ( ( rule__ChartDatamart__ElementsAssignment_3 )* ) ;
+    // InternalChartDSL.g:6353:1: rule__ChartDatamart__Group__3__Impl : ( ( rule__ChartDatamart__ElementsAssignment_3 )* ) ;
     public final void rule__ChartDatamart__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:5995:1: ( ( ( rule__ChartDatamart__ElementsAssignment_3 )* ) )
-            // InternalChartDSL.g:5996:1: ( ( rule__ChartDatamart__ElementsAssignment_3 )* )
+            // InternalChartDSL.g:6357:1: ( ( ( rule__ChartDatamart__ElementsAssignment_3 )* ) )
+            // InternalChartDSL.g:6358:1: ( ( rule__ChartDatamart__ElementsAssignment_3 )* )
             {
-            // InternalChartDSL.g:5996:1: ( ( rule__ChartDatamart__ElementsAssignment_3 )* )
-            // InternalChartDSL.g:5997:2: ( rule__ChartDatamart__ElementsAssignment_3 )*
+            // InternalChartDSL.g:6358:1: ( ( rule__ChartDatamart__ElementsAssignment_3 )* )
+            // InternalChartDSL.g:6359:2: ( rule__ChartDatamart__ElementsAssignment_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDatamartAccess().getElementsAssignment_3()); 
             }
-            // InternalChartDSL.g:5998:2: ( rule__ChartDatamart__ElementsAssignment_3 )*
-            loop66:
+            // InternalChartDSL.g:6360:2: ( rule__ChartDatamart__ElementsAssignment_3 )*
+            loop70:
             do {
-                int alt66=2;
-                int LA66_0 = input.LA(1);
+                int alt70=2;
+                int LA70_0 = input.LA(1);
 
-                if ( ((LA66_0>=89 && LA66_0<=91)) ) {
-                    alt66=1;
+                if ( (LA70_0==97||(LA70_0>=100 && LA70_0<=101)) ) {
+                    alt70=1;
                 }
 
 
-                switch (alt66) {
+                switch (alt70) {
             	case 1 :
-            	    // InternalChartDSL.g:5998:3: rule__ChartDatamart__ElementsAssignment_3
+            	    // InternalChartDSL.g:6360:3: rule__ChartDatamart__ElementsAssignment_3
             	    {
-            	    pushFollow(FOLLOW_41);
+            	    pushFollow(FOLLOW_45);
             	    rule__ChartDatamart__ElementsAssignment_3();
 
             	    state._fsp--;
@@ -21391,7 +22665,7 @@
             	    break;
 
             	default :
-            	    break loop66;
+            	    break loop70;
                 }
             } while (true);
 
@@ -21420,14 +22694,14 @@
 
 
     // $ANTLR start "rule__ChartDatamart__Group__4"
-    // InternalChartDSL.g:6006:1: rule__ChartDatamart__Group__4 : rule__ChartDatamart__Group__4__Impl ;
+    // InternalChartDSL.g:6368:1: rule__ChartDatamart__Group__4 : rule__ChartDatamart__Group__4__Impl ;
     public final void rule__ChartDatamart__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6010:1: ( rule__ChartDatamart__Group__4__Impl )
-            // InternalChartDSL.g:6011:2: rule__ChartDatamart__Group__4__Impl
+            // InternalChartDSL.g:6372:1: ( rule__ChartDatamart__Group__4__Impl )
+            // InternalChartDSL.g:6373:2: rule__ChartDatamart__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartDatamart__Group__4__Impl();
@@ -21453,22 +22727,22 @@
 
 
     // $ANTLR start "rule__ChartDatamart__Group__4__Impl"
-    // InternalChartDSL.g:6017:1: rule__ChartDatamart__Group__4__Impl : ( '}' ) ;
+    // InternalChartDSL.g:6379:1: rule__ChartDatamart__Group__4__Impl : ( '}' ) ;
     public final void rule__ChartDatamart__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6021:1: ( ( '}' ) )
-            // InternalChartDSL.g:6022:1: ( '}' )
+            // InternalChartDSL.g:6383:1: ( ( '}' ) )
+            // InternalChartDSL.g:6384:1: ( '}' )
             {
-            // InternalChartDSL.g:6022:1: ( '}' )
-            // InternalChartDSL.g:6023:2: '}'
+            // InternalChartDSL.g:6384:1: ( '}' )
+            // InternalChartDSL.g:6385:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDatamartAccess().getRightCurlyBracketKeyword_4()); 
             }
-            match(input,73,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartDatamartAccess().getRightCurlyBracketKeyword_4()); 
             }
@@ -21494,16 +22768,16 @@
 
 
     // $ANTLR start "rule__ChartLegend__Group__0"
-    // InternalChartDSL.g:6033:1: rule__ChartLegend__Group__0 : rule__ChartLegend__Group__0__Impl rule__ChartLegend__Group__1 ;
+    // InternalChartDSL.g:6395:1: rule__ChartLegend__Group__0 : rule__ChartLegend__Group__0__Impl rule__ChartLegend__Group__1 ;
     public final void rule__ChartLegend__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6037:1: ( rule__ChartLegend__Group__0__Impl rule__ChartLegend__Group__1 )
-            // InternalChartDSL.g:6038:2: rule__ChartLegend__Group__0__Impl rule__ChartLegend__Group__1
+            // InternalChartDSL.g:6399:1: ( rule__ChartLegend__Group__0__Impl rule__ChartLegend__Group__1 )
+            // InternalChartDSL.g:6400:2: rule__ChartLegend__Group__0__Impl rule__ChartLegend__Group__1
             {
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_46);
             rule__ChartLegend__Group__0__Impl();
 
             state._fsp--;
@@ -21532,24 +22806,28 @@
 
 
     // $ANTLR start "rule__ChartLegend__Group__0__Impl"
-    // InternalChartDSL.g:6045:1: rule__ChartLegend__Group__0__Impl : ( 'legend' ) ;
+    // InternalChartDSL.g:6407:1: rule__ChartLegend__Group__0__Impl : ( () ) ;
     public final void rule__ChartLegend__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6049:1: ( ( 'legend' ) )
-            // InternalChartDSL.g:6050:1: ( 'legend' )
+            // InternalChartDSL.g:6411:1: ( ( () ) )
+            // InternalChartDSL.g:6412:1: ( () )
             {
-            // InternalChartDSL.g:6050:1: ( 'legend' )
-            // InternalChartDSL.g:6051:2: 'legend'
+            // InternalChartDSL.g:6412:1: ( () )
+            // InternalChartDSL.g:6413:2: ()
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getLegendKeyword_0()); 
+               before(grammarAccess.getChartLegendAccess().getChartLegendAction_0()); 
             }
-            match(input,89,FOLLOW_2); if (state.failed) return ;
+            // InternalChartDSL.g:6414:2: ()
+            // InternalChartDSL.g:6414:3: 
+            {
+            }
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getLegendKeyword_0()); 
+               after(grammarAccess.getChartLegendAccess().getChartLegendAction_0()); 
             }
 
             }
@@ -21558,10 +22836,6 @@
             }
 
         }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -21573,16 +22847,16 @@
 
 
     // $ANTLR start "rule__ChartLegend__Group__1"
-    // InternalChartDSL.g:6060:1: rule__ChartLegend__Group__1 : rule__ChartLegend__Group__1__Impl rule__ChartLegend__Group__2 ;
+    // InternalChartDSL.g:6422:1: rule__ChartLegend__Group__1 : rule__ChartLegend__Group__1__Impl rule__ChartLegend__Group__2 ;
     public final void rule__ChartLegend__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6064:1: ( rule__ChartLegend__Group__1__Impl rule__ChartLegend__Group__2 )
-            // InternalChartDSL.g:6065:2: rule__ChartLegend__Group__1__Impl rule__ChartLegend__Group__2
+            // InternalChartDSL.g:6426:1: ( rule__ChartLegend__Group__1__Impl rule__ChartLegend__Group__2 )
+            // InternalChartDSL.g:6427:2: rule__ChartLegend__Group__1__Impl rule__ChartLegend__Group__2
             {
-            pushFollow(FOLLOW_43);
+            pushFollow(FOLLOW_47);
             rule__ChartLegend__Group__1__Impl();
 
             state._fsp--;
@@ -21611,34 +22885,24 @@
 
 
     // $ANTLR start "rule__ChartLegend__Group__1__Impl"
-    // InternalChartDSL.g:6072:1: rule__ChartLegend__Group__1__Impl : ( ( rule__ChartLegend__PlacementAssignment_1 ) ) ;
+    // InternalChartDSL.g:6434:1: rule__ChartLegend__Group__1__Impl : ( 'legend' ) ;
     public final void rule__ChartLegend__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6076:1: ( ( ( rule__ChartLegend__PlacementAssignment_1 ) ) )
-            // InternalChartDSL.g:6077:1: ( ( rule__ChartLegend__PlacementAssignment_1 ) )
+            // InternalChartDSL.g:6438:1: ( ( 'legend' ) )
+            // InternalChartDSL.g:6439:1: ( 'legend' )
             {
-            // InternalChartDSL.g:6077:1: ( ( rule__ChartLegend__PlacementAssignment_1 ) )
-            // InternalChartDSL.g:6078:2: ( rule__ChartLegend__PlacementAssignment_1 )
+            // InternalChartDSL.g:6439:1: ( 'legend' )
+            // InternalChartDSL.g:6440:2: 'legend'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getPlacementAssignment_1()); 
+               before(grammarAccess.getChartLegendAccess().getLegendKeyword_1()); 
             }
-            // InternalChartDSL.g:6079:2: ( rule__ChartLegend__PlacementAssignment_1 )
-            // InternalChartDSL.g:6079:3: rule__ChartLegend__PlacementAssignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__ChartLegend__PlacementAssignment_1();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
+            match(input,97,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getPlacementAssignment_1()); 
+               after(grammarAccess.getChartLegendAccess().getLegendKeyword_1()); 
             }
 
             }
@@ -21662,20 +22926,25 @@
 
 
     // $ANTLR start "rule__ChartLegend__Group__2"
-    // InternalChartDSL.g:6087:1: rule__ChartLegend__Group__2 : rule__ChartLegend__Group__2__Impl ;
+    // InternalChartDSL.g:6449:1: rule__ChartLegend__Group__2 : rule__ChartLegend__Group__2__Impl rule__ChartLegend__Group__3 ;
     public final void rule__ChartLegend__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6091:1: ( rule__ChartLegend__Group__2__Impl )
-            // InternalChartDSL.g:6092:2: rule__ChartLegend__Group__2__Impl
+            // InternalChartDSL.g:6453:1: ( rule__ChartLegend__Group__2__Impl rule__ChartLegend__Group__3 )
+            // InternalChartDSL.g:6454:2: rule__ChartLegend__Group__2__Impl rule__ChartLegend__Group__3
             {
-            pushFollow(FOLLOW_2);
+            pushFollow(FOLLOW_47);
             rule__ChartLegend__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
@@ -21695,34 +22964,34 @@
 
 
     // $ANTLR start "rule__ChartLegend__Group__2__Impl"
-    // InternalChartDSL.g:6098:1: rule__ChartLegend__Group__2__Impl : ( ( rule__ChartLegend__Group_2__0 )? ) ;
+    // InternalChartDSL.g:6461:1: rule__ChartLegend__Group__2__Impl : ( ( rule__ChartLegend__NoLegendAssignment_2 )? ) ;
     public final void rule__ChartLegend__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6102:1: ( ( ( rule__ChartLegend__Group_2__0 )? ) )
-            // InternalChartDSL.g:6103:1: ( ( rule__ChartLegend__Group_2__0 )? )
+            // InternalChartDSL.g:6465:1: ( ( ( rule__ChartLegend__NoLegendAssignment_2 )? ) )
+            // InternalChartDSL.g:6466:1: ( ( rule__ChartLegend__NoLegendAssignment_2 )? )
             {
-            // InternalChartDSL.g:6103:1: ( ( rule__ChartLegend__Group_2__0 )? )
-            // InternalChartDSL.g:6104:2: ( rule__ChartLegend__Group_2__0 )?
+            // InternalChartDSL.g:6466:1: ( ( rule__ChartLegend__NoLegendAssignment_2 )? )
+            // InternalChartDSL.g:6467:2: ( rule__ChartLegend__NoLegendAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getGroup_2()); 
+               before(grammarAccess.getChartLegendAccess().getNoLegendAssignment_2()); 
             }
-            // InternalChartDSL.g:6105:2: ( rule__ChartLegend__Group_2__0 )?
-            int alt67=2;
-            int LA67_0 = input.LA(1);
+            // InternalChartDSL.g:6468:2: ( rule__ChartLegend__NoLegendAssignment_2 )?
+            int alt71=2;
+            int LA71_0 = input.LA(1);
 
-            if ( (LA67_0==145) ) {
-                alt67=1;
+            if ( (LA71_0==161) ) {
+                alt71=1;
             }
-            switch (alt67) {
+            switch (alt71) {
                 case 1 :
-                    // InternalChartDSL.g:6105:3: rule__ChartLegend__Group_2__0
+                    // InternalChartDSL.g:6468:3: rule__ChartLegend__NoLegendAssignment_2
                     {
                     pushFollow(FOLLOW_2);
-                    rule__ChartLegend__Group_2__0();
+                    rule__ChartLegend__NoLegendAssignment_2();
 
                     state._fsp--;
                     if (state.failed) return ;
@@ -21733,7 +23002,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getGroup_2()); 
+               after(grammarAccess.getChartLegendAccess().getNoLegendAssignment_2()); 
             }
 
             }
@@ -21756,23 +23025,23 @@
     // $ANTLR end "rule__ChartLegend__Group__2__Impl"
 
 
-    // $ANTLR start "rule__ChartLegend__Group_2__0"
-    // InternalChartDSL.g:6114:1: rule__ChartLegend__Group_2__0 : rule__ChartLegend__Group_2__0__Impl rule__ChartLegend__Group_2__1 ;
-    public final void rule__ChartLegend__Group_2__0() throws RecognitionException {
+    // $ANTLR start "rule__ChartLegend__Group__3"
+    // InternalChartDSL.g:6476:1: rule__ChartLegend__Group__3 : rule__ChartLegend__Group__3__Impl rule__ChartLegend__Group__4 ;
+    public final void rule__ChartLegend__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6118:1: ( rule__ChartLegend__Group_2__0__Impl rule__ChartLegend__Group_2__1 )
-            // InternalChartDSL.g:6119:2: rule__ChartLegend__Group_2__0__Impl rule__ChartLegend__Group_2__1
+            // InternalChartDSL.g:6480:1: ( rule__ChartLegend__Group__3__Impl rule__ChartLegend__Group__4 )
+            // InternalChartDSL.g:6481:2: rule__ChartLegend__Group__3__Impl rule__ChartLegend__Group__4
             {
-            pushFollow(FOLLOW_44);
-            rule__ChartLegend__Group_2__0__Impl();
+            pushFollow(FOLLOW_47);
+            rule__ChartLegend__Group__3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__ChartLegend__Group_2__1();
+            rule__ChartLegend__Group__4();
 
             state._fsp--;
             if (state.failed) return ;
@@ -21791,38 +23060,49 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartLegend__Group_2__0"
+    // $ANTLR end "rule__ChartLegend__Group__3"
 
 
-    // $ANTLR start "rule__ChartLegend__Group_2__0__Impl"
-    // InternalChartDSL.g:6126:1: rule__ChartLegend__Group_2__0__Impl : ( ( rule__ChartLegend__ToggleAssignment_2_0 ) ) ;
-    public final void rule__ChartLegend__Group_2__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ChartLegend__Group__3__Impl"
+    // InternalChartDSL.g:6488:1: rule__ChartLegend__Group__3__Impl : ( ( rule__ChartLegend__Group_3__0 )? ) ;
+    public final void rule__ChartLegend__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6130:1: ( ( ( rule__ChartLegend__ToggleAssignment_2_0 ) ) )
-            // InternalChartDSL.g:6131:1: ( ( rule__ChartLegend__ToggleAssignment_2_0 ) )
+            // InternalChartDSL.g:6492:1: ( ( ( rule__ChartLegend__Group_3__0 )? ) )
+            // InternalChartDSL.g:6493:1: ( ( rule__ChartLegend__Group_3__0 )? )
             {
-            // InternalChartDSL.g:6131:1: ( ( rule__ChartLegend__ToggleAssignment_2_0 ) )
-            // InternalChartDSL.g:6132:2: ( rule__ChartLegend__ToggleAssignment_2_0 )
+            // InternalChartDSL.g:6493:1: ( ( rule__ChartLegend__Group_3__0 )? )
+            // InternalChartDSL.g:6494:2: ( rule__ChartLegend__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getToggleAssignment_2_0()); 
+               before(grammarAccess.getChartLegendAccess().getGroup_3()); 
             }
-            // InternalChartDSL.g:6133:2: ( rule__ChartLegend__ToggleAssignment_2_0 )
-            // InternalChartDSL.g:6133:3: rule__ChartLegend__ToggleAssignment_2_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__ChartLegend__ToggleAssignment_2_0();
+            // InternalChartDSL.g:6495:2: ( rule__ChartLegend__Group_3__0 )?
+            int alt72=2;
+            int LA72_0 = input.LA(1);
 
-            state._fsp--;
-            if (state.failed) return ;
+            if ( ((LA72_0>=51 && LA72_0<=54)) ) {
+                alt72=1;
+            }
+            switch (alt72) {
+                case 1 :
+                    // InternalChartDSL.g:6495:3: rule__ChartLegend__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ChartLegend__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getToggleAssignment_2_0()); 
+               after(grammarAccess.getChartLegendAccess().getGroup_3()); 
             }
 
             }
@@ -21842,26 +23122,26 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartLegend__Group_2__0__Impl"
+    // $ANTLR end "rule__ChartLegend__Group__3__Impl"
 
 
-    // $ANTLR start "rule__ChartLegend__Group_2__1"
-    // InternalChartDSL.g:6141:1: rule__ChartLegend__Group_2__1 : rule__ChartLegend__Group_2__1__Impl rule__ChartLegend__Group_2__2 ;
-    public final void rule__ChartLegend__Group_2__1() throws RecognitionException {
+    // $ANTLR start "rule__ChartLegend__Group__4"
+    // InternalChartDSL.g:6503:1: rule__ChartLegend__Group__4 : rule__ChartLegend__Group__4__Impl rule__ChartLegend__Group__5 ;
+    public final void rule__ChartLegend__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6145:1: ( rule__ChartLegend__Group_2__1__Impl rule__ChartLegend__Group_2__2 )
-            // InternalChartDSL.g:6146:2: rule__ChartLegend__Group_2__1__Impl rule__ChartLegend__Group_2__2
+            // InternalChartDSL.g:6507:1: ( rule__ChartLegend__Group__4__Impl rule__ChartLegend__Group__5 )
+            // InternalChartDSL.g:6508:2: rule__ChartLegend__Group__4__Impl rule__ChartLegend__Group__5
             {
-            pushFollow(FOLLOW_45);
-            rule__ChartLegend__Group_2__1__Impl();
+            pushFollow(FOLLOW_47);
+            rule__ChartLegend__Group__4__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__ChartLegend__Group_2__2();
+            rule__ChartLegend__Group__5();
 
             state._fsp--;
             if (state.failed) return ;
@@ -21880,38 +23160,49 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartLegend__Group_2__1"
+    // $ANTLR end "rule__ChartLegend__Group__4"
 
 
-    // $ANTLR start "rule__ChartLegend__Group_2__1__Impl"
-    // InternalChartDSL.g:6153:1: rule__ChartLegend__Group_2__1__Impl : ( ( rule__ChartLegend__ReplotAssignment_2_1 ) ) ;
-    public final void rule__ChartLegend__Group_2__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ChartLegend__Group__4__Impl"
+    // InternalChartDSL.g:6515:1: rule__ChartLegend__Group__4__Impl : ( ( rule__ChartLegend__Group_4__0 )? ) ;
+    public final void rule__ChartLegend__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6157:1: ( ( ( rule__ChartLegend__ReplotAssignment_2_1 ) ) )
-            // InternalChartDSL.g:6158:1: ( ( rule__ChartLegend__ReplotAssignment_2_1 ) )
+            // InternalChartDSL.g:6519:1: ( ( ( rule__ChartLegend__Group_4__0 )? ) )
+            // InternalChartDSL.g:6520:1: ( ( rule__ChartLegend__Group_4__0 )? )
             {
-            // InternalChartDSL.g:6158:1: ( ( rule__ChartLegend__ReplotAssignment_2_1 ) )
-            // InternalChartDSL.g:6159:2: ( rule__ChartLegend__ReplotAssignment_2_1 )
+            // InternalChartDSL.g:6520:1: ( ( rule__ChartLegend__Group_4__0 )? )
+            // InternalChartDSL.g:6521:2: ( rule__ChartLegend__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getReplotAssignment_2_1()); 
+               before(grammarAccess.getChartLegendAccess().getGroup_4()); 
             }
-            // InternalChartDSL.g:6160:2: ( rule__ChartLegend__ReplotAssignment_2_1 )
-            // InternalChartDSL.g:6160:3: rule__ChartLegend__ReplotAssignment_2_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__ChartLegend__ReplotAssignment_2_1();
+            // InternalChartDSL.g:6522:2: ( rule__ChartLegend__Group_4__0 )?
+            int alt73=2;
+            int LA73_0 = input.LA(1);
 
-            state._fsp--;
-            if (state.failed) return ;
+            if ( (LA73_0==98) ) {
+                alt73=1;
+            }
+            switch (alt73) {
+                case 1 :
+                    // InternalChartDSL.g:6522:3: rule__ChartLegend__Group_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ChartLegend__Group_4__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getReplotAssignment_2_1()); 
+               after(grammarAccess.getChartLegendAccess().getGroup_4()); 
             }
 
             }
@@ -21931,21 +23222,21 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartLegend__Group_2__1__Impl"
+    // $ANTLR end "rule__ChartLegend__Group__4__Impl"
 
 
-    // $ANTLR start "rule__ChartLegend__Group_2__2"
-    // InternalChartDSL.g:6168:1: rule__ChartLegend__Group_2__2 : rule__ChartLegend__Group_2__2__Impl ;
-    public final void rule__ChartLegend__Group_2__2() throws RecognitionException {
+    // $ANTLR start "rule__ChartLegend__Group__5"
+    // InternalChartDSL.g:6530:1: rule__ChartLegend__Group__5 : rule__ChartLegend__Group__5__Impl ;
+    public final void rule__ChartLegend__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6172:1: ( rule__ChartLegend__Group_2__2__Impl )
-            // InternalChartDSL.g:6173:2: rule__ChartLegend__Group_2__2__Impl
+            // InternalChartDSL.g:6534:1: ( rule__ChartLegend__Group__5__Impl )
+            // InternalChartDSL.g:6535:2: rule__ChartLegend__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__ChartLegend__Group_2__2__Impl();
+            rule__ChartLegend__Group__5__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -21964,38 +23255,49 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartLegend__Group_2__2"
+    // $ANTLR end "rule__ChartLegend__Group__5"
 
 
-    // $ANTLR start "rule__ChartLegend__Group_2__2__Impl"
-    // InternalChartDSL.g:6179:1: rule__ChartLegend__Group_2__2__Impl : ( ( rule__ChartLegend__ToggleTypeAssignment_2_2 ) ) ;
-    public final void rule__ChartLegend__Group_2__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ChartLegend__Group__5__Impl"
+    // InternalChartDSL.g:6541:1: rule__ChartLegend__Group__5__Impl : ( ( rule__ChartLegend__Group_5__0 )? ) ;
+    public final void rule__ChartLegend__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6183:1: ( ( ( rule__ChartLegend__ToggleTypeAssignment_2_2 ) ) )
-            // InternalChartDSL.g:6184:1: ( ( rule__ChartLegend__ToggleTypeAssignment_2_2 ) )
+            // InternalChartDSL.g:6545:1: ( ( ( rule__ChartLegend__Group_5__0 )? ) )
+            // InternalChartDSL.g:6546:1: ( ( rule__ChartLegend__Group_5__0 )? )
             {
-            // InternalChartDSL.g:6184:1: ( ( rule__ChartLegend__ToggleTypeAssignment_2_2 ) )
-            // InternalChartDSL.g:6185:2: ( rule__ChartLegend__ToggleTypeAssignment_2_2 )
+            // InternalChartDSL.g:6546:1: ( ( rule__ChartLegend__Group_5__0 )? )
+            // InternalChartDSL.g:6547:2: ( rule__ChartLegend__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getToggleTypeAssignment_2_2()); 
+               before(grammarAccess.getChartLegendAccess().getGroup_5()); 
             }
-            // InternalChartDSL.g:6186:2: ( rule__ChartLegend__ToggleTypeAssignment_2_2 )
-            // InternalChartDSL.g:6186:3: rule__ChartLegend__ToggleTypeAssignment_2_2
-            {
-            pushFollow(FOLLOW_2);
-            rule__ChartLegend__ToggleTypeAssignment_2_2();
+            // InternalChartDSL.g:6548:2: ( rule__ChartLegend__Group_5__0 )?
+            int alt74=2;
+            int LA74_0 = input.LA(1);
 
-            state._fsp--;
-            if (state.failed) return ;
+            if ( (LA74_0==99) ) {
+                alt74=1;
+            }
+            switch (alt74) {
+                case 1 :
+                    // InternalChartDSL.g:6548:3: rule__ChartLegend__Group_5__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ChartLegend__Group_5__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getToggleTypeAssignment_2_2()); 
+               after(grammarAccess.getChartLegendAccess().getGroup_5()); 
             }
 
             }
@@ -22015,20 +23317,792 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartLegend__Group_2__2__Impl"
+    // $ANTLR end "rule__ChartLegend__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_3__0"
+    // InternalChartDSL.g:6557:1: rule__ChartLegend__Group_3__0 : rule__ChartLegend__Group_3__0__Impl rule__ChartLegend__Group_3__1 ;
+    public final void rule__ChartLegend__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6561:1: ( rule__ChartLegend__Group_3__0__Impl rule__ChartLegend__Group_3__1 )
+            // InternalChartDSL.g:6562:2: rule__ChartLegend__Group_3__0__Impl rule__ChartLegend__Group_3__1
+            {
+            pushFollow(FOLLOW_48);
+            rule__ChartLegend__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_3__0"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_3__0__Impl"
+    // InternalChartDSL.g:6569:1: rule__ChartLegend__Group_3__0__Impl : ( ( rule__ChartLegend__PlacementAssignment_3_0 ) ) ;
+    public final void rule__ChartLegend__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6573:1: ( ( ( rule__ChartLegend__PlacementAssignment_3_0 ) ) )
+            // InternalChartDSL.g:6574:1: ( ( rule__ChartLegend__PlacementAssignment_3_0 ) )
+            {
+            // InternalChartDSL.g:6574:1: ( ( rule__ChartLegend__PlacementAssignment_3_0 ) )
+            // InternalChartDSL.g:6575:2: ( rule__ChartLegend__PlacementAssignment_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getPlacementAssignment_3_0()); 
+            }
+            // InternalChartDSL.g:6576:2: ( rule__ChartLegend__PlacementAssignment_3_0 )
+            // InternalChartDSL.g:6576:3: rule__ChartLegend__PlacementAssignment_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__PlacementAssignment_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getPlacementAssignment_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_3__1"
+    // InternalChartDSL.g:6584:1: rule__ChartLegend__Group_3__1 : rule__ChartLegend__Group_3__1__Impl ;
+    public final void rule__ChartLegend__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6588:1: ( rule__ChartLegend__Group_3__1__Impl )
+            // InternalChartDSL.g:6589:2: rule__ChartLegend__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_3__1"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_3__1__Impl"
+    // InternalChartDSL.g:6595:1: rule__ChartLegend__Group_3__1__Impl : ( ( rule__ChartLegend__Group_3_1__0 )? ) ;
+    public final void rule__ChartLegend__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6599:1: ( ( ( rule__ChartLegend__Group_3_1__0 )? ) )
+            // InternalChartDSL.g:6600:1: ( ( rule__ChartLegend__Group_3_1__0 )? )
+            {
+            // InternalChartDSL.g:6600:1: ( ( rule__ChartLegend__Group_3_1__0 )? )
+            // InternalChartDSL.g:6601:2: ( rule__ChartLegend__Group_3_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getGroup_3_1()); 
+            }
+            // InternalChartDSL.g:6602:2: ( rule__ChartLegend__Group_3_1__0 )?
+            int alt75=2;
+            int LA75_0 = input.LA(1);
+
+            if ( (LA75_0==162) ) {
+                alt75=1;
+            }
+            switch (alt75) {
+                case 1 :
+                    // InternalChartDSL.g:6602:3: rule__ChartLegend__Group_3_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ChartLegend__Group_3_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getGroup_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_3_1__0"
+    // InternalChartDSL.g:6611:1: rule__ChartLegend__Group_3_1__0 : rule__ChartLegend__Group_3_1__0__Impl rule__ChartLegend__Group_3_1__1 ;
+    public final void rule__ChartLegend__Group_3_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6615:1: ( rule__ChartLegend__Group_3_1__0__Impl rule__ChartLegend__Group_3_1__1 )
+            // InternalChartDSL.g:6616:2: rule__ChartLegend__Group_3_1__0__Impl rule__ChartLegend__Group_3_1__1
+            {
+            pushFollow(FOLLOW_49);
+            rule__ChartLegend__Group_3_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__Group_3_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_3_1__0"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_3_1__0__Impl"
+    // InternalChartDSL.g:6623:1: rule__ChartLegend__Group_3_1__0__Impl : ( ( rule__ChartLegend__ToggleAssignment_3_1_0 ) ) ;
+    public final void rule__ChartLegend__Group_3_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6627:1: ( ( ( rule__ChartLegend__ToggleAssignment_3_1_0 ) ) )
+            // InternalChartDSL.g:6628:1: ( ( rule__ChartLegend__ToggleAssignment_3_1_0 ) )
+            {
+            // InternalChartDSL.g:6628:1: ( ( rule__ChartLegend__ToggleAssignment_3_1_0 ) )
+            // InternalChartDSL.g:6629:2: ( rule__ChartLegend__ToggleAssignment_3_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getToggleAssignment_3_1_0()); 
+            }
+            // InternalChartDSL.g:6630:2: ( rule__ChartLegend__ToggleAssignment_3_1_0 )
+            // InternalChartDSL.g:6630:3: rule__ChartLegend__ToggleAssignment_3_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__ToggleAssignment_3_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getToggleAssignment_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_3_1__0__Impl"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_3_1__1"
+    // InternalChartDSL.g:6638:1: rule__ChartLegend__Group_3_1__1 : rule__ChartLegend__Group_3_1__1__Impl rule__ChartLegend__Group_3_1__2 ;
+    public final void rule__ChartLegend__Group_3_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6642:1: ( rule__ChartLegend__Group_3_1__1__Impl rule__ChartLegend__Group_3_1__2 )
+            // InternalChartDSL.g:6643:2: rule__ChartLegend__Group_3_1__1__Impl rule__ChartLegend__Group_3_1__2
+            {
+            pushFollow(FOLLOW_50);
+            rule__ChartLegend__Group_3_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__Group_3_1__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_3_1__1"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_3_1__1__Impl"
+    // InternalChartDSL.g:6650:1: rule__ChartLegend__Group_3_1__1__Impl : ( ( rule__ChartLegend__ReplotAssignment_3_1_1 ) ) ;
+    public final void rule__ChartLegend__Group_3_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6654:1: ( ( ( rule__ChartLegend__ReplotAssignment_3_1_1 ) ) )
+            // InternalChartDSL.g:6655:1: ( ( rule__ChartLegend__ReplotAssignment_3_1_1 ) )
+            {
+            // InternalChartDSL.g:6655:1: ( ( rule__ChartLegend__ReplotAssignment_3_1_1 ) )
+            // InternalChartDSL.g:6656:2: ( rule__ChartLegend__ReplotAssignment_3_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getReplotAssignment_3_1_1()); 
+            }
+            // InternalChartDSL.g:6657:2: ( rule__ChartLegend__ReplotAssignment_3_1_1 )
+            // InternalChartDSL.g:6657:3: rule__ChartLegend__ReplotAssignment_3_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__ReplotAssignment_3_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getReplotAssignment_3_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_3_1__1__Impl"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_3_1__2"
+    // InternalChartDSL.g:6665:1: rule__ChartLegend__Group_3_1__2 : rule__ChartLegend__Group_3_1__2__Impl ;
+    public final void rule__ChartLegend__Group_3_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6669:1: ( rule__ChartLegend__Group_3_1__2__Impl )
+            // InternalChartDSL.g:6670:2: rule__ChartLegend__Group_3_1__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__Group_3_1__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_3_1__2"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_3_1__2__Impl"
+    // InternalChartDSL.g:6676:1: rule__ChartLegend__Group_3_1__2__Impl : ( ( rule__ChartLegend__ToggleTypeAssignment_3_1_2 ) ) ;
+    public final void rule__ChartLegend__Group_3_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6680:1: ( ( ( rule__ChartLegend__ToggleTypeAssignment_3_1_2 ) ) )
+            // InternalChartDSL.g:6681:1: ( ( rule__ChartLegend__ToggleTypeAssignment_3_1_2 ) )
+            {
+            // InternalChartDSL.g:6681:1: ( ( rule__ChartLegend__ToggleTypeAssignment_3_1_2 ) )
+            // InternalChartDSL.g:6682:2: ( rule__ChartLegend__ToggleTypeAssignment_3_1_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getToggleTypeAssignment_3_1_2()); 
+            }
+            // InternalChartDSL.g:6683:2: ( rule__ChartLegend__ToggleTypeAssignment_3_1_2 )
+            // InternalChartDSL.g:6683:3: rule__ChartLegend__ToggleTypeAssignment_3_1_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__ToggleTypeAssignment_3_1_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getToggleTypeAssignment_3_1_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_3_1__2__Impl"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_4__0"
+    // InternalChartDSL.g:6692:1: rule__ChartLegend__Group_4__0 : rule__ChartLegend__Group_4__0__Impl rule__ChartLegend__Group_4__1 ;
+    public final void rule__ChartLegend__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6696:1: ( rule__ChartLegend__Group_4__0__Impl rule__ChartLegend__Group_4__1 )
+            // InternalChartDSL.g:6697:2: rule__ChartLegend__Group_4__0__Impl rule__ChartLegend__Group_4__1
+            {
+            pushFollow(FOLLOW_36);
+            rule__ChartLegend__Group_4__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__Group_4__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_4__0"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_4__0__Impl"
+    // InternalChartDSL.g:6704:1: rule__ChartLegend__Group_4__0__Impl : ( 'fontSize' ) ;
+    public final void rule__ChartLegend__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6708:1: ( ( 'fontSize' ) )
+            // InternalChartDSL.g:6709:1: ( 'fontSize' )
+            {
+            // InternalChartDSL.g:6709:1: ( 'fontSize' )
+            // InternalChartDSL.g:6710:2: 'fontSize'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getFontSizeKeyword_4_0()); 
+            }
+            match(input,98,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getFontSizeKeyword_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_4__1"
+    // InternalChartDSL.g:6719:1: rule__ChartLegend__Group_4__1 : rule__ChartLegend__Group_4__1__Impl ;
+    public final void rule__ChartLegend__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6723:1: ( rule__ChartLegend__Group_4__1__Impl )
+            // InternalChartDSL.g:6724:2: rule__ChartLegend__Group_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__Group_4__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_4__1"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_4__1__Impl"
+    // InternalChartDSL.g:6730:1: rule__ChartLegend__Group_4__1__Impl : ( ( rule__ChartLegend__FontSizeAssignment_4_1 ) ) ;
+    public final void rule__ChartLegend__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6734:1: ( ( ( rule__ChartLegend__FontSizeAssignment_4_1 ) ) )
+            // InternalChartDSL.g:6735:1: ( ( rule__ChartLegend__FontSizeAssignment_4_1 ) )
+            {
+            // InternalChartDSL.g:6735:1: ( ( rule__ChartLegend__FontSizeAssignment_4_1 ) )
+            // InternalChartDSL.g:6736:2: ( rule__ChartLegend__FontSizeAssignment_4_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getFontSizeAssignment_4_1()); 
+            }
+            // InternalChartDSL.g:6737:2: ( rule__ChartLegend__FontSizeAssignment_4_1 )
+            // InternalChartDSL.g:6737:3: rule__ChartLegend__FontSizeAssignment_4_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__FontSizeAssignment_4_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getFontSizeAssignment_4_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_5__0"
+    // InternalChartDSL.g:6746:1: rule__ChartLegend__Group_5__0 : rule__ChartLegend__Group_5__0__Impl rule__ChartLegend__Group_5__1 ;
+    public final void rule__ChartLegend__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6750:1: ( rule__ChartLegend__Group_5__0__Impl rule__ChartLegend__Group_5__1 )
+            // InternalChartDSL.g:6751:2: rule__ChartLegend__Group_5__0__Impl rule__ChartLegend__Group_5__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__ChartLegend__Group_5__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__Group_5__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_5__0"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_5__0__Impl"
+    // InternalChartDSL.g:6758:1: rule__ChartLegend__Group_5__0__Impl : ( 'textColor' ) ;
+    public final void rule__ChartLegend__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6762:1: ( ( 'textColor' ) )
+            // InternalChartDSL.g:6763:1: ( 'textColor' )
+            {
+            // InternalChartDSL.g:6763:1: ( 'textColor' )
+            // InternalChartDSL.g:6764:2: 'textColor'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getTextColorKeyword_5_0()); 
+            }
+            match(input,99,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getTextColorKeyword_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_5__1"
+    // InternalChartDSL.g:6773:1: rule__ChartLegend__Group_5__1 : rule__ChartLegend__Group_5__1__Impl ;
+    public final void rule__ChartLegend__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6777:1: ( rule__ChartLegend__Group_5__1__Impl )
+            // InternalChartDSL.g:6778:2: rule__ChartLegend__Group_5__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__Group_5__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_5__1"
+
+
+    // $ANTLR start "rule__ChartLegend__Group_5__1__Impl"
+    // InternalChartDSL.g:6784:1: rule__ChartLegend__Group_5__1__Impl : ( ( rule__ChartLegend__TextColorAssignment_5_1 ) ) ;
+    public final void rule__ChartLegend__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:6788:1: ( ( ( rule__ChartLegend__TextColorAssignment_5_1 ) ) )
+            // InternalChartDSL.g:6789:1: ( ( rule__ChartLegend__TextColorAssignment_5_1 ) )
+            {
+            // InternalChartDSL.g:6789:1: ( ( rule__ChartLegend__TextColorAssignment_5_1 ) )
+            // InternalChartDSL.g:6790:2: ( rule__ChartLegend__TextColorAssignment_5_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getTextColorAssignment_5_1()); 
+            }
+            // InternalChartDSL.g:6791:2: ( rule__ChartLegend__TextColorAssignment_5_1 )
+            // InternalChartDSL.g:6791:3: rule__ChartLegend__TextColorAssignment_5_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartLegend__TextColorAssignment_5_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getTextColorAssignment_5_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__Group_5__1__Impl"
 
 
     // $ANTLR start "rule__ChartHighlighter__Group__0"
-    // InternalChartDSL.g:6195:1: rule__ChartHighlighter__Group__0 : rule__ChartHighlighter__Group__0__Impl rule__ChartHighlighter__Group__1 ;
+    // InternalChartDSL.g:6800:1: rule__ChartHighlighter__Group__0 : rule__ChartHighlighter__Group__0__Impl rule__ChartHighlighter__Group__1 ;
     public final void rule__ChartHighlighter__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6199:1: ( rule__ChartHighlighter__Group__0__Impl rule__ChartHighlighter__Group__1 )
-            // InternalChartDSL.g:6200:2: rule__ChartHighlighter__Group__0__Impl rule__ChartHighlighter__Group__1
+            // InternalChartDSL.g:6804:1: ( rule__ChartHighlighter__Group__0__Impl rule__ChartHighlighter__Group__1 )
+            // InternalChartDSL.g:6805:2: rule__ChartHighlighter__Group__0__Impl rule__ChartHighlighter__Group__1
             {
-            pushFollow(FOLLOW_46);
+            pushFollow(FOLLOW_51);
             rule__ChartHighlighter__Group__0__Impl();
 
             state._fsp--;
@@ -22057,22 +24131,22 @@
 
 
     // $ANTLR start "rule__ChartHighlighter__Group__0__Impl"
-    // InternalChartDSL.g:6207:1: rule__ChartHighlighter__Group__0__Impl : ( 'tooltip' ) ;
+    // InternalChartDSL.g:6812:1: rule__ChartHighlighter__Group__0__Impl : ( 'tooltip' ) ;
     public final void rule__ChartHighlighter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6211:1: ( ( 'tooltip' ) )
-            // InternalChartDSL.g:6212:1: ( 'tooltip' )
+            // InternalChartDSL.g:6816:1: ( ( 'tooltip' ) )
+            // InternalChartDSL.g:6817:1: ( 'tooltip' )
             {
-            // InternalChartDSL.g:6212:1: ( 'tooltip' )
-            // InternalChartDSL.g:6213:2: 'tooltip'
+            // InternalChartDSL.g:6817:1: ( 'tooltip' )
+            // InternalChartDSL.g:6818:2: 'tooltip'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterAccess().getTooltipKeyword_0()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartHighlighterAccess().getTooltipKeyword_0()); 
             }
@@ -22098,16 +24172,16 @@
 
 
     // $ANTLR start "rule__ChartHighlighter__Group__1"
-    // InternalChartDSL.g:6222:1: rule__ChartHighlighter__Group__1 : rule__ChartHighlighter__Group__1__Impl rule__ChartHighlighter__Group__2 ;
+    // InternalChartDSL.g:6827:1: rule__ChartHighlighter__Group__1 : rule__ChartHighlighter__Group__1__Impl rule__ChartHighlighter__Group__2 ;
     public final void rule__ChartHighlighter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6226:1: ( rule__ChartHighlighter__Group__1__Impl rule__ChartHighlighter__Group__2 )
-            // InternalChartDSL.g:6227:2: rule__ChartHighlighter__Group__1__Impl rule__ChartHighlighter__Group__2
+            // InternalChartDSL.g:6831:1: ( rule__ChartHighlighter__Group__1__Impl rule__ChartHighlighter__Group__2 )
+            // InternalChartDSL.g:6832:2: rule__ChartHighlighter__Group__1__Impl rule__ChartHighlighter__Group__2
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__ChartHighlighter__Group__1__Impl();
 
             state._fsp--;
@@ -22136,23 +24210,23 @@
 
 
     // $ANTLR start "rule__ChartHighlighter__Group__1__Impl"
-    // InternalChartDSL.g:6234:1: rule__ChartHighlighter__Group__1__Impl : ( ( rule__ChartHighlighter__LocationAssignment_1 ) ) ;
+    // InternalChartDSL.g:6839:1: rule__ChartHighlighter__Group__1__Impl : ( ( rule__ChartHighlighter__LocationAssignment_1 ) ) ;
     public final void rule__ChartHighlighter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6238:1: ( ( ( rule__ChartHighlighter__LocationAssignment_1 ) ) )
-            // InternalChartDSL.g:6239:1: ( ( rule__ChartHighlighter__LocationAssignment_1 ) )
+            // InternalChartDSL.g:6843:1: ( ( ( rule__ChartHighlighter__LocationAssignment_1 ) ) )
+            // InternalChartDSL.g:6844:1: ( ( rule__ChartHighlighter__LocationAssignment_1 ) )
             {
-            // InternalChartDSL.g:6239:1: ( ( rule__ChartHighlighter__LocationAssignment_1 ) )
-            // InternalChartDSL.g:6240:2: ( rule__ChartHighlighter__LocationAssignment_1 )
+            // InternalChartDSL.g:6844:1: ( ( rule__ChartHighlighter__LocationAssignment_1 ) )
+            // InternalChartDSL.g:6845:2: ( rule__ChartHighlighter__LocationAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterAccess().getLocationAssignment_1()); 
             }
-            // InternalChartDSL.g:6241:2: ( rule__ChartHighlighter__LocationAssignment_1 )
-            // InternalChartDSL.g:6241:3: rule__ChartHighlighter__LocationAssignment_1
+            // InternalChartDSL.g:6846:2: ( rule__ChartHighlighter__LocationAssignment_1 )
+            // InternalChartDSL.g:6846:3: rule__ChartHighlighter__LocationAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ChartHighlighter__LocationAssignment_1();
@@ -22187,14 +24261,14 @@
 
 
     // $ANTLR start "rule__ChartHighlighter__Group__2"
-    // InternalChartDSL.g:6249:1: rule__ChartHighlighter__Group__2 : rule__ChartHighlighter__Group__2__Impl ;
+    // InternalChartDSL.g:6854:1: rule__ChartHighlighter__Group__2 : rule__ChartHighlighter__Group__2__Impl ;
     public final void rule__ChartHighlighter__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6253:1: ( rule__ChartHighlighter__Group__2__Impl )
-            // InternalChartDSL.g:6254:2: rule__ChartHighlighter__Group__2__Impl
+            // InternalChartDSL.g:6858:1: ( rule__ChartHighlighter__Group__2__Impl )
+            // InternalChartDSL.g:6859:2: rule__ChartHighlighter__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartHighlighter__Group__2__Impl();
@@ -22220,23 +24294,23 @@
 
 
     // $ANTLR start "rule__ChartHighlighter__Group__2__Impl"
-    // InternalChartDSL.g:6260:1: rule__ChartHighlighter__Group__2__Impl : ( ( rule__ChartHighlighter__Group_2__0 ) ) ;
+    // InternalChartDSL.g:6865:1: rule__ChartHighlighter__Group__2__Impl : ( ( rule__ChartHighlighter__Group_2__0 ) ) ;
     public final void rule__ChartHighlighter__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6264:1: ( ( ( rule__ChartHighlighter__Group_2__0 ) ) )
-            // InternalChartDSL.g:6265:1: ( ( rule__ChartHighlighter__Group_2__0 ) )
+            // InternalChartDSL.g:6869:1: ( ( ( rule__ChartHighlighter__Group_2__0 ) ) )
+            // InternalChartDSL.g:6870:1: ( ( rule__ChartHighlighter__Group_2__0 ) )
             {
-            // InternalChartDSL.g:6265:1: ( ( rule__ChartHighlighter__Group_2__0 ) )
-            // InternalChartDSL.g:6266:2: ( rule__ChartHighlighter__Group_2__0 )
+            // InternalChartDSL.g:6870:1: ( ( rule__ChartHighlighter__Group_2__0 ) )
+            // InternalChartDSL.g:6871:2: ( rule__ChartHighlighter__Group_2__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterAccess().getGroup_2()); 
             }
-            // InternalChartDSL.g:6267:2: ( rule__ChartHighlighter__Group_2__0 )
-            // InternalChartDSL.g:6267:3: rule__ChartHighlighter__Group_2__0
+            // InternalChartDSL.g:6872:2: ( rule__ChartHighlighter__Group_2__0 )
+            // InternalChartDSL.g:6872:3: rule__ChartHighlighter__Group_2__0
             {
             pushFollow(FOLLOW_2);
             rule__ChartHighlighter__Group_2__0();
@@ -22271,16 +24345,16 @@
 
 
     // $ANTLR start "rule__ChartHighlighter__Group_2__0"
-    // InternalChartDSL.g:6276:1: rule__ChartHighlighter__Group_2__0 : rule__ChartHighlighter__Group_2__0__Impl rule__ChartHighlighter__Group_2__1 ;
+    // InternalChartDSL.g:6881:1: rule__ChartHighlighter__Group_2__0 : rule__ChartHighlighter__Group_2__0__Impl rule__ChartHighlighter__Group_2__1 ;
     public final void rule__ChartHighlighter__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6280:1: ( rule__ChartHighlighter__Group_2__0__Impl rule__ChartHighlighter__Group_2__1 )
-            // InternalChartDSL.g:6281:2: rule__ChartHighlighter__Group_2__0__Impl rule__ChartHighlighter__Group_2__1
+            // InternalChartDSL.g:6885:1: ( rule__ChartHighlighter__Group_2__0__Impl rule__ChartHighlighter__Group_2__1 )
+            // InternalChartDSL.g:6886:2: rule__ChartHighlighter__Group_2__0__Impl rule__ChartHighlighter__Group_2__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_52);
             rule__ChartHighlighter__Group_2__0__Impl();
 
             state._fsp--;
@@ -22309,31 +24383,31 @@
 
 
     // $ANTLR start "rule__ChartHighlighter__Group_2__0__Impl"
-    // InternalChartDSL.g:6288:1: rule__ChartHighlighter__Group_2__0__Impl : ( ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )? ) ;
+    // InternalChartDSL.g:6893:1: rule__ChartHighlighter__Group_2__0__Impl : ( ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )? ) ;
     public final void rule__ChartHighlighter__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6292:1: ( ( ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )? ) )
-            // InternalChartDSL.g:6293:1: ( ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )? )
+            // InternalChartDSL.g:6897:1: ( ( ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )? ) )
+            // InternalChartDSL.g:6898:1: ( ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )? )
             {
-            // InternalChartDSL.g:6293:1: ( ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )? )
-            // InternalChartDSL.g:6294:2: ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )?
+            // InternalChartDSL.g:6898:1: ( ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )? )
+            // InternalChartDSL.g:6899:2: ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterAccess().getTooltipAlwaysAssignment_2_0()); 
             }
-            // InternalChartDSL.g:6295:2: ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )?
-            int alt68=2;
-            int LA68_0 = input.LA(1);
+            // InternalChartDSL.g:6900:2: ( rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 )?
+            int alt76=2;
+            int LA76_0 = input.LA(1);
 
-            if ( (LA68_0==147) ) {
-                alt68=1;
+            if ( (LA76_0==164) ) {
+                alt76=1;
             }
-            switch (alt68) {
+            switch (alt76) {
                 case 1 :
-                    // InternalChartDSL.g:6295:3: rule__ChartHighlighter__TooltipAlwaysAssignment_2_0
+                    // InternalChartDSL.g:6900:3: rule__ChartHighlighter__TooltipAlwaysAssignment_2_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartHighlighter__TooltipAlwaysAssignment_2_0();
@@ -22371,14 +24445,14 @@
 
 
     // $ANTLR start "rule__ChartHighlighter__Group_2__1"
-    // InternalChartDSL.g:6303:1: rule__ChartHighlighter__Group_2__1 : rule__ChartHighlighter__Group_2__1__Impl ;
+    // InternalChartDSL.g:6908:1: rule__ChartHighlighter__Group_2__1 : rule__ChartHighlighter__Group_2__1__Impl ;
     public final void rule__ChartHighlighter__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6307:1: ( rule__ChartHighlighter__Group_2__1__Impl )
-            // InternalChartDSL.g:6308:2: rule__ChartHighlighter__Group_2__1__Impl
+            // InternalChartDSL.g:6912:1: ( rule__ChartHighlighter__Group_2__1__Impl )
+            // InternalChartDSL.g:6913:2: rule__ChartHighlighter__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartHighlighter__Group_2__1__Impl();
@@ -22404,31 +24478,31 @@
 
 
     // $ANTLR start "rule__ChartHighlighter__Group_2__1__Impl"
-    // InternalChartDSL.g:6314:1: rule__ChartHighlighter__Group_2__1__Impl : ( ( rule__ChartHighlighter__InsideChartAssignment_2_1 )? ) ;
+    // InternalChartDSL.g:6919:1: rule__ChartHighlighter__Group_2__1__Impl : ( ( rule__ChartHighlighter__InsideChartAssignment_2_1 )? ) ;
     public final void rule__ChartHighlighter__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6318:1: ( ( ( rule__ChartHighlighter__InsideChartAssignment_2_1 )? ) )
-            // InternalChartDSL.g:6319:1: ( ( rule__ChartHighlighter__InsideChartAssignment_2_1 )? )
+            // InternalChartDSL.g:6923:1: ( ( ( rule__ChartHighlighter__InsideChartAssignment_2_1 )? ) )
+            // InternalChartDSL.g:6924:1: ( ( rule__ChartHighlighter__InsideChartAssignment_2_1 )? )
             {
-            // InternalChartDSL.g:6319:1: ( ( rule__ChartHighlighter__InsideChartAssignment_2_1 )? )
-            // InternalChartDSL.g:6320:2: ( rule__ChartHighlighter__InsideChartAssignment_2_1 )?
+            // InternalChartDSL.g:6924:1: ( ( rule__ChartHighlighter__InsideChartAssignment_2_1 )? )
+            // InternalChartDSL.g:6925:2: ( rule__ChartHighlighter__InsideChartAssignment_2_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterAccess().getInsideChartAssignment_2_1()); 
             }
-            // InternalChartDSL.g:6321:2: ( rule__ChartHighlighter__InsideChartAssignment_2_1 )?
-            int alt69=2;
-            int LA69_0 = input.LA(1);
+            // InternalChartDSL.g:6926:2: ( rule__ChartHighlighter__InsideChartAssignment_2_1 )?
+            int alt77=2;
+            int LA77_0 = input.LA(1);
 
-            if ( (LA69_0==51) ) {
-                alt69=1;
+            if ( (LA77_0==51) ) {
+                alt77=1;
             }
-            switch (alt69) {
+            switch (alt77) {
                 case 1 :
-                    // InternalChartDSL.g:6321:3: rule__ChartHighlighter__InsideChartAssignment_2_1
+                    // InternalChartDSL.g:6926:3: rule__ChartHighlighter__InsideChartAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartHighlighter__InsideChartAssignment_2_1();
@@ -22466,14 +24540,14 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__0"
-    // InternalChartDSL.g:6330:1: rule__ChartAxis__Group__0 : rule__ChartAxis__Group__0__Impl rule__ChartAxis__Group__1 ;
+    // InternalChartDSL.g:6935:1: rule__ChartAxis__Group__0 : rule__ChartAxis__Group__0__Impl rule__ChartAxis__Group__1 ;
     public final void rule__ChartAxis__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6334:1: ( rule__ChartAxis__Group__0__Impl rule__ChartAxis__Group__1 )
-            // InternalChartDSL.g:6335:2: rule__ChartAxis__Group__0__Impl rule__ChartAxis__Group__1
+            // InternalChartDSL.g:6939:1: ( rule__ChartAxis__Group__0__Impl rule__ChartAxis__Group__1 )
+            // InternalChartDSL.g:6940:2: rule__ChartAxis__Group__0__Impl rule__ChartAxis__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__ChartAxis__Group__0__Impl();
@@ -22504,22 +24578,22 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__0__Impl"
-    // InternalChartDSL.g:6342:1: rule__ChartAxis__Group__0__Impl : ( 'axis' ) ;
+    // InternalChartDSL.g:6947:1: rule__ChartAxis__Group__0__Impl : ( 'axis' ) ;
     public final void rule__ChartAxis__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6346:1: ( ( 'axis' ) )
-            // InternalChartDSL.g:6347:1: ( 'axis' )
+            // InternalChartDSL.g:6951:1: ( ( 'axis' ) )
+            // InternalChartDSL.g:6952:1: ( 'axis' )
             {
-            // InternalChartDSL.g:6347:1: ( 'axis' )
-            // InternalChartDSL.g:6348:2: 'axis'
+            // InternalChartDSL.g:6952:1: ( 'axis' )
+            // InternalChartDSL.g:6953:2: 'axis'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getAxisKeyword_0()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,101,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartAxisAccess().getAxisKeyword_0()); 
             }
@@ -22545,16 +24619,16 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__1"
-    // InternalChartDSL.g:6357:1: rule__ChartAxis__Group__1 : rule__ChartAxis__Group__1__Impl rule__ChartAxis__Group__2 ;
+    // InternalChartDSL.g:6962:1: rule__ChartAxis__Group__1 : rule__ChartAxis__Group__1__Impl rule__ChartAxis__Group__2 ;
     public final void rule__ChartAxis__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6361:1: ( rule__ChartAxis__Group__1__Impl rule__ChartAxis__Group__2 )
-            // InternalChartDSL.g:6362:2: rule__ChartAxis__Group__1__Impl rule__ChartAxis__Group__2
+            // InternalChartDSL.g:6966:1: ( rule__ChartAxis__Group__1__Impl rule__ChartAxis__Group__2 )
+            // InternalChartDSL.g:6967:2: rule__ChartAxis__Group__1__Impl rule__ChartAxis__Group__2
             {
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_53);
             rule__ChartAxis__Group__1__Impl();
 
             state._fsp--;
@@ -22583,23 +24657,23 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__1__Impl"
-    // InternalChartDSL.g:6369:1: rule__ChartAxis__Group__1__Impl : ( ( rule__ChartAxis__AxisAssignment_1 ) ) ;
+    // InternalChartDSL.g:6974:1: rule__ChartAxis__Group__1__Impl : ( ( rule__ChartAxis__AxisAssignment_1 ) ) ;
     public final void rule__ChartAxis__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6373:1: ( ( ( rule__ChartAxis__AxisAssignment_1 ) ) )
-            // InternalChartDSL.g:6374:1: ( ( rule__ChartAxis__AxisAssignment_1 ) )
+            // InternalChartDSL.g:6978:1: ( ( ( rule__ChartAxis__AxisAssignment_1 ) ) )
+            // InternalChartDSL.g:6979:1: ( ( rule__ChartAxis__AxisAssignment_1 ) )
             {
-            // InternalChartDSL.g:6374:1: ( ( rule__ChartAxis__AxisAssignment_1 ) )
-            // InternalChartDSL.g:6375:2: ( rule__ChartAxis__AxisAssignment_1 )
+            // InternalChartDSL.g:6979:1: ( ( rule__ChartAxis__AxisAssignment_1 ) )
+            // InternalChartDSL.g:6980:2: ( rule__ChartAxis__AxisAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getAxisAssignment_1()); 
             }
-            // InternalChartDSL.g:6376:2: ( rule__ChartAxis__AxisAssignment_1 )
-            // InternalChartDSL.g:6376:3: rule__ChartAxis__AxisAssignment_1
+            // InternalChartDSL.g:6981:2: ( rule__ChartAxis__AxisAssignment_1 )
+            // InternalChartDSL.g:6981:3: rule__ChartAxis__AxisAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ChartAxis__AxisAssignment_1();
@@ -22634,16 +24708,16 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__2"
-    // InternalChartDSL.g:6384:1: rule__ChartAxis__Group__2 : rule__ChartAxis__Group__2__Impl rule__ChartAxis__Group__3 ;
+    // InternalChartDSL.g:6989:1: rule__ChartAxis__Group__2 : rule__ChartAxis__Group__2__Impl rule__ChartAxis__Group__3 ;
     public final void rule__ChartAxis__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6388:1: ( rule__ChartAxis__Group__2__Impl rule__ChartAxis__Group__3 )
-            // InternalChartDSL.g:6389:2: rule__ChartAxis__Group__2__Impl rule__ChartAxis__Group__3
+            // InternalChartDSL.g:6993:1: ( rule__ChartAxis__Group__2__Impl rule__ChartAxis__Group__3 )
+            // InternalChartDSL.g:6994:2: rule__ChartAxis__Group__2__Impl rule__ChartAxis__Group__3
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_54);
             rule__ChartAxis__Group__2__Impl();
 
             state._fsp--;
@@ -22672,22 +24746,22 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__2__Impl"
-    // InternalChartDSL.g:6396:1: rule__ChartAxis__Group__2__Impl : ( 'renders' ) ;
+    // InternalChartDSL.g:7001:1: rule__ChartAxis__Group__2__Impl : ( 'renders' ) ;
     public final void rule__ChartAxis__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6400:1: ( ( 'renders' ) )
-            // InternalChartDSL.g:6401:1: ( 'renders' )
+            // InternalChartDSL.g:7005:1: ( ( 'renders' ) )
+            // InternalChartDSL.g:7006:1: ( 'renders' )
             {
-            // InternalChartDSL.g:6401:1: ( 'renders' )
-            // InternalChartDSL.g:6402:2: 'renders'
+            // InternalChartDSL.g:7006:1: ( 'renders' )
+            // InternalChartDSL.g:7007:2: 'renders'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getRendersKeyword_2()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,102,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartAxisAccess().getRendersKeyword_2()); 
             }
@@ -22713,16 +24787,16 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__3"
-    // InternalChartDSL.g:6411:1: rule__ChartAxis__Group__3 : rule__ChartAxis__Group__3__Impl rule__ChartAxis__Group__4 ;
+    // InternalChartDSL.g:7016:1: rule__ChartAxis__Group__3 : rule__ChartAxis__Group__3__Impl rule__ChartAxis__Group__4 ;
     public final void rule__ChartAxis__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6415:1: ( rule__ChartAxis__Group__3__Impl rule__ChartAxis__Group__4 )
-            // InternalChartDSL.g:6416:2: rule__ChartAxis__Group__3__Impl rule__ChartAxis__Group__4
+            // InternalChartDSL.g:7020:1: ( rule__ChartAxis__Group__3__Impl rule__ChartAxis__Group__4 )
+            // InternalChartDSL.g:7021:2: rule__ChartAxis__Group__3__Impl rule__ChartAxis__Group__4
             {
-            pushFollow(FOLLOW_50);
+            pushFollow(FOLLOW_55);
             rule__ChartAxis__Group__3__Impl();
 
             state._fsp--;
@@ -22751,23 +24825,23 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__3__Impl"
-    // InternalChartDSL.g:6423:1: rule__ChartAxis__Group__3__Impl : ( ( rule__ChartAxis__RenderTypeAssignment_3 ) ) ;
+    // InternalChartDSL.g:7028:1: rule__ChartAxis__Group__3__Impl : ( ( rule__ChartAxis__RenderTypeAssignment_3 ) ) ;
     public final void rule__ChartAxis__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6427:1: ( ( ( rule__ChartAxis__RenderTypeAssignment_3 ) ) )
-            // InternalChartDSL.g:6428:1: ( ( rule__ChartAxis__RenderTypeAssignment_3 ) )
+            // InternalChartDSL.g:7032:1: ( ( ( rule__ChartAxis__RenderTypeAssignment_3 ) ) )
+            // InternalChartDSL.g:7033:1: ( ( rule__ChartAxis__RenderTypeAssignment_3 ) )
             {
-            // InternalChartDSL.g:6428:1: ( ( rule__ChartAxis__RenderTypeAssignment_3 ) )
-            // InternalChartDSL.g:6429:2: ( rule__ChartAxis__RenderTypeAssignment_3 )
+            // InternalChartDSL.g:7033:1: ( ( rule__ChartAxis__RenderTypeAssignment_3 ) )
+            // InternalChartDSL.g:7034:2: ( rule__ChartAxis__RenderTypeAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getRenderTypeAssignment_3()); 
             }
-            // InternalChartDSL.g:6430:2: ( rule__ChartAxis__RenderTypeAssignment_3 )
-            // InternalChartDSL.g:6430:3: rule__ChartAxis__RenderTypeAssignment_3
+            // InternalChartDSL.g:7035:2: ( rule__ChartAxis__RenderTypeAssignment_3 )
+            // InternalChartDSL.g:7035:3: rule__ChartAxis__RenderTypeAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__ChartAxis__RenderTypeAssignment_3();
@@ -22802,16 +24876,16 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__4"
-    // InternalChartDSL.g:6438:1: rule__ChartAxis__Group__4 : rule__ChartAxis__Group__4__Impl rule__ChartAxis__Group__5 ;
+    // InternalChartDSL.g:7043:1: rule__ChartAxis__Group__4 : rule__ChartAxis__Group__4__Impl rule__ChartAxis__Group__5 ;
     public final void rule__ChartAxis__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6442:1: ( rule__ChartAxis__Group__4__Impl rule__ChartAxis__Group__5 )
-            // InternalChartDSL.g:6443:2: rule__ChartAxis__Group__4__Impl rule__ChartAxis__Group__5
+            // InternalChartDSL.g:7047:1: ( rule__ChartAxis__Group__4__Impl rule__ChartAxis__Group__5 )
+            // InternalChartDSL.g:7048:2: rule__ChartAxis__Group__4__Impl rule__ChartAxis__Group__5
             {
-            pushFollow(FOLLOW_50);
+            pushFollow(FOLLOW_55);
             rule__ChartAxis__Group__4__Impl();
 
             state._fsp--;
@@ -22840,31 +24914,31 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__4__Impl"
-    // InternalChartDSL.g:6450:1: rule__ChartAxis__Group__4__Impl : ( ( rule__ChartAxis__ShortLabelAssignment_4 )? ) ;
+    // InternalChartDSL.g:7055:1: rule__ChartAxis__Group__4__Impl : ( ( rule__ChartAxis__ShortLabelAssignment_4 )? ) ;
     public final void rule__ChartAxis__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6454:1: ( ( ( rule__ChartAxis__ShortLabelAssignment_4 )? ) )
-            // InternalChartDSL.g:6455:1: ( ( rule__ChartAxis__ShortLabelAssignment_4 )? )
+            // InternalChartDSL.g:7059:1: ( ( ( rule__ChartAxis__ShortLabelAssignment_4 )? ) )
+            // InternalChartDSL.g:7060:1: ( ( rule__ChartAxis__ShortLabelAssignment_4 )? )
             {
-            // InternalChartDSL.g:6455:1: ( ( rule__ChartAxis__ShortLabelAssignment_4 )? )
-            // InternalChartDSL.g:6456:2: ( rule__ChartAxis__ShortLabelAssignment_4 )?
+            // InternalChartDSL.g:7060:1: ( ( rule__ChartAxis__ShortLabelAssignment_4 )? )
+            // InternalChartDSL.g:7061:2: ( rule__ChartAxis__ShortLabelAssignment_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getShortLabelAssignment_4()); 
             }
-            // InternalChartDSL.g:6457:2: ( rule__ChartAxis__ShortLabelAssignment_4 )?
-            int alt70=2;
-            int LA70_0 = input.LA(1);
+            // InternalChartDSL.g:7062:2: ( rule__ChartAxis__ShortLabelAssignment_4 )?
+            int alt78=2;
+            int LA78_0 = input.LA(1);
 
-            if ( (LA70_0==148) ) {
-                alt70=1;
+            if ( (LA78_0==165) ) {
+                alt78=1;
             }
-            switch (alt70) {
+            switch (alt78) {
                 case 1 :
-                    // InternalChartDSL.g:6457:3: rule__ChartAxis__ShortLabelAssignment_4
+                    // InternalChartDSL.g:7062:3: rule__ChartAxis__ShortLabelAssignment_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartAxis__ShortLabelAssignment_4();
@@ -22902,20 +24976,25 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__5"
-    // InternalChartDSL.g:6465:1: rule__ChartAxis__Group__5 : rule__ChartAxis__Group__5__Impl ;
+    // InternalChartDSL.g:7070:1: rule__ChartAxis__Group__5 : rule__ChartAxis__Group__5__Impl rule__ChartAxis__Group__6 ;
     public final void rule__ChartAxis__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6469:1: ( rule__ChartAxis__Group__5__Impl )
-            // InternalChartDSL.g:6470:2: rule__ChartAxis__Group__5__Impl
+            // InternalChartDSL.g:7074:1: ( rule__ChartAxis__Group__5__Impl rule__ChartAxis__Group__6 )
+            // InternalChartDSL.g:7075:2: rule__ChartAxis__Group__5__Impl rule__ChartAxis__Group__6
             {
-            pushFollow(FOLLOW_2);
+            pushFollow(FOLLOW_55);
             rule__ChartAxis__Group__5__Impl();
 
             state._fsp--;
             if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group__6();
+
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
@@ -22935,31 +25014,31 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group__5__Impl"
-    // InternalChartDSL.g:6476:1: rule__ChartAxis__Group__5__Impl : ( ( rule__ChartAxis__Group_5__0 )? ) ;
+    // InternalChartDSL.g:7082:1: rule__ChartAxis__Group__5__Impl : ( ( rule__ChartAxis__Group_5__0 )? ) ;
     public final void rule__ChartAxis__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6480:1: ( ( ( rule__ChartAxis__Group_5__0 )? ) )
-            // InternalChartDSL.g:6481:1: ( ( rule__ChartAxis__Group_5__0 )? )
+            // InternalChartDSL.g:7086:1: ( ( ( rule__ChartAxis__Group_5__0 )? ) )
+            // InternalChartDSL.g:7087:1: ( ( rule__ChartAxis__Group_5__0 )? )
             {
-            // InternalChartDSL.g:6481:1: ( ( rule__ChartAxis__Group_5__0 )? )
-            // InternalChartDSL.g:6482:2: ( rule__ChartAxis__Group_5__0 )?
+            // InternalChartDSL.g:7087:1: ( ( rule__ChartAxis__Group_5__0 )? )
+            // InternalChartDSL.g:7088:2: ( rule__ChartAxis__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getGroup_5()); 
             }
-            // InternalChartDSL.g:6483:2: ( rule__ChartAxis__Group_5__0 )?
-            int alt71=2;
-            int LA71_0 = input.LA(1);
+            // InternalChartDSL.g:7089:2: ( rule__ChartAxis__Group_5__0 )?
+            int alt79=2;
+            int LA79_0 = input.LA(1);
 
-            if ( (LA71_0==93) ) {
-                alt71=1;
+            if ( (LA79_0==103) ) {
+                alt79=1;
             }
-            switch (alt71) {
+            switch (alt79) {
                 case 1 :
-                    // InternalChartDSL.g:6483:3: rule__ChartAxis__Group_5__0
+                    // InternalChartDSL.g:7089:3: rule__ChartAxis__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartAxis__Group_5__0();
@@ -22996,17 +25075,512 @@
     // $ANTLR end "rule__ChartAxis__Group__5__Impl"
 
 
+    // $ANTLR start "rule__ChartAxis__Group__6"
+    // InternalChartDSL.g:7097:1: rule__ChartAxis__Group__6 : rule__ChartAxis__Group__6__Impl rule__ChartAxis__Group__7 ;
+    public final void rule__ChartAxis__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7101:1: ( rule__ChartAxis__Group__6__Impl rule__ChartAxis__Group__7 )
+            // InternalChartDSL.g:7102:2: rule__ChartAxis__Group__6__Impl rule__ChartAxis__Group__7
+            {
+            pushFollow(FOLLOW_55);
+            rule__ChartAxis__Group__6__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group__7();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group__6"
+
+
+    // $ANTLR start "rule__ChartAxis__Group__6__Impl"
+    // InternalChartDSL.g:7109:1: rule__ChartAxis__Group__6__Impl : ( ( rule__ChartAxis__Group_6__0 )? ) ;
+    public final void rule__ChartAxis__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7113:1: ( ( ( rule__ChartAxis__Group_6__0 )? ) )
+            // InternalChartDSL.g:7114:1: ( ( rule__ChartAxis__Group_6__0 )? )
+            {
+            // InternalChartDSL.g:7114:1: ( ( rule__ChartAxis__Group_6__0 )? )
+            // InternalChartDSL.g:7115:2: ( rule__ChartAxis__Group_6__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getGroup_6()); 
+            }
+            // InternalChartDSL.g:7116:2: ( rule__ChartAxis__Group_6__0 )?
+            int alt80=2;
+            int LA80_0 = input.LA(1);
+
+            if ( (LA80_0==104) ) {
+                alt80=1;
+            }
+            switch (alt80) {
+                case 1 :
+                    // InternalChartDSL.g:7116:3: rule__ChartAxis__Group_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ChartAxis__Group_6__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getGroup_6()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group__7"
+    // InternalChartDSL.g:7124:1: rule__ChartAxis__Group__7 : rule__ChartAxis__Group__7__Impl rule__ChartAxis__Group__8 ;
+    public final void rule__ChartAxis__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7128:1: ( rule__ChartAxis__Group__7__Impl rule__ChartAxis__Group__8 )
+            // InternalChartDSL.g:7129:2: rule__ChartAxis__Group__7__Impl rule__ChartAxis__Group__8
+            {
+            pushFollow(FOLLOW_55);
+            rule__ChartAxis__Group__7__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group__8();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group__7"
+
+
+    // $ANTLR start "rule__ChartAxis__Group__7__Impl"
+    // InternalChartDSL.g:7136:1: rule__ChartAxis__Group__7__Impl : ( ( rule__ChartAxis__Group_7__0 )? ) ;
+    public final void rule__ChartAxis__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7140:1: ( ( ( rule__ChartAxis__Group_7__0 )? ) )
+            // InternalChartDSL.g:7141:1: ( ( rule__ChartAxis__Group_7__0 )? )
+            {
+            // InternalChartDSL.g:7141:1: ( ( rule__ChartAxis__Group_7__0 )? )
+            // InternalChartDSL.g:7142:2: ( rule__ChartAxis__Group_7__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getGroup_7()); 
+            }
+            // InternalChartDSL.g:7143:2: ( rule__ChartAxis__Group_7__0 )?
+            int alt81=2;
+            int LA81_0 = input.LA(1);
+
+            if ( (LA81_0==105) ) {
+                alt81=1;
+            }
+            switch (alt81) {
+                case 1 :
+                    // InternalChartDSL.g:7143:3: rule__ChartAxis__Group_7__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ChartAxis__Group_7__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getGroup_7()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group__7__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group__8"
+    // InternalChartDSL.g:7151:1: rule__ChartAxis__Group__8 : rule__ChartAxis__Group__8__Impl rule__ChartAxis__Group__9 ;
+    public final void rule__ChartAxis__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7155:1: ( rule__ChartAxis__Group__8__Impl rule__ChartAxis__Group__9 )
+            // InternalChartDSL.g:7156:2: rule__ChartAxis__Group__8__Impl rule__ChartAxis__Group__9
+            {
+            pushFollow(FOLLOW_55);
+            rule__ChartAxis__Group__8__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group__9();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group__8"
+
+
+    // $ANTLR start "rule__ChartAxis__Group__8__Impl"
+    // InternalChartDSL.g:7163:1: rule__ChartAxis__Group__8__Impl : ( ( rule__ChartAxis__Group_8__0 )? ) ;
+    public final void rule__ChartAxis__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7167:1: ( ( ( rule__ChartAxis__Group_8__0 )? ) )
+            // InternalChartDSL.g:7168:1: ( ( rule__ChartAxis__Group_8__0 )? )
+            {
+            // InternalChartDSL.g:7168:1: ( ( rule__ChartAxis__Group_8__0 )? )
+            // InternalChartDSL.g:7169:2: ( rule__ChartAxis__Group_8__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getGroup_8()); 
+            }
+            // InternalChartDSL.g:7170:2: ( rule__ChartAxis__Group_8__0 )?
+            int alt82=2;
+            int LA82_0 = input.LA(1);
+
+            if ( (LA82_0==106) ) {
+                alt82=1;
+            }
+            switch (alt82) {
+                case 1 :
+                    // InternalChartDSL.g:7170:3: rule__ChartAxis__Group_8__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ChartAxis__Group_8__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getGroup_8()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group__8__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group__9"
+    // InternalChartDSL.g:7178:1: rule__ChartAxis__Group__9 : rule__ChartAxis__Group__9__Impl rule__ChartAxis__Group__10 ;
+    public final void rule__ChartAxis__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7182:1: ( rule__ChartAxis__Group__9__Impl rule__ChartAxis__Group__10 )
+            // InternalChartDSL.g:7183:2: rule__ChartAxis__Group__9__Impl rule__ChartAxis__Group__10
+            {
+            pushFollow(FOLLOW_55);
+            rule__ChartAxis__Group__9__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group__10();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group__9"
+
+
+    // $ANTLR start "rule__ChartAxis__Group__9__Impl"
+    // InternalChartDSL.g:7190:1: rule__ChartAxis__Group__9__Impl : ( ( rule__ChartAxis__Group_9__0 )? ) ;
+    public final void rule__ChartAxis__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7194:1: ( ( ( rule__ChartAxis__Group_9__0 )? ) )
+            // InternalChartDSL.g:7195:1: ( ( rule__ChartAxis__Group_9__0 )? )
+            {
+            // InternalChartDSL.g:7195:1: ( ( rule__ChartAxis__Group_9__0 )? )
+            // InternalChartDSL.g:7196:2: ( rule__ChartAxis__Group_9__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getGroup_9()); 
+            }
+            // InternalChartDSL.g:7197:2: ( rule__ChartAxis__Group_9__0 )?
+            int alt83=2;
+            int LA83_0 = input.LA(1);
+
+            if ( (LA83_0==107) ) {
+                alt83=1;
+            }
+            switch (alt83) {
+                case 1 :
+                    // InternalChartDSL.g:7197:3: rule__ChartAxis__Group_9__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ChartAxis__Group_9__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getGroup_9()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group__9__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group__10"
+    // InternalChartDSL.g:7205:1: rule__ChartAxis__Group__10 : rule__ChartAxis__Group__10__Impl ;
+    public final void rule__ChartAxis__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7209:1: ( rule__ChartAxis__Group__10__Impl )
+            // InternalChartDSL.g:7210:2: rule__ChartAxis__Group__10__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group__10__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group__10"
+
+
+    // $ANTLR start "rule__ChartAxis__Group__10__Impl"
+    // InternalChartDSL.g:7216:1: rule__ChartAxis__Group__10__Impl : ( ( rule__ChartAxis__Group_10__0 )? ) ;
+    public final void rule__ChartAxis__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7220:1: ( ( ( rule__ChartAxis__Group_10__0 )? ) )
+            // InternalChartDSL.g:7221:1: ( ( rule__ChartAxis__Group_10__0 )? )
+            {
+            // InternalChartDSL.g:7221:1: ( ( rule__ChartAxis__Group_10__0 )? )
+            // InternalChartDSL.g:7222:2: ( rule__ChartAxis__Group_10__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getGroup_10()); 
+            }
+            // InternalChartDSL.g:7223:2: ( rule__ChartAxis__Group_10__0 )?
+            int alt84=2;
+            int LA84_0 = input.LA(1);
+
+            if ( (LA84_0==108) ) {
+                alt84=1;
+            }
+            switch (alt84) {
+                case 1 :
+                    // InternalChartDSL.g:7223:3: rule__ChartAxis__Group_10__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ChartAxis__Group_10__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getGroup_10()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group__10__Impl"
+
+
     // $ANTLR start "rule__ChartAxis__Group_5__0"
-    // InternalChartDSL.g:6492:1: rule__ChartAxis__Group_5__0 : rule__ChartAxis__Group_5__0__Impl rule__ChartAxis__Group_5__1 ;
+    // InternalChartDSL.g:7232:1: rule__ChartAxis__Group_5__0 : rule__ChartAxis__Group_5__0__Impl rule__ChartAxis__Group_5__1 ;
     public final void rule__ChartAxis__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6496:1: ( rule__ChartAxis__Group_5__0__Impl rule__ChartAxis__Group_5__1 )
-            // InternalChartDSL.g:6497:2: rule__ChartAxis__Group_5__0__Impl rule__ChartAxis__Group_5__1
+            // InternalChartDSL.g:7236:1: ( rule__ChartAxis__Group_5__0__Impl rule__ChartAxis__Group_5__1 )
+            // InternalChartDSL.g:7237:2: rule__ChartAxis__Group_5__0__Impl rule__ChartAxis__Group_5__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_42);
             rule__ChartAxis__Group_5__0__Impl();
 
             state._fsp--;
@@ -23035,24 +25609,24 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group_5__0__Impl"
-    // InternalChartDSL.g:6504:1: rule__ChartAxis__Group_5__0__Impl : ( 'angle' ) ;
+    // InternalChartDSL.g:7244:1: rule__ChartAxis__Group_5__0__Impl : ( 'labelAngle' ) ;
     public final void rule__ChartAxis__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6508:1: ( ( 'angle' ) )
-            // InternalChartDSL.g:6509:1: ( 'angle' )
+            // InternalChartDSL.g:7248:1: ( ( 'labelAngle' ) )
+            // InternalChartDSL.g:7249:1: ( 'labelAngle' )
             {
-            // InternalChartDSL.g:6509:1: ( 'angle' )
-            // InternalChartDSL.g:6510:2: 'angle'
+            // InternalChartDSL.g:7249:1: ( 'labelAngle' )
+            // InternalChartDSL.g:7250:2: 'labelAngle'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartAxisAccess().getAngleKeyword_5_0()); 
+               before(grammarAccess.getChartAxisAccess().getLabelAngleKeyword_5_0()); 
             }
-            match(input,93,FOLLOW_2); if (state.failed) return ;
+            match(input,103,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartAxisAccess().getAngleKeyword_5_0()); 
+               after(grammarAccess.getChartAxisAccess().getLabelAngleKeyword_5_0()); 
             }
 
             }
@@ -23076,14 +25650,14 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group_5__1"
-    // InternalChartDSL.g:6519:1: rule__ChartAxis__Group_5__1 : rule__ChartAxis__Group_5__1__Impl ;
+    // InternalChartDSL.g:7259:1: rule__ChartAxis__Group_5__1 : rule__ChartAxis__Group_5__1__Impl ;
     public final void rule__ChartAxis__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6523:1: ( rule__ChartAxis__Group_5__1__Impl )
-            // InternalChartDSL.g:6524:2: rule__ChartAxis__Group_5__1__Impl
+            // InternalChartDSL.g:7263:1: ( rule__ChartAxis__Group_5__1__Impl )
+            // InternalChartDSL.g:7264:2: rule__ChartAxis__Group_5__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartAxis__Group_5__1__Impl();
@@ -23109,26 +25683,26 @@
 
 
     // $ANTLR start "rule__ChartAxis__Group_5__1__Impl"
-    // InternalChartDSL.g:6530:1: rule__ChartAxis__Group_5__1__Impl : ( ( rule__ChartAxis__AngleAssignment_5_1 ) ) ;
+    // InternalChartDSL.g:7270:1: rule__ChartAxis__Group_5__1__Impl : ( ( rule__ChartAxis__LabelAngleAssignment_5_1 ) ) ;
     public final void rule__ChartAxis__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6534:1: ( ( ( rule__ChartAxis__AngleAssignment_5_1 ) ) )
-            // InternalChartDSL.g:6535:1: ( ( rule__ChartAxis__AngleAssignment_5_1 ) )
+            // InternalChartDSL.g:7274:1: ( ( ( rule__ChartAxis__LabelAngleAssignment_5_1 ) ) )
+            // InternalChartDSL.g:7275:1: ( ( rule__ChartAxis__LabelAngleAssignment_5_1 ) )
             {
-            // InternalChartDSL.g:6535:1: ( ( rule__ChartAxis__AngleAssignment_5_1 ) )
-            // InternalChartDSL.g:6536:2: ( rule__ChartAxis__AngleAssignment_5_1 )
+            // InternalChartDSL.g:7275:1: ( ( rule__ChartAxis__LabelAngleAssignment_5_1 ) )
+            // InternalChartDSL.g:7276:2: ( rule__ChartAxis__LabelAngleAssignment_5_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartAxisAccess().getAngleAssignment_5_1()); 
+               before(grammarAccess.getChartAxisAccess().getLabelAngleAssignment_5_1()); 
             }
-            // InternalChartDSL.g:6537:2: ( rule__ChartAxis__AngleAssignment_5_1 )
-            // InternalChartDSL.g:6537:3: rule__ChartAxis__AngleAssignment_5_1
+            // InternalChartDSL.g:7277:2: ( rule__ChartAxis__LabelAngleAssignment_5_1 )
+            // InternalChartDSL.g:7277:3: rule__ChartAxis__LabelAngleAssignment_5_1
             {
             pushFollow(FOLLOW_2);
-            rule__ChartAxis__AngleAssignment_5_1();
+            rule__ChartAxis__LabelAngleAssignment_5_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -23136,7 +25710,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartAxisAccess().getAngleAssignment_5_1()); 
+               after(grammarAccess.getChartAxisAccess().getLabelAngleAssignment_5_1()); 
             }
 
             }
@@ -23159,17 +25733,832 @@
     // $ANTLR end "rule__ChartAxis__Group_5__1__Impl"
 
 
+    // $ANTLR start "rule__ChartAxis__Group_6__0"
+    // InternalChartDSL.g:7286:1: rule__ChartAxis__Group_6__0 : rule__ChartAxis__Group_6__0__Impl rule__ChartAxis__Group_6__1 ;
+    public final void rule__ChartAxis__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7290:1: ( rule__ChartAxis__Group_6__0__Impl rule__ChartAxis__Group_6__1 )
+            // InternalChartDSL.g:7291:2: rule__ChartAxis__Group_6__0__Impl rule__ChartAxis__Group_6__1
+            {
+            pushFollow(FOLLOW_36);
+            rule__ChartAxis__Group_6__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group_6__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_6__0"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_6__0__Impl"
+    // InternalChartDSL.g:7298:1: rule__ChartAxis__Group_6__0__Impl : ( 'labelFontSize' ) ;
+    public final void rule__ChartAxis__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7302:1: ( ( 'labelFontSize' ) )
+            // InternalChartDSL.g:7303:1: ( 'labelFontSize' )
+            {
+            // InternalChartDSL.g:7303:1: ( 'labelFontSize' )
+            // InternalChartDSL.g:7304:2: 'labelFontSize'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getLabelFontSizeKeyword_6_0()); 
+            }
+            match(input,104,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getLabelFontSizeKeyword_6_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_6__1"
+    // InternalChartDSL.g:7313:1: rule__ChartAxis__Group_6__1 : rule__ChartAxis__Group_6__1__Impl ;
+    public final void rule__ChartAxis__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7317:1: ( rule__ChartAxis__Group_6__1__Impl )
+            // InternalChartDSL.g:7318:2: rule__ChartAxis__Group_6__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group_6__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_6__1"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_6__1__Impl"
+    // InternalChartDSL.g:7324:1: rule__ChartAxis__Group_6__1__Impl : ( ( rule__ChartAxis__LabelFontSizeAssignment_6_1 ) ) ;
+    public final void rule__ChartAxis__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7328:1: ( ( ( rule__ChartAxis__LabelFontSizeAssignment_6_1 ) ) )
+            // InternalChartDSL.g:7329:1: ( ( rule__ChartAxis__LabelFontSizeAssignment_6_1 ) )
+            {
+            // InternalChartDSL.g:7329:1: ( ( rule__ChartAxis__LabelFontSizeAssignment_6_1 ) )
+            // InternalChartDSL.g:7330:2: ( rule__ChartAxis__LabelFontSizeAssignment_6_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getLabelFontSizeAssignment_6_1()); 
+            }
+            // InternalChartDSL.g:7331:2: ( rule__ChartAxis__LabelFontSizeAssignment_6_1 )
+            // InternalChartDSL.g:7331:3: rule__ChartAxis__LabelFontSizeAssignment_6_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__LabelFontSizeAssignment_6_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getLabelFontSizeAssignment_6_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_7__0"
+    // InternalChartDSL.g:7340:1: rule__ChartAxis__Group_7__0 : rule__ChartAxis__Group_7__0__Impl rule__ChartAxis__Group_7__1 ;
+    public final void rule__ChartAxis__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7344:1: ( rule__ChartAxis__Group_7__0__Impl rule__ChartAxis__Group_7__1 )
+            // InternalChartDSL.g:7345:2: rule__ChartAxis__Group_7__0__Impl rule__ChartAxis__Group_7__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__ChartAxis__Group_7__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group_7__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_7__0"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_7__0__Impl"
+    // InternalChartDSL.g:7352:1: rule__ChartAxis__Group_7__0__Impl : ( 'labelTextColor' ) ;
+    public final void rule__ChartAxis__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7356:1: ( ( 'labelTextColor' ) )
+            // InternalChartDSL.g:7357:1: ( 'labelTextColor' )
+            {
+            // InternalChartDSL.g:7357:1: ( 'labelTextColor' )
+            // InternalChartDSL.g:7358:2: 'labelTextColor'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getLabelTextColorKeyword_7_0()); 
+            }
+            match(input,105,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getLabelTextColorKeyword_7_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_7__1"
+    // InternalChartDSL.g:7367:1: rule__ChartAxis__Group_7__1 : rule__ChartAxis__Group_7__1__Impl ;
+    public final void rule__ChartAxis__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7371:1: ( rule__ChartAxis__Group_7__1__Impl )
+            // InternalChartDSL.g:7372:2: rule__ChartAxis__Group_7__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group_7__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_7__1"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_7__1__Impl"
+    // InternalChartDSL.g:7378:1: rule__ChartAxis__Group_7__1__Impl : ( ( rule__ChartAxis__LabelTextColorAssignment_7_1 ) ) ;
+    public final void rule__ChartAxis__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7382:1: ( ( ( rule__ChartAxis__LabelTextColorAssignment_7_1 ) ) )
+            // InternalChartDSL.g:7383:1: ( ( rule__ChartAxis__LabelTextColorAssignment_7_1 ) )
+            {
+            // InternalChartDSL.g:7383:1: ( ( rule__ChartAxis__LabelTextColorAssignment_7_1 ) )
+            // InternalChartDSL.g:7384:2: ( rule__ChartAxis__LabelTextColorAssignment_7_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getLabelTextColorAssignment_7_1()); 
+            }
+            // InternalChartDSL.g:7385:2: ( rule__ChartAxis__LabelTextColorAssignment_7_1 )
+            // InternalChartDSL.g:7385:3: rule__ChartAxis__LabelTextColorAssignment_7_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__LabelTextColorAssignment_7_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getLabelTextColorAssignment_7_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_8__0"
+    // InternalChartDSL.g:7394:1: rule__ChartAxis__Group_8__0 : rule__ChartAxis__Group_8__0__Impl rule__ChartAxis__Group_8__1 ;
+    public final void rule__ChartAxis__Group_8__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7398:1: ( rule__ChartAxis__Group_8__0__Impl rule__ChartAxis__Group_8__1 )
+            // InternalChartDSL.g:7399:2: rule__ChartAxis__Group_8__0__Impl rule__ChartAxis__Group_8__1
+            {
+            pushFollow(FOLLOW_42);
+            rule__ChartAxis__Group_8__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group_8__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_8__0"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_8__0__Impl"
+    // InternalChartDSL.g:7406:1: rule__ChartAxis__Group_8__0__Impl : ( 'tickAngle' ) ;
+    public final void rule__ChartAxis__Group_8__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7410:1: ( ( 'tickAngle' ) )
+            // InternalChartDSL.g:7411:1: ( 'tickAngle' )
+            {
+            // InternalChartDSL.g:7411:1: ( 'tickAngle' )
+            // InternalChartDSL.g:7412:2: 'tickAngle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getTickAngleKeyword_8_0()); 
+            }
+            match(input,106,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getTickAngleKeyword_8_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_8__1"
+    // InternalChartDSL.g:7421:1: rule__ChartAxis__Group_8__1 : rule__ChartAxis__Group_8__1__Impl ;
+    public final void rule__ChartAxis__Group_8__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7425:1: ( rule__ChartAxis__Group_8__1__Impl )
+            // InternalChartDSL.g:7426:2: rule__ChartAxis__Group_8__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group_8__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_8__1"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_8__1__Impl"
+    // InternalChartDSL.g:7432:1: rule__ChartAxis__Group_8__1__Impl : ( ( rule__ChartAxis__TickAngleAssignment_8_1 ) ) ;
+    public final void rule__ChartAxis__Group_8__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7436:1: ( ( ( rule__ChartAxis__TickAngleAssignment_8_1 ) ) )
+            // InternalChartDSL.g:7437:1: ( ( rule__ChartAxis__TickAngleAssignment_8_1 ) )
+            {
+            // InternalChartDSL.g:7437:1: ( ( rule__ChartAxis__TickAngleAssignment_8_1 ) )
+            // InternalChartDSL.g:7438:2: ( rule__ChartAxis__TickAngleAssignment_8_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getTickAngleAssignment_8_1()); 
+            }
+            // InternalChartDSL.g:7439:2: ( rule__ChartAxis__TickAngleAssignment_8_1 )
+            // InternalChartDSL.g:7439:3: rule__ChartAxis__TickAngleAssignment_8_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__TickAngleAssignment_8_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getTickAngleAssignment_8_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_9__0"
+    // InternalChartDSL.g:7448:1: rule__ChartAxis__Group_9__0 : rule__ChartAxis__Group_9__0__Impl rule__ChartAxis__Group_9__1 ;
+    public final void rule__ChartAxis__Group_9__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7452:1: ( rule__ChartAxis__Group_9__0__Impl rule__ChartAxis__Group_9__1 )
+            // InternalChartDSL.g:7453:2: rule__ChartAxis__Group_9__0__Impl rule__ChartAxis__Group_9__1
+            {
+            pushFollow(FOLLOW_36);
+            rule__ChartAxis__Group_9__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group_9__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_9__0"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_9__0__Impl"
+    // InternalChartDSL.g:7460:1: rule__ChartAxis__Group_9__0__Impl : ( 'tickFontSize' ) ;
+    public final void rule__ChartAxis__Group_9__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7464:1: ( ( 'tickFontSize' ) )
+            // InternalChartDSL.g:7465:1: ( 'tickFontSize' )
+            {
+            // InternalChartDSL.g:7465:1: ( 'tickFontSize' )
+            // InternalChartDSL.g:7466:2: 'tickFontSize'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getTickFontSizeKeyword_9_0()); 
+            }
+            match(input,107,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getTickFontSizeKeyword_9_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_9__0__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_9__1"
+    // InternalChartDSL.g:7475:1: rule__ChartAxis__Group_9__1 : rule__ChartAxis__Group_9__1__Impl ;
+    public final void rule__ChartAxis__Group_9__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7479:1: ( rule__ChartAxis__Group_9__1__Impl )
+            // InternalChartDSL.g:7480:2: rule__ChartAxis__Group_9__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group_9__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_9__1"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_9__1__Impl"
+    // InternalChartDSL.g:7486:1: rule__ChartAxis__Group_9__1__Impl : ( ( rule__ChartAxis__TickFontSizeAssignment_9_1 ) ) ;
+    public final void rule__ChartAxis__Group_9__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7490:1: ( ( ( rule__ChartAxis__TickFontSizeAssignment_9_1 ) ) )
+            // InternalChartDSL.g:7491:1: ( ( rule__ChartAxis__TickFontSizeAssignment_9_1 ) )
+            {
+            // InternalChartDSL.g:7491:1: ( ( rule__ChartAxis__TickFontSizeAssignment_9_1 ) )
+            // InternalChartDSL.g:7492:2: ( rule__ChartAxis__TickFontSizeAssignment_9_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getTickFontSizeAssignment_9_1()); 
+            }
+            // InternalChartDSL.g:7493:2: ( rule__ChartAxis__TickFontSizeAssignment_9_1 )
+            // InternalChartDSL.g:7493:3: rule__ChartAxis__TickFontSizeAssignment_9_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__TickFontSizeAssignment_9_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getTickFontSizeAssignment_9_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_9__1__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_10__0"
+    // InternalChartDSL.g:7502:1: rule__ChartAxis__Group_10__0 : rule__ChartAxis__Group_10__0__Impl rule__ChartAxis__Group_10__1 ;
+    public final void rule__ChartAxis__Group_10__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7506:1: ( rule__ChartAxis__Group_10__0__Impl rule__ChartAxis__Group_10__1 )
+            // InternalChartDSL.g:7507:2: rule__ChartAxis__Group_10__0__Impl rule__ChartAxis__Group_10__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__ChartAxis__Group_10__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group_10__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_10__0"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_10__0__Impl"
+    // InternalChartDSL.g:7514:1: rule__ChartAxis__Group_10__0__Impl : ( 'tickTextColor' ) ;
+    public final void rule__ChartAxis__Group_10__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7518:1: ( ( 'tickTextColor' ) )
+            // InternalChartDSL.g:7519:1: ( 'tickTextColor' )
+            {
+            // InternalChartDSL.g:7519:1: ( 'tickTextColor' )
+            // InternalChartDSL.g:7520:2: 'tickTextColor'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getTickTextColorKeyword_10_0()); 
+            }
+            match(input,108,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getTickTextColorKeyword_10_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_10__0__Impl"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_10__1"
+    // InternalChartDSL.g:7529:1: rule__ChartAxis__Group_10__1 : rule__ChartAxis__Group_10__1__Impl ;
+    public final void rule__ChartAxis__Group_10__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7533:1: ( rule__ChartAxis__Group_10__1__Impl )
+            // InternalChartDSL.g:7534:2: rule__ChartAxis__Group_10__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__Group_10__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_10__1"
+
+
+    // $ANTLR start "rule__ChartAxis__Group_10__1__Impl"
+    // InternalChartDSL.g:7540:1: rule__ChartAxis__Group_10__1__Impl : ( ( rule__ChartAxis__TickTextColorAssignment_10_1 ) ) ;
+    public final void rule__ChartAxis__Group_10__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:7544:1: ( ( ( rule__ChartAxis__TickTextColorAssignment_10_1 ) ) )
+            // InternalChartDSL.g:7545:1: ( ( rule__ChartAxis__TickTextColorAssignment_10_1 ) )
+            {
+            // InternalChartDSL.g:7545:1: ( ( rule__ChartAxis__TickTextColorAssignment_10_1 ) )
+            // InternalChartDSL.g:7546:2: ( rule__ChartAxis__TickTextColorAssignment_10_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getTickTextColorAssignment_10_1()); 
+            }
+            // InternalChartDSL.g:7547:2: ( rule__ChartAxis__TickTextColorAssignment_10_1 )
+            // InternalChartDSL.g:7547:3: rule__ChartAxis__TickTextColorAssignment_10_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ChartAxis__TickTextColorAssignment_10_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getTickTextColorAssignment_10_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__Group_10__1__Impl"
+
+
     // $ANTLR start "rule__ChartSegmentColor__Group__0"
-    // InternalChartDSL.g:6546:1: rule__ChartSegmentColor__Group__0 : rule__ChartSegmentColor__Group__0__Impl rule__ChartSegmentColor__Group__1 ;
+    // InternalChartDSL.g:7556:1: rule__ChartSegmentColor__Group__0 : rule__ChartSegmentColor__Group__0__Impl rule__ChartSegmentColor__Group__1 ;
     public final void rule__ChartSegmentColor__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6550:1: ( rule__ChartSegmentColor__Group__0__Impl rule__ChartSegmentColor__Group__1 )
-            // InternalChartDSL.g:6551:2: rule__ChartSegmentColor__Group__0__Impl rule__ChartSegmentColor__Group__1
+            // InternalChartDSL.g:7560:1: ( rule__ChartSegmentColor__Group__0__Impl rule__ChartSegmentColor__Group__1 )
+            // InternalChartDSL.g:7561:2: rule__ChartSegmentColor__Group__0__Impl rule__ChartSegmentColor__Group__1
             {
-            pushFollow(FOLLOW_16);
+            pushFollow(FOLLOW_15);
             rule__ChartSegmentColor__Group__0__Impl();
 
             state._fsp--;
@@ -23198,22 +26587,22 @@
 
 
     // $ANTLR start "rule__ChartSegmentColor__Group__0__Impl"
-    // InternalChartDSL.g:6558:1: rule__ChartSegmentColor__Group__0__Impl : ( 'segmentcolor' ) ;
+    // InternalChartDSL.g:7568:1: rule__ChartSegmentColor__Group__0__Impl : ( 'segmentcolor' ) ;
     public final void rule__ChartSegmentColor__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6562:1: ( ( 'segmentcolor' ) )
-            // InternalChartDSL.g:6563:1: ( 'segmentcolor' )
+            // InternalChartDSL.g:7572:1: ( ( 'segmentcolor' ) )
+            // InternalChartDSL.g:7573:1: ( 'segmentcolor' )
             {
-            // InternalChartDSL.g:6563:1: ( 'segmentcolor' )
-            // InternalChartDSL.g:6564:2: 'segmentcolor'
+            // InternalChartDSL.g:7573:1: ( 'segmentcolor' )
+            // InternalChartDSL.g:7574:2: 'segmentcolor'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartSegmentColorAccess().getSegmentcolorKeyword_0()); 
             }
-            match(input,94,FOLLOW_2); if (state.failed) return ;
+            match(input,109,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartSegmentColorAccess().getSegmentcolorKeyword_0()); 
             }
@@ -23239,14 +26628,14 @@
 
 
     // $ANTLR start "rule__ChartSegmentColor__Group__1"
-    // InternalChartDSL.g:6573:1: rule__ChartSegmentColor__Group__1 : rule__ChartSegmentColor__Group__1__Impl ;
+    // InternalChartDSL.g:7583:1: rule__ChartSegmentColor__Group__1 : rule__ChartSegmentColor__Group__1__Impl ;
     public final void rule__ChartSegmentColor__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6577:1: ( rule__ChartSegmentColor__Group__1__Impl )
-            // InternalChartDSL.g:6578:2: rule__ChartSegmentColor__Group__1__Impl
+            // InternalChartDSL.g:7587:1: ( rule__ChartSegmentColor__Group__1__Impl )
+            // InternalChartDSL.g:7588:2: rule__ChartSegmentColor__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartSegmentColor__Group__1__Impl();
@@ -23272,23 +26661,23 @@
 
 
     // $ANTLR start "rule__ChartSegmentColor__Group__1__Impl"
-    // InternalChartDSL.g:6584:1: rule__ChartSegmentColor__Group__1__Impl : ( ( rule__ChartSegmentColor__RgbAssignment_1 ) ) ;
+    // InternalChartDSL.g:7594:1: rule__ChartSegmentColor__Group__1__Impl : ( ( rule__ChartSegmentColor__RgbAssignment_1 ) ) ;
     public final void rule__ChartSegmentColor__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6588:1: ( ( ( rule__ChartSegmentColor__RgbAssignment_1 ) ) )
-            // InternalChartDSL.g:6589:1: ( ( rule__ChartSegmentColor__RgbAssignment_1 ) )
+            // InternalChartDSL.g:7598:1: ( ( ( rule__ChartSegmentColor__RgbAssignment_1 ) ) )
+            // InternalChartDSL.g:7599:1: ( ( rule__ChartSegmentColor__RgbAssignment_1 ) )
             {
-            // InternalChartDSL.g:6589:1: ( ( rule__ChartSegmentColor__RgbAssignment_1 ) )
-            // InternalChartDSL.g:6590:2: ( rule__ChartSegmentColor__RgbAssignment_1 )
+            // InternalChartDSL.g:7599:1: ( ( rule__ChartSegmentColor__RgbAssignment_1 ) )
+            // InternalChartDSL.g:7600:2: ( rule__ChartSegmentColor__RgbAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartSegmentColorAccess().getRgbAssignment_1()); 
             }
-            // InternalChartDSL.g:6591:2: ( rule__ChartSegmentColor__RgbAssignment_1 )
-            // InternalChartDSL.g:6591:3: rule__ChartSegmentColor__RgbAssignment_1
+            // InternalChartDSL.g:7601:2: ( rule__ChartSegmentColor__RgbAssignment_1 )
+            // InternalChartDSL.g:7601:3: rule__ChartSegmentColor__RgbAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ChartSegmentColor__RgbAssignment_1();
@@ -23323,16 +26712,16 @@
 
 
     // $ANTLR start "rule__SignedNumber__Group__0"
-    // InternalChartDSL.g:6600:1: rule__SignedNumber__Group__0 : rule__SignedNumber__Group__0__Impl rule__SignedNumber__Group__1 ;
+    // InternalChartDSL.g:7610:1: rule__SignedNumber__Group__0 : rule__SignedNumber__Group__0__Impl rule__SignedNumber__Group__1 ;
     public final void rule__SignedNumber__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6604:1: ( rule__SignedNumber__Group__0__Impl rule__SignedNumber__Group__1 )
-            // InternalChartDSL.g:6605:2: rule__SignedNumber__Group__0__Impl rule__SignedNumber__Group__1
+            // InternalChartDSL.g:7614:1: ( rule__SignedNumber__Group__0__Impl rule__SignedNumber__Group__1 )
+            // InternalChartDSL.g:7615:2: rule__SignedNumber__Group__0__Impl rule__SignedNumber__Group__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_42);
             rule__SignedNumber__Group__0__Impl();
 
             state._fsp--;
@@ -23361,31 +26750,31 @@
 
 
     // $ANTLR start "rule__SignedNumber__Group__0__Impl"
-    // InternalChartDSL.g:6612:1: rule__SignedNumber__Group__0__Impl : ( ( '-' )? ) ;
+    // InternalChartDSL.g:7622:1: rule__SignedNumber__Group__0__Impl : ( ( '-' )? ) ;
     public final void rule__SignedNumber__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6616:1: ( ( ( '-' )? ) )
-            // InternalChartDSL.g:6617:1: ( ( '-' )? )
+            // InternalChartDSL.g:7626:1: ( ( ( '-' )? ) )
+            // InternalChartDSL.g:7627:1: ( ( '-' )? )
             {
-            // InternalChartDSL.g:6617:1: ( ( '-' )? )
-            // InternalChartDSL.g:6618:2: ( '-' )?
+            // InternalChartDSL.g:7627:1: ( ( '-' )? )
+            // InternalChartDSL.g:7628:2: ( '-' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignedNumberAccess().getHyphenMinusKeyword_0()); 
             }
-            // InternalChartDSL.g:6619:2: ( '-' )?
-            int alt72=2;
-            int LA72_0 = input.LA(1);
+            // InternalChartDSL.g:7629:2: ( '-' )?
+            int alt85=2;
+            int LA85_0 = input.LA(1);
 
-            if ( (LA72_0==35) ) {
-                alt72=1;
+            if ( (LA85_0==35) ) {
+                alt85=1;
             }
-            switch (alt72) {
+            switch (alt85) {
                 case 1 :
-                    // InternalChartDSL.g:6619:3: '-'
+                    // InternalChartDSL.g:7629:3: '-'
                     {
                     match(input,35,FOLLOW_2); if (state.failed) return ;
 
@@ -23419,14 +26808,14 @@
 
 
     // $ANTLR start "rule__SignedNumber__Group__1"
-    // InternalChartDSL.g:6627:1: rule__SignedNumber__Group__1 : rule__SignedNumber__Group__1__Impl ;
+    // InternalChartDSL.g:7637:1: rule__SignedNumber__Group__1 : rule__SignedNumber__Group__1__Impl ;
     public final void rule__SignedNumber__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6631:1: ( rule__SignedNumber__Group__1__Impl )
-            // InternalChartDSL.g:6632:2: rule__SignedNumber__Group__1__Impl
+            // InternalChartDSL.g:7641:1: ( rule__SignedNumber__Group__1__Impl )
+            // InternalChartDSL.g:7642:2: rule__SignedNumber__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SignedNumber__Group__1__Impl();
@@ -23452,17 +26841,17 @@
 
 
     // $ANTLR start "rule__SignedNumber__Group__1__Impl"
-    // InternalChartDSL.g:6638:1: rule__SignedNumber__Group__1__Impl : ( RULE_INT ) ;
+    // InternalChartDSL.g:7648:1: rule__SignedNumber__Group__1__Impl : ( RULE_INT ) ;
     public final void rule__SignedNumber__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6642:1: ( ( RULE_INT ) )
-            // InternalChartDSL.g:6643:1: ( RULE_INT )
+            // InternalChartDSL.g:7652:1: ( ( RULE_INT ) )
+            // InternalChartDSL.g:7653:1: ( RULE_INT )
             {
-            // InternalChartDSL.g:6643:1: ( RULE_INT )
-            // InternalChartDSL.g:6644:2: RULE_INT
+            // InternalChartDSL.g:7653:1: ( RULE_INT )
+            // InternalChartDSL.g:7654:2: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignedNumberAccess().getINTTerminalRuleCall_1()); 
@@ -23493,16 +26882,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0"
-    // InternalChartDSL.g:6654:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
+    // InternalChartDSL.g:7664: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 {
-            // InternalChartDSL.g:6658:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
-            // InternalChartDSL.g:6659:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
+            // InternalChartDSL.g:7668:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
+            // InternalChartDSL.g:7669:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_56);
             rule__XImportDeclaration__Group__0__Impl();
 
             state._fsp--;
@@ -23531,23 +26920,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0__Impl"
-    // InternalChartDSL.g:6666:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:7676:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6670:1: ( ( () ) )
-            // InternalChartDSL.g:6671:1: ( () )
+            // InternalChartDSL.g:7680:1: ( ( () ) )
+            // InternalChartDSL.g:7681:1: ( () )
             {
-            // InternalChartDSL.g:6671:1: ( () )
-            // InternalChartDSL.g:6672:2: ()
+            // InternalChartDSL.g:7681:1: ( () )
+            // InternalChartDSL.g:7682:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0()); 
             }
-            // InternalChartDSL.g:6673:2: ()
-            // InternalChartDSL.g:6673:3: 
+            // InternalChartDSL.g:7683:2: ()
+            // InternalChartDSL.g:7683:3: 
             {
             }
 
@@ -23572,16 +26961,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1"
-    // InternalChartDSL.g:6681:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
+    // InternalChartDSL.g:7691: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 {
-            // InternalChartDSL.g:6685:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
-            // InternalChartDSL.g:6686:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
+            // InternalChartDSL.g:7695:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
+            // InternalChartDSL.g:7696:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
             {
-            pushFollow(FOLLOW_52);
+            pushFollow(FOLLOW_57);
             rule__XImportDeclaration__Group__1__Impl();
 
             state._fsp--;
@@ -23610,17 +26999,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1__Impl"
-    // InternalChartDSL.g:6693:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
+    // InternalChartDSL.g:7703:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
     public final void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6697:1: ( ( 'import' ) )
-            // InternalChartDSL.g:6698:1: ( 'import' )
+            // InternalChartDSL.g:7707:1: ( ( 'import' ) )
+            // InternalChartDSL.g:7708:1: ( 'import' )
             {
-            // InternalChartDSL.g:6698:1: ( 'import' )
-            // InternalChartDSL.g:6699:2: 'import'
+            // InternalChartDSL.g:7708:1: ( 'import' )
+            // InternalChartDSL.g:7709:2: 'import'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); 
@@ -23651,16 +27040,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2"
-    // InternalChartDSL.g:6708:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 ;
+    // InternalChartDSL.g:7718: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 {
-            // InternalChartDSL.g:6712:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
-            // InternalChartDSL.g:6713:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
+            // InternalChartDSL.g:7722:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
+            // InternalChartDSL.g:7723:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_58);
             rule__XImportDeclaration__Group__2__Impl();
 
             state._fsp--;
@@ -23689,23 +27078,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2__Impl"
-    // InternalChartDSL.g:6720:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
+    // InternalChartDSL.g:7730:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
     public final void rule__XImportDeclaration__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6724:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
-            // InternalChartDSL.g:6725:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalChartDSL.g:7734:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
+            // InternalChartDSL.g:7735:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
             {
-            // InternalChartDSL.g:6725:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
-            // InternalChartDSL.g:6726:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalChartDSL.g:7735:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalChartDSL.g:7736:2: ( rule__XImportDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalChartDSL.g:6727:2: ( rule__XImportDeclaration__Alternatives_2 )
-            // InternalChartDSL.g:6727:3: rule__XImportDeclaration__Alternatives_2
+            // InternalChartDSL.g:7737:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalChartDSL.g:7737:3: rule__XImportDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2();
@@ -23740,14 +27129,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3"
-    // InternalChartDSL.g:6735:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
+    // InternalChartDSL.g:7745:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
     public final void rule__XImportDeclaration__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6739:1: ( rule__XImportDeclaration__Group__3__Impl )
-            // InternalChartDSL.g:6740:2: rule__XImportDeclaration__Group__3__Impl
+            // InternalChartDSL.g:7749:1: ( rule__XImportDeclaration__Group__3__Impl )
+            // InternalChartDSL.g:7750:2: rule__XImportDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__3__Impl();
@@ -23773,33 +27162,33 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3__Impl"
-    // InternalChartDSL.g:6746:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
+    // InternalChartDSL.g:7756:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
     public final void rule__XImportDeclaration__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6750:1: ( ( ( ';' )? ) )
-            // InternalChartDSL.g:6751:1: ( ( ';' )? )
+            // InternalChartDSL.g:7760:1: ( ( ( ';' )? ) )
+            // InternalChartDSL.g:7761:1: ( ( ';' )? )
             {
-            // InternalChartDSL.g:6751:1: ( ( ';' )? )
-            // InternalChartDSL.g:6752:2: ( ';' )?
+            // InternalChartDSL.g:7761:1: ( ( ';' )? )
+            // InternalChartDSL.g:7762:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3()); 
             }
-            // InternalChartDSL.g:6753:2: ( ';' )?
-            int alt73=2;
-            int LA73_0 = input.LA(1);
+            // InternalChartDSL.g:7763:2: ( ';' )?
+            int alt86=2;
+            int LA86_0 = input.LA(1);
 
-            if ( (LA73_0==95) ) {
-                alt73=1;
+            if ( (LA86_0==110) ) {
+                alt86=1;
             }
-            switch (alt73) {
+            switch (alt86) {
                 case 1 :
-                    // InternalChartDSL.g:6753:3: ';'
+                    // InternalChartDSL.g:7763:3: ';'
                     {
-                    match(input,95,FOLLOW_2); if (state.failed) return ;
+                    match(input,110,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -23831,16 +27220,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0"
-    // InternalChartDSL.g:6762:1: rule__XImportDeclaration__Group_2_0__0 : rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 ;
+    // InternalChartDSL.g:7772: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 {
-            // InternalChartDSL.g:6766:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
-            // InternalChartDSL.g:6767:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
+            // InternalChartDSL.g:7776:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
+            // InternalChartDSL.g:7777:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
             {
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_59);
             rule__XImportDeclaration__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -23869,23 +27258,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0__Impl"
-    // InternalChartDSL.g:6774:1: rule__XImportDeclaration__Group_2_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) ;
+    // InternalChartDSL.g:7784: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 {
-            // InternalChartDSL.g:6778:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
-            // InternalChartDSL.g:6779:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalChartDSL.g:7788:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
+            // InternalChartDSL.g:7789:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
             {
-            // InternalChartDSL.g:6779:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
-            // InternalChartDSL.g:6780:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalChartDSL.g:7789:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalChartDSL.g:7790:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0()); 
             }
-            // InternalChartDSL.g:6781:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
-            // InternalChartDSL.g:6781:3: rule__XImportDeclaration__StaticAssignment_2_0_0
+            // InternalChartDSL.g:7791:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalChartDSL.g:7791:3: rule__XImportDeclaration__StaticAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__StaticAssignment_2_0_0();
@@ -23920,16 +27309,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1"
-    // InternalChartDSL.g:6789:1: rule__XImportDeclaration__Group_2_0__1 : rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 ;
+    // InternalChartDSL.g:7799: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 {
-            // InternalChartDSL.g:6793:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
-            // InternalChartDSL.g:6794:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
+            // InternalChartDSL.g:7803:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
+            // InternalChartDSL.g:7804:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
             {
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_59);
             rule__XImportDeclaration__Group_2_0__1__Impl();
 
             state._fsp--;
@@ -23958,31 +27347,31 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1__Impl"
-    // InternalChartDSL.g:6801:1: rule__XImportDeclaration__Group_2_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) ;
+    // InternalChartDSL.g:7811: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 {
-            // InternalChartDSL.g:6805:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
-            // InternalChartDSL.g:6806:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalChartDSL.g:7815:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
+            // InternalChartDSL.g:7816:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
             {
-            // InternalChartDSL.g:6806:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
-            // InternalChartDSL.g:6807:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            // InternalChartDSL.g:7816:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalChartDSL.g:7817:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1()); 
             }
-            // InternalChartDSL.g:6808:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
-            int alt74=2;
-            int LA74_0 = input.LA(1);
+            // InternalChartDSL.g:7818:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            int alt87=2;
+            int LA87_0 = input.LA(1);
 
-            if ( (LA74_0==48) ) {
-                alt74=1;
+            if ( (LA87_0==48) ) {
+                alt87=1;
             }
-            switch (alt74) {
+            switch (alt87) {
                 case 1 :
-                    // InternalChartDSL.g:6808:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
+                    // InternalChartDSL.g:7818:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ExtensionAssignment_2_0_1();
@@ -24020,16 +27409,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2"
-    // InternalChartDSL.g:6816:1: rule__XImportDeclaration__Group_2_0__2 : rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 ;
+    // InternalChartDSL.g:7826: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 {
-            // InternalChartDSL.g:6820:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
-            // InternalChartDSL.g:6821:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
+            // InternalChartDSL.g:7830:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
+            // InternalChartDSL.g:7831:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_60);
             rule__XImportDeclaration__Group_2_0__2__Impl();
 
             state._fsp--;
@@ -24058,23 +27447,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2__Impl"
-    // InternalChartDSL.g:6828:1: rule__XImportDeclaration__Group_2_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) ;
+    // InternalChartDSL.g:7838: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 {
-            // InternalChartDSL.g:6832:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
-            // InternalChartDSL.g:6833:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalChartDSL.g:7842:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
+            // InternalChartDSL.g:7843:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
             {
-            // InternalChartDSL.g:6833:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
-            // InternalChartDSL.g:6834:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalChartDSL.g:7843:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalChartDSL.g:7844:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2()); 
             }
-            // InternalChartDSL.g:6835:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
-            // InternalChartDSL.g:6835:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
+            // InternalChartDSL.g:7845:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalChartDSL.g:7845:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedTypeAssignment_2_0_2();
@@ -24109,14 +27498,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3"
-    // InternalChartDSL.g:6843:1: rule__XImportDeclaration__Group_2_0__3 : rule__XImportDeclaration__Group_2_0__3__Impl ;
+    // InternalChartDSL.g:7853: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 {
-            // InternalChartDSL.g:6847:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
-            // InternalChartDSL.g:6848:2: rule__XImportDeclaration__Group_2_0__3__Impl
+            // InternalChartDSL.g:7857:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
+            // InternalChartDSL.g:7858:2: rule__XImportDeclaration__Group_2_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_0__3__Impl();
@@ -24142,23 +27531,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3__Impl"
-    // InternalChartDSL.g:6854:1: rule__XImportDeclaration__Group_2_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) ;
+    // InternalChartDSL.g:7864: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 {
-            // InternalChartDSL.g:6858:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
-            // InternalChartDSL.g:6859:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalChartDSL.g:7868:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
+            // InternalChartDSL.g:7869:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
             {
-            // InternalChartDSL.g:6859:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
-            // InternalChartDSL.g:6860:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalChartDSL.g:7869:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalChartDSL.g:7870:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3()); 
             }
-            // InternalChartDSL.g:6861:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
-            // InternalChartDSL.g:6861:3: rule__XImportDeclaration__Alternatives_2_0_3
+            // InternalChartDSL.g:7871:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalChartDSL.g:7871:3: rule__XImportDeclaration__Alternatives_2_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2_0_3();
@@ -24193,14 +27582,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0"
-    // InternalChartDSL.g:6870:1: rule__XImportDeclaration__Group_2_3__0 : rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 ;
+    // InternalChartDSL.g:7880: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 {
-            // InternalChartDSL.g:6874:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
-            // InternalChartDSL.g:6875:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
+            // InternalChartDSL.g:7884:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
+            // InternalChartDSL.g:7885:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
             {
             pushFollow(FOLLOW_7);
             rule__XImportDeclaration__Group_2_3__0__Impl();
@@ -24231,23 +27620,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0__Impl"
-    // InternalChartDSL.g:6882:1: rule__XImportDeclaration__Group_2_3__0__Impl : ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) ;
+    // InternalChartDSL.g:7892: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 {
-            // InternalChartDSL.g:6886:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
-            // InternalChartDSL.g:6887:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalChartDSL.g:7896:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
+            // InternalChartDSL.g:7897:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
             {
-            // InternalChartDSL.g:6887:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
-            // InternalChartDSL.g:6888:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalChartDSL.g:7897:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalChartDSL.g:7898:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0()); 
             }
-            // InternalChartDSL.g:6889:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
-            // InternalChartDSL.g:6889:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
+            // InternalChartDSL.g:7899:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalChartDSL.g:7899:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__FqnImportAssignment_2_3_0();
@@ -24282,14 +27671,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1"
-    // InternalChartDSL.g:6897:1: rule__XImportDeclaration__Group_2_3__1 : rule__XImportDeclaration__Group_2_3__1__Impl ;
+    // InternalChartDSL.g:7907: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 {
-            // InternalChartDSL.g:6901:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
-            // InternalChartDSL.g:6902:2: rule__XImportDeclaration__Group_2_3__1__Impl
+            // InternalChartDSL.g:7911:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
+            // InternalChartDSL.g:7912:2: rule__XImportDeclaration__Group_2_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_3__1__Impl();
@@ -24315,23 +27704,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1__Impl"
-    // InternalChartDSL.g:6908:1: rule__XImportDeclaration__Group_2_3__1__Impl : ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) ;
+    // InternalChartDSL.g:7918: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 {
-            // InternalChartDSL.g:6912:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
-            // InternalChartDSL.g:6913:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalChartDSL.g:7922:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
+            // InternalChartDSL.g:7923:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
             {
-            // InternalChartDSL.g:6913:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
-            // InternalChartDSL.g:6914:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalChartDSL.g:7923:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalChartDSL.g:7924:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1()); 
             }
-            // InternalChartDSL.g:6915:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
-            // InternalChartDSL.g:6915:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
+            // InternalChartDSL.g:7925:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalChartDSL.g:7925:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1();
@@ -24366,16 +27755,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0"
-    // InternalChartDSL.g:6924:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
+    // InternalChartDSL.g:7934: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 {
-            // InternalChartDSL.g:6928:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
-            // InternalChartDSL.g:6929:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
+            // InternalChartDSL.g:7938:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
+            // InternalChartDSL.g:7939:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
             {
-            pushFollow(FOLLOW_56);
+            pushFollow(FOLLOW_61);
             rule__XAnnotation__Group__0__Impl();
 
             state._fsp--;
@@ -24404,23 +27793,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0__Impl"
-    // InternalChartDSL.g:6936:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:7946:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
     public final void rule__XAnnotation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6940:1: ( ( () ) )
-            // InternalChartDSL.g:6941:1: ( () )
+            // InternalChartDSL.g:7950:1: ( ( () ) )
+            // InternalChartDSL.g:7951:1: ( () )
             {
-            // InternalChartDSL.g:6941:1: ( () )
-            // InternalChartDSL.g:6942:2: ()
+            // InternalChartDSL.g:7951:1: ( () )
+            // InternalChartDSL.g:7952:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); 
             }
-            // InternalChartDSL.g:6943:2: ()
-            // InternalChartDSL.g:6943:3: 
+            // InternalChartDSL.g:7953:2: ()
+            // InternalChartDSL.g:7953:3: 
             {
             }
 
@@ -24445,14 +27834,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1"
-    // InternalChartDSL.g:6951:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
+    // InternalChartDSL.g:7961: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 {
-            // InternalChartDSL.g:6955:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
-            // InternalChartDSL.g:6956:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
+            // InternalChartDSL.g:7965:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
+            // InternalChartDSL.g:7966:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__XAnnotation__Group__1__Impl();
@@ -24483,22 +27872,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1__Impl"
-    // InternalChartDSL.g:6963:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
+    // InternalChartDSL.g:7973:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
     public final void rule__XAnnotation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6967:1: ( ( '@' ) )
-            // InternalChartDSL.g:6968:1: ( '@' )
+            // InternalChartDSL.g:7977:1: ( ( '@' ) )
+            // InternalChartDSL.g:7978:1: ( '@' )
             {
-            // InternalChartDSL.g:6968:1: ( '@' )
-            // InternalChartDSL.g:6969:2: '@'
+            // InternalChartDSL.g:7978:1: ( '@' )
+            // InternalChartDSL.g:7979:2: '@'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
             }
-            match(input,96,FOLLOW_2); if (state.failed) return ;
+            match(input,111,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
             }
@@ -24524,16 +27913,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2"
-    // InternalChartDSL.g:6978:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 ;
+    // InternalChartDSL.g:7988: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 {
-            // InternalChartDSL.g:6982:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
-            // InternalChartDSL.g:6983:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
+            // InternalChartDSL.g:7992:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
+            // InternalChartDSL.g:7993:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_62);
             rule__XAnnotation__Group__2__Impl();
 
             state._fsp--;
@@ -24562,23 +27951,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2__Impl"
-    // InternalChartDSL.g:6990:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
+    // InternalChartDSL.g:8000:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
     public final void rule__XAnnotation__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:6994:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
-            // InternalChartDSL.g:6995:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalChartDSL.g:8004:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
+            // InternalChartDSL.g:8005:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
             {
-            // InternalChartDSL.g:6995:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
-            // InternalChartDSL.g:6996:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalChartDSL.g:8005:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalChartDSL.g:8006:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); 
             }
-            // InternalChartDSL.g:6997:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
-            // InternalChartDSL.g:6997:3: rule__XAnnotation__AnnotationTypeAssignment_2
+            // InternalChartDSL.g:8007:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalChartDSL.g:8007:3: rule__XAnnotation__AnnotationTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__AnnotationTypeAssignment_2();
@@ -24613,14 +28002,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3"
-    // InternalChartDSL.g:7005:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
+    // InternalChartDSL.g:8015:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
     public final void rule__XAnnotation__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:7009:1: ( rule__XAnnotation__Group__3__Impl )
-            // InternalChartDSL.g:7010:2: rule__XAnnotation__Group__3__Impl
+            // InternalChartDSL.g:8019:1: ( rule__XAnnotation__Group__3__Impl )
+            // InternalChartDSL.g:8020:2: rule__XAnnotation__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__3__Impl();
@@ -24646,31 +28035,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3__Impl"
-    // InternalChartDSL.g:7016:1: rule__XAnnotation__Group__3__Impl : ( ( rule__XAnnotation__Group_3__0 )? ) ;
+    // InternalChartDSL.g:8026: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 {
-            // InternalChartDSL.g:7020:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
-            // InternalChartDSL.g:7021:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalChartDSL.g:8030:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
+            // InternalChartDSL.g:8031:1: ( ( rule__XAnnotation__Group_3__0 )? )
             {
-            // InternalChartDSL.g:7021:1: ( ( rule__XAnnotation__Group_3__0 )? )
-            // InternalChartDSL.g:7022:2: ( rule__XAnnotation__Group_3__0 )?
+            // InternalChartDSL.g:8031:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalChartDSL.g:8032:2: ( rule__XAnnotation__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3()); 
             }
-            // InternalChartDSL.g:7023:2: ( rule__XAnnotation__Group_3__0 )?
-            int alt75=2;
-            int LA75_0 = input.LA(1);
+            // InternalChartDSL.g:8033:2: ( rule__XAnnotation__Group_3__0 )?
+            int alt88=2;
+            int LA88_0 = input.LA(1);
 
-            if ( (LA75_0==97) ) {
-                alt75=1;
+            if ( (LA88_0==112) ) {
+                alt88=1;
             }
-            switch (alt75) {
+            switch (alt88) {
                 case 1 :
-                    // InternalChartDSL.g:7023:3: rule__XAnnotation__Group_3__0
+                    // InternalChartDSL.g:8033:3: rule__XAnnotation__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3__0();
@@ -24708,16 +28097,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0"
-    // InternalChartDSL.g:7032:1: rule__XAnnotation__Group_3__0 : rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 ;
+    // InternalChartDSL.g:8042: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 {
-            // InternalChartDSL.g:7036:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
-            // InternalChartDSL.g:7037:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
+            // InternalChartDSL.g:8046:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
+            // InternalChartDSL.g:8047:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
             {
-            pushFollow(FOLLOW_58);
+            pushFollow(FOLLOW_63);
             rule__XAnnotation__Group_3__0__Impl();
 
             state._fsp--;
@@ -24746,25 +28135,25 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0__Impl"
-    // InternalChartDSL.g:7044:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
+    // InternalChartDSL.g:8054:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
     public final void rule__XAnnotation__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:7048:1: ( ( ( '(' ) ) )
-            // InternalChartDSL.g:7049:1: ( ( '(' ) )
+            // InternalChartDSL.g:8058:1: ( ( ( '(' ) ) )
+            // InternalChartDSL.g:8059:1: ( ( '(' ) )
             {
-            // InternalChartDSL.g:7049:1: ( ( '(' ) )
-            // InternalChartDSL.g:7050:2: ( '(' )
+            // InternalChartDSL.g:8059:1: ( ( '(' ) )
+            // InternalChartDSL.g:8060:2: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); 
             }
-            // InternalChartDSL.g:7051:2: ( '(' )
-            // InternalChartDSL.g:7051:3: '('
+            // InternalChartDSL.g:8061:2: ( '(' )
+            // InternalChartDSL.g:8061:3: '('
             {
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -24793,16 +28182,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1"
-    // InternalChartDSL.g:7059:1: rule__XAnnotation__Group_3__1 : rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 ;
+    // InternalChartDSL.g:8069: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 {
-            // InternalChartDSL.g:7063:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
-            // InternalChartDSL.g:7064:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
+            // InternalChartDSL.g:8073:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
+            // InternalChartDSL.g:8074:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
             {
-            pushFollow(FOLLOW_58);
+            pushFollow(FOLLOW_63);
             rule__XAnnotation__Group_3__1__Impl();
 
             state._fsp--;
@@ -24831,31 +28220,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1__Impl"
-    // InternalChartDSL.g:7071:1: rule__XAnnotation__Group_3__1__Impl : ( ( rule__XAnnotation__Alternatives_3_1 )? ) ;
+    // InternalChartDSL.g:8081: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 {
-            // InternalChartDSL.g:7075:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
-            // InternalChartDSL.g:7076:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalChartDSL.g:8085:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
+            // InternalChartDSL.g:8086:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
             {
-            // InternalChartDSL.g:7076:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
-            // InternalChartDSL.g:7077:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            // InternalChartDSL.g:8086:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalChartDSL.g:8087:2: ( rule__XAnnotation__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); 
             }
-            // InternalChartDSL.g:7078:2: ( rule__XAnnotation__Alternatives_3_1 )?
-            int alt76=2;
-            int LA76_0 = input.LA(1);
+            // InternalChartDSL.g:8088:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            int alt89=2;
+            int LA89_0 = input.LA(1);
 
-            if ( ((LA76_0>=RULE_STRING && LA76_0<=RULE_DECIMAL)||LA76_0==27||(LA76_0>=34 && LA76_0<=35)||LA76_0==40||(LA76_0>=45 && LA76_0<=50)||LA76_0==72||(LA76_0>=96 && LA76_0<=97)||(LA76_0>=101 && LA76_0<=102)||LA76_0==104||LA76_0==106||(LA76_0>=110 && LA76_0<=118)||LA76_0==120||LA76_0==154) ) {
-                alt76=1;
+            if ( ((LA89_0>=RULE_STRING && LA89_0<=RULE_DECIMAL)||LA89_0==27||(LA89_0>=34 && LA89_0<=35)||LA89_0==40||(LA89_0>=45 && LA89_0<=50)||LA89_0==79||(LA89_0>=111 && LA89_0<=112)||(LA89_0>=116 && LA89_0<=117)||LA89_0==119||LA89_0==121||(LA89_0>=125 && LA89_0<=133)||LA89_0==135||LA89_0==171) ) {
+                alt89=1;
             }
-            switch (alt76) {
+            switch (alt89) {
                 case 1 :
-                    // InternalChartDSL.g:7078:3: rule__XAnnotation__Alternatives_3_1
+                    // InternalChartDSL.g:8088:3: rule__XAnnotation__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Alternatives_3_1();
@@ -24893,14 +28282,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2"
-    // InternalChartDSL.g:7086:1: rule__XAnnotation__Group_3__2 : rule__XAnnotation__Group_3__2__Impl ;
+    // InternalChartDSL.g:8096: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 {
-            // InternalChartDSL.g:7090:1: ( rule__XAnnotation__Group_3__2__Impl )
-            // InternalChartDSL.g:7091:2: rule__XAnnotation__Group_3__2__Impl
+            // InternalChartDSL.g:8100:1: ( rule__XAnnotation__Group_3__2__Impl )
+            // InternalChartDSL.g:8101:2: rule__XAnnotation__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3__2__Impl();
@@ -24926,22 +28315,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2__Impl"
-    // InternalChartDSL.g:7097:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
+    // InternalChartDSL.g:8107:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XAnnotation__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:7101:1: ( ( ')' ) )
-            // InternalChartDSL.g:7102:1: ( ')' )
+            // InternalChartDSL.g:8111:1: ( ( ')' ) )
+            // InternalChartDSL.g:8112:1: ( ')' )
             {
-            // InternalChartDSL.g:7102:1: ( ')' )
-            // InternalChartDSL.g:7103:2: ')'
+            // InternalChartDSL.g:8112:1: ( ')' )
+            // InternalChartDSL.g:8113:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
             }
@@ -24967,16 +28356,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0"
-    // InternalChartDSL.g:7113:1: rule__XAnnotation__Group_3_1_0__0 : rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 ;
+    // InternalChartDSL.g:8123: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 {
-            // InternalChartDSL.g:7117:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
-            // InternalChartDSL.g:7118:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
+            // InternalChartDSL.g:8127:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
+            // InternalChartDSL.g:8128:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XAnnotation__Group_3_1_0__0__Impl();
 
             state._fsp--;
@@ -25005,23 +28394,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0__Impl"
-    // InternalChartDSL.g:7125:1: rule__XAnnotation__Group_3_1_0__0__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) ;
+    // InternalChartDSL.g:8135: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 {
-            // InternalChartDSL.g:7129:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
-            // InternalChartDSL.g:7130:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalChartDSL.g:8139:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
+            // InternalChartDSL.g:8140:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
             {
-            // InternalChartDSL.g:7130:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
-            // InternalChartDSL.g:7131:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalChartDSL.g:8140:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalChartDSL.g:8141:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); 
             }
-            // InternalChartDSL.g:7132:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
-            // InternalChartDSL.g:7132:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
+            // InternalChartDSL.g:8142:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalChartDSL.g:8142:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0();
@@ -25056,14 +28445,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1"
-    // InternalChartDSL.g:7140:1: rule__XAnnotation__Group_3_1_0__1 : rule__XAnnotation__Group_3_1_0__1__Impl ;
+    // InternalChartDSL.g:8150: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 {
-            // InternalChartDSL.g:7144:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
-            // InternalChartDSL.g:7145:2: rule__XAnnotation__Group_3_1_0__1__Impl
+            // InternalChartDSL.g:8154:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
+            // InternalChartDSL.g:8155:2: rule__XAnnotation__Group_3_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0__1__Impl();
@@ -25089,37 +28478,37 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1__Impl"
-    // InternalChartDSL.g:7151:1: rule__XAnnotation__Group_3_1_0__1__Impl : ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) ;
+    // InternalChartDSL.g:8161: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 {
-            // InternalChartDSL.g:7155:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
-            // InternalChartDSL.g:7156:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalChartDSL.g:8165:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
+            // InternalChartDSL.g:8166:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
             {
-            // InternalChartDSL.g:7156:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
-            // InternalChartDSL.g:7157:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            // InternalChartDSL.g:8166:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalChartDSL.g:8167:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); 
             }
-            // InternalChartDSL.g:7158:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
-            loop77:
+            // InternalChartDSL.g:8168:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            loop90:
             do {
-                int alt77=2;
-                int LA77_0 = input.LA(1);
+                int alt90=2;
+                int LA90_0 = input.LA(1);
 
-                if ( (LA77_0==99) ) {
-                    alt77=1;
+                if ( (LA90_0==114) ) {
+                    alt90=1;
                 }
 
 
-                switch (alt77) {
+                switch (alt90) {
             	case 1 :
-            	    // InternalChartDSL.g:7158:3: rule__XAnnotation__Group_3_1_0_1__0
+            	    // InternalChartDSL.g:8168:3: rule__XAnnotation__Group_3_1_0_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XAnnotation__Group_3_1_0_1__0();
 
             	    state._fsp--;
@@ -25129,7 +28518,7 @@
             	    break;
 
             	default :
-            	    break loop77;
+            	    break loop90;
                 }
             } while (true);
 
@@ -25158,14 +28547,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0"
-    // InternalChartDSL.g:7167: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 ;
+    // InternalChartDSL.g:8177: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 {
-            // InternalChartDSL.g:7171:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
-            // InternalChartDSL.g:7172:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
+            // InternalChartDSL.g:8181:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
+            // InternalChartDSL.g:8182: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();
@@ -25196,22 +28585,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0__Impl"
-    // InternalChartDSL.g:7179:1: rule__XAnnotation__Group_3_1_0_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:8189: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 {
-            // InternalChartDSL.g:7183:1: ( ( ',' ) )
-            // InternalChartDSL.g:7184:1: ( ',' )
+            // InternalChartDSL.g:8193:1: ( ( ',' ) )
+            // InternalChartDSL.g:8194:1: ( ',' )
             {
-            // InternalChartDSL.g:7184:1: ( ',' )
-            // InternalChartDSL.g:7185:2: ','
+            // InternalChartDSL.g:8194:1: ( ',' )
+            // InternalChartDSL.g:8195:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
             }
@@ -25237,14 +28626,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1"
-    // InternalChartDSL.g:7194:1: rule__XAnnotation__Group_3_1_0_1__1 : rule__XAnnotation__Group_3_1_0_1__1__Impl ;
+    // InternalChartDSL.g:8204: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 {
-            // InternalChartDSL.g:7198:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
-            // InternalChartDSL.g:7199:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
+            // InternalChartDSL.g:8208:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
+            // InternalChartDSL.g:8209:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0_1__1__Impl();
@@ -25270,23 +28659,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1__Impl"
-    // InternalChartDSL.g:7205:1: rule__XAnnotation__Group_3_1_0_1__1__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) ;
+    // InternalChartDSL.g:8215: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 {
-            // InternalChartDSL.g:7209:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
-            // InternalChartDSL.g:7210:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalChartDSL.g:8219:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
+            // InternalChartDSL.g:8220:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
             {
-            // InternalChartDSL.g:7210:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
-            // InternalChartDSL.g:7211:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalChartDSL.g:8220:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalChartDSL.g:8221:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); 
             }
-            // InternalChartDSL.g:7212:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
-            // InternalChartDSL.g:7212:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
+            // InternalChartDSL.g:8222:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalChartDSL.g:8222:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1();
@@ -25321,16 +28710,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0"
-    // InternalChartDSL.g:7221:1: rule__XAnnotationElementValuePair__Group__0 : rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 ;
+    // InternalChartDSL.g:8231: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 {
-            // InternalChartDSL.g:7225:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
-            // InternalChartDSL.g:7226:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
+            // InternalChartDSL.g:8235:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
+            // InternalChartDSL.g:8236:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XAnnotationElementValuePair__Group__0__Impl();
 
             state._fsp--;
@@ -25359,23 +28748,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0__Impl"
-    // InternalChartDSL.g:7233:1: rule__XAnnotationElementValuePair__Group__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) ;
+    // InternalChartDSL.g:8243: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 {
-            // InternalChartDSL.g:7237:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
-            // InternalChartDSL.g:7238:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalChartDSL.g:8247:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
+            // InternalChartDSL.g:8248:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
             {
-            // InternalChartDSL.g:7238:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
-            // InternalChartDSL.g:7239:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalChartDSL.g:8248:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalChartDSL.g:8249:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); 
             }
-            // InternalChartDSL.g:7240:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
-            // InternalChartDSL.g:7240:3: rule__XAnnotationElementValuePair__Group_0__0
+            // InternalChartDSL.g:8250:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalChartDSL.g:8250:3: rule__XAnnotationElementValuePair__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0();
@@ -25410,14 +28799,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1"
-    // InternalChartDSL.g:7248:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
+    // InternalChartDSL.g:8258:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
     public final void rule__XAnnotationElementValuePair__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:7252:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
-            // InternalChartDSL.g:7253:2: rule__XAnnotationElementValuePair__Group__1__Impl
+            // InternalChartDSL.g:8262:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
+            // InternalChartDSL.g:8263:2: rule__XAnnotationElementValuePair__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__1__Impl();
@@ -25443,23 +28832,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1__Impl"
-    // InternalChartDSL.g:7259:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
+    // InternalChartDSL.g:8269:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:7263:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
-            // InternalChartDSL.g:7264:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalChartDSL.g:8273:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
+            // InternalChartDSL.g:8274:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
             {
-            // InternalChartDSL.g:7264:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
-            // InternalChartDSL.g:7265:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalChartDSL.g:8274:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalChartDSL.g:8275:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); 
             }
-            // InternalChartDSL.g:7266:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
-            // InternalChartDSL.g:7266:3: rule__XAnnotationElementValuePair__ValueAssignment_1
+            // InternalChartDSL.g:8276:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalChartDSL.g:8276:3: rule__XAnnotationElementValuePair__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ValueAssignment_1();
@@ -25494,14 +28883,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0"
-    // InternalChartDSL.g:7275:1: rule__XAnnotationElementValuePair__Group_0__0 : rule__XAnnotationElementValuePair__Group_0__0__Impl ;
+    // InternalChartDSL.g:8285: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 {
-            // InternalChartDSL.g:7279:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
-            // InternalChartDSL.g:7280:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
+            // InternalChartDSL.g:8289:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
+            // InternalChartDSL.g:8290:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0__Impl();
@@ -25527,23 +28916,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0__Impl"
-    // InternalChartDSL.g:7286:1: rule__XAnnotationElementValuePair__Group_0__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) ;
+    // InternalChartDSL.g:8296: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 {
-            // InternalChartDSL.g:7290:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
-            // InternalChartDSL.g:7291:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalChartDSL.g:8300:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
+            // InternalChartDSL.g:8301:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
             {
-            // InternalChartDSL.g:7291:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
-            // InternalChartDSL.g:7292:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalChartDSL.g:8301:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalChartDSL.g:8302:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); 
             }
-            // InternalChartDSL.g:7293:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
-            // InternalChartDSL.g:7293:3: rule__XAnnotationElementValuePair__Group_0_0__0
+            // InternalChartDSL.g:8303:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalChartDSL.g:8303:3: rule__XAnnotationElementValuePair__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__0();
@@ -25578,16 +28967,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0"
-    // InternalChartDSL.g:7302:1: rule__XAnnotationElementValuePair__Group_0_0__0 : rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 ;
+    // InternalChartDSL.g:8312: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 {
-            // InternalChartDSL.g:7306:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
-            // InternalChartDSL.g:7307:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
+            // InternalChartDSL.g:8316:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
+            // InternalChartDSL.g:8317:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_67);
             rule__XAnnotationElementValuePair__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -25616,23 +29005,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0__Impl"
-    // InternalChartDSL.g:7314:1: rule__XAnnotationElementValuePair__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) ;
+    // InternalChartDSL.g:8324: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 {
-            // InternalChartDSL.g:7318:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
-            // InternalChartDSL.g:7319:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalChartDSL.g:8328:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
+            // InternalChartDSL.g:8329:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
             {
-            // InternalChartDSL.g:7319:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
-            // InternalChartDSL.g:7320:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalChartDSL.g:8329:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalChartDSL.g:8330:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); 
             }
-            // InternalChartDSL.g:7321:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
-            // InternalChartDSL.g:7321:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
+            // InternalChartDSL.g:8331:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalChartDSL.g:8331:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ElementAssignment_0_0_0();
@@ -25667,14 +29056,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1"
-    // InternalChartDSL.g:7329:1: rule__XAnnotationElementValuePair__Group_0_0__1 : rule__XAnnotationElementValuePair__Group_0_0__1__Impl ;
+    // InternalChartDSL.g:8339: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 {
-            // InternalChartDSL.g:7333:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
-            // InternalChartDSL.g:7334:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+            // InternalChartDSL.g:8343:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
+            // InternalChartDSL.g:8344:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__1__Impl();
@@ -25700,17 +29089,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1__Impl"
-    // InternalChartDSL.g:7340:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
+    // InternalChartDSL.g:8350:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:7344:1: ( ( '=' ) )
-            // InternalChartDSL.g:7345:1: ( '=' )
+            // InternalChartDSL.g:8354:1: ( ( '=' ) )
+            // InternalChartDSL.g:8355:1: ( '=' )
             {
-            // InternalChartDSL.g:7345:1: ( '=' )
-            // InternalChartDSL.g:7346:2: '='
+            // InternalChartDSL.g:8355:1: ( '=' )
+            // InternalChartDSL.g:8356:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); 
@@ -25741,16 +29130,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0"
-    // InternalChartDSL.g:7356:1: rule__XAnnotationElementValueOrCommaList__Group_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 ;
+    // InternalChartDSL.g:8366: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 {
-            // InternalChartDSL.g:7360:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
-            // InternalChartDSL.g:7361:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
+            // InternalChartDSL.g:8370:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
+            // InternalChartDSL.g:8371:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
             {
-            pushFollow(FOLLOW_63);
+            pushFollow(FOLLOW_68);
             rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl();
 
             state._fsp--;
@@ -25779,23 +29168,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl"
-    // InternalChartDSL.g:7368:1: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) ;
+    // InternalChartDSL.g:8378: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 {
-            // InternalChartDSL.g:7372:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
-            // InternalChartDSL.g:7373:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalChartDSL.g:8382:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
+            // InternalChartDSL.g:8383:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
             {
-            // InternalChartDSL.g:7373:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
-            // InternalChartDSL.g:7374:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalChartDSL.g:8383:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalChartDSL.g:8384:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); 
             }
-            // InternalChartDSL.g:7375:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
-            // InternalChartDSL.g:7375:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
+            // InternalChartDSL.g:8385:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalChartDSL.g:8385:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0();
@@ -25830,16 +29219,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1"
-    // InternalChartDSL.g:7383:1: rule__XAnnotationElementValueOrCommaList__Group_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 ;
+    // InternalChartDSL.g:8393: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 {
-            // InternalChartDSL.g:7387:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
-            // InternalChartDSL.g:7388:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
+            // InternalChartDSL.g:8397:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
+            // InternalChartDSL.g:8398:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
             {
-            pushFollow(FOLLOW_63);
+            pushFollow(FOLLOW_68);
             rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl();
 
             state._fsp--;
@@ -25868,31 +29257,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl"
-    // InternalChartDSL.g:7395:1: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) ;
+    // InternalChartDSL.g:8405: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 {
-            // InternalChartDSL.g:7399:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
-            // InternalChartDSL.g:7400:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalChartDSL.g:8409:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
+            // InternalChartDSL.g:8410:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
             {
-            // InternalChartDSL.g:7400:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
-            // InternalChartDSL.g:7401:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            // InternalChartDSL.g:8410:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalChartDSL.g:8411:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); 
             }
-            // InternalChartDSL.g:7402:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
-            int alt78=2;
-            int LA78_0 = input.LA(1);
+            // InternalChartDSL.g:8412:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            int alt91=2;
+            int LA91_0 = input.LA(1);
 
-            if ( ((LA78_0>=RULE_STRING && LA78_0<=RULE_DECIMAL)||LA78_0==27||(LA78_0>=34 && LA78_0<=35)||LA78_0==40||(LA78_0>=45 && LA78_0<=50)||LA78_0==72||(LA78_0>=96 && LA78_0<=97)||(LA78_0>=101 && LA78_0<=102)||LA78_0==104||LA78_0==106||(LA78_0>=110 && LA78_0<=118)||LA78_0==120||LA78_0==154) ) {
-                alt78=1;
+            if ( ((LA91_0>=RULE_STRING && LA91_0<=RULE_DECIMAL)||LA91_0==27||(LA91_0>=34 && LA91_0<=35)||LA91_0==40||(LA91_0>=45 && LA91_0<=50)||LA91_0==79||(LA91_0>=111 && LA91_0<=112)||(LA91_0>=116 && LA91_0<=117)||LA91_0==119||LA91_0==121||(LA91_0>=125 && LA91_0<=133)||LA91_0==135||LA91_0==171) ) {
+                alt91=1;
             }
-            switch (alt78) {
+            switch (alt91) {
                 case 1 :
-                    // InternalChartDSL.g:7402:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
+                    // InternalChartDSL.g:8412:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0_1__0();
@@ -25930,14 +29319,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2"
-    // InternalChartDSL.g:7410:1: rule__XAnnotationElementValueOrCommaList__Group_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl ;
+    // InternalChartDSL.g:8420: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 {
-            // InternalChartDSL.g:7414:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
-            // InternalChartDSL.g:7415:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+            // InternalChartDSL.g:8424:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
+            // InternalChartDSL.g:8425:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl();
@@ -25963,22 +29352,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl"
-    // InternalChartDSL.g:7421:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
+    // InternalChartDSL.g:8431:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:7425:1: ( ( ']' ) )
-            // InternalChartDSL.g:7426:1: ( ']' )
+            // InternalChartDSL.g:8435:1: ( ( ']' ) )
+            // InternalChartDSL.g:8436:1: ( ']' )
             {
-            // InternalChartDSL.g:7426:1: ( ']' )
-            // InternalChartDSL.g:7427:2: ']'
+            // InternalChartDSL.g:8436:1: ( ']' )
+            // InternalChartDSL.g:8437:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
             }
-            match(input,100,FOLLOW_2); if (state.failed) return ;
+            match(input,115,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
             }
@@ -26004,14 +29393,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0"
-    // InternalChartDSL.g:7437:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl ;
+    // InternalChartDSL.g:8447: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 {
-            // InternalChartDSL.g:7441:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
-            // InternalChartDSL.g:7442:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+            // InternalChartDSL.g:8451:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
+            // InternalChartDSL.g:8452:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl();
@@ -26037,23 +29426,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl"
-    // InternalChartDSL.g:7448:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) ;
+    // InternalChartDSL.g:8458: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 {
-            // InternalChartDSL.g:7452:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
-            // InternalChartDSL.g:7453:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalChartDSL.g:8462:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
+            // InternalChartDSL.g:8463:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
             {
-            // InternalChartDSL.g:7453:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
-            // InternalChartDSL.g:7454:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalChartDSL.g:8463:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalChartDSL.g:8464:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); 
             }
-            // InternalChartDSL.g:7455:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
-            // InternalChartDSL.g:7455:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
+            // InternalChartDSL.g:8465:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalChartDSL.g:8465:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0();
@@ -26088,16 +29477,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0"
-    // InternalChartDSL.g:7464:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 ;
+    // InternalChartDSL.g:8474: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 {
-            // InternalChartDSL.g:7468:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
-            // InternalChartDSL.g:7469:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+            // InternalChartDSL.g:8478:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
+            // InternalChartDSL.g:8479:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
             {
-            pushFollow(FOLLOW_64);
+            pushFollow(FOLLOW_69);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl();
 
             state._fsp--;
@@ -26126,23 +29515,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl"
-    // InternalChartDSL.g:7476:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:8486: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 {
-            // InternalChartDSL.g:7480:1: ( ( () ) )
-            // InternalChartDSL.g:7481:1: ( () )
+            // InternalChartDSL.g:8490:1: ( ( () ) )
+            // InternalChartDSL.g:8491:1: ( () )
             {
-            // InternalChartDSL.g:7481:1: ( () )
-            // InternalChartDSL.g:7482:2: ()
+            // InternalChartDSL.g:8491:1: ( () )
+            // InternalChartDSL.g:8492:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalChartDSL.g:7483:2: ()
-            // InternalChartDSL.g:7483:3: 
+            // InternalChartDSL.g:8493:2: ()
+            // InternalChartDSL.g:8493:3: 
             {
             }
 
@@ -26167,16 +29556,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1"
-    // InternalChartDSL.g:7491:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 ;
+    // InternalChartDSL.g:8501: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 {
-            // InternalChartDSL.g:7495:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
-            // InternalChartDSL.g:7496:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+            // InternalChartDSL.g:8505:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
+            // InternalChartDSL.g:8506:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
             {
-            pushFollow(FOLLOW_65);
+            pushFollow(FOLLOW_70);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl();
 
             state._fsp--;
@@ -26205,22 +29594,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl"
-    // InternalChartDSL.g:7503:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalChartDSL.g:8513: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 {
-            // InternalChartDSL.g:7507:1: ( ( '#' ) )
-            // InternalChartDSL.g:7508:1: ( '#' )
+            // InternalChartDSL.g:8517:1: ( ( '#' ) )
+            // InternalChartDSL.g:8518:1: ( '#' )
             {
-            // InternalChartDSL.g:7508:1: ( '#' )
-            // InternalChartDSL.g:7509:2: '#'
+            // InternalChartDSL.g:8518:1: ( '#' )
+            // InternalChartDSL.g:8519:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,116,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
             }
@@ -26246,14 +29635,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2"
-    // InternalChartDSL.g:7518:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl ;
+    // InternalChartDSL.g:8528: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 {
-            // InternalChartDSL.g:7522:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
-            // InternalChartDSL.g:7523:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+            // InternalChartDSL.g:8532:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
+            // InternalChartDSL.g:8533:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl();
@@ -26279,22 +29668,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl"
-    // InternalChartDSL.g:7529:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalChartDSL.g:8539: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 {
-            // InternalChartDSL.g:7533:1: ( ( '[' ) )
-            // InternalChartDSL.g:7534:1: ( '[' )
+            // InternalChartDSL.g:8543:1: ( ( '[' ) )
+            // InternalChartDSL.g:8544:1: ( '[' )
             {
-            // InternalChartDSL.g:7534:1: ( '[' )
-            // InternalChartDSL.g:7535:2: '['
+            // InternalChartDSL.g:8544:1: ( '[' )
+            // InternalChartDSL.g:8545:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
-            match(input,102,FOLLOW_2); if (state.failed) return ;
+            match(input,117,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
@@ -26320,16 +29709,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0"
-    // InternalChartDSL.g:7545:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 ;
+    // InternalChartDSL.g:8555: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 {
-            // InternalChartDSL.g:7549:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
-            // InternalChartDSL.g:7550:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+            // InternalChartDSL.g:8559:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
+            // InternalChartDSL.g:8560:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -26358,23 +29747,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl"
-    // InternalChartDSL.g:7557:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) ;
+    // InternalChartDSL.g:8567: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 {
-            // InternalChartDSL.g:7561:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
-            // InternalChartDSL.g:7562:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalChartDSL.g:8571:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
+            // InternalChartDSL.g:8572:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
             {
-            // InternalChartDSL.g:7562:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
-            // InternalChartDSL.g:7563:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalChartDSL.g:8572:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalChartDSL.g:8573:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalChartDSL.g:7564:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
-            // InternalChartDSL.g:7564:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
+            // InternalChartDSL.g:8574:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalChartDSL.g:8574:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0();
@@ -26409,14 +29798,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1"
-    // InternalChartDSL.g:7572:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl ;
+    // InternalChartDSL.g:8582: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 {
-            // InternalChartDSL.g:7576:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
-            // InternalChartDSL.g:7577:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+            // InternalChartDSL.g:8586:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
+            // InternalChartDSL.g:8587:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl();
@@ -26442,37 +29831,37 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl"
-    // InternalChartDSL.g:7583:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) ;
+    // InternalChartDSL.g:8593: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 {
-            // InternalChartDSL.g:7587:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
-            // InternalChartDSL.g:7588:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalChartDSL.g:8597:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
+            // InternalChartDSL.g:8598:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
             {
-            // InternalChartDSL.g:7588:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
-            // InternalChartDSL.g:7589:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            // InternalChartDSL.g:8598:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalChartDSL.g:8599:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); 
             }
-            // InternalChartDSL.g:7590:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
-            loop79:
+            // InternalChartDSL.g:8600:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            loop92:
             do {
-                int alt79=2;
-                int LA79_0 = input.LA(1);
+                int alt92=2;
+                int LA92_0 = input.LA(1);
 
-                if ( (LA79_0==99) ) {
-                    alt79=1;
+                if ( (LA92_0==114) ) {
+                    alt92=1;
                 }
 
 
-                switch (alt79) {
+                switch (alt92) {
             	case 1 :
-            	    // InternalChartDSL.g:7590:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
+            	    // InternalChartDSL.g:8600:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -26482,7 +29871,7 @@
             	    break;
 
             	default :
-            	    break loop79;
+            	    break loop92;
                 }
             } while (true);
 
@@ -26511,16 +29900,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0"
-    // InternalChartDSL.g:7599:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 ;
+    // InternalChartDSL.g:8609: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 {
-            // InternalChartDSL.g:7603:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
-            // InternalChartDSL.g:7604:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+            // InternalChartDSL.g:8613:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
+            // InternalChartDSL.g:8614:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -26549,22 +29938,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl"
-    // InternalChartDSL.g:7611:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:8621: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 {
-            // InternalChartDSL.g:7615:1: ( ( ',' ) )
-            // InternalChartDSL.g:7616:1: ( ',' )
+            // InternalChartDSL.g:8625:1: ( ( ',' ) )
+            // InternalChartDSL.g:8626:1: ( ',' )
             {
-            // InternalChartDSL.g:7616:1: ( ',' )
-            // InternalChartDSL.g:7617:2: ','
+            // InternalChartDSL.g:8626:1: ( ',' )
+            // InternalChartDSL.g:8627:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -26590,14 +29979,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1"
-    // InternalChartDSL.g:7626:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl ;
+    // InternalChartDSL.g:8636: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 {
-            // InternalChartDSL.g:7630:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
-            // InternalChartDSL.g:7631:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+            // InternalChartDSL.g:8640:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
+            // InternalChartDSL.g:8641:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl();
@@ -26623,23 +30012,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl"
-    // InternalChartDSL.g:7637:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalChartDSL.g:8647: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 {
-            // InternalChartDSL.g:7641:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalChartDSL.g:7642:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalChartDSL.g:8651:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalChartDSL.g:8652:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalChartDSL.g:7642:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
-            // InternalChartDSL.g:7643:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalChartDSL.g:8652:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalChartDSL.g:8653:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalChartDSL.g:7644:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
-            // InternalChartDSL.g:7644:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
+            // InternalChartDSL.g:8654:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalChartDSL.g:8654:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1();
@@ -26674,16 +30063,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0"
-    // InternalChartDSL.g:7653:1: rule__XAnnotationElementValueOrCommaList__Group_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 ;
+    // InternalChartDSL.g:8663: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 {
-            // InternalChartDSL.g:7657:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
-            // InternalChartDSL.g:7658:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
+            // InternalChartDSL.g:8667:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
+            // InternalChartDSL.g:8668:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl();
 
             state._fsp--;
@@ -26712,17 +30101,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl"
-    // InternalChartDSL.g:7665:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
+    // InternalChartDSL.g:8675:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:7669:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalChartDSL.g:7670:1: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:8679:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalChartDSL.g:8680:1: ( ruleXAnnotationOrExpression )
             {
-            // InternalChartDSL.g:7670:1: ( ruleXAnnotationOrExpression )
-            // InternalChartDSL.g:7671:2: ruleXAnnotationOrExpression
+            // InternalChartDSL.g:8680:1: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:8681:2: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
@@ -26757,14 +30146,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1"
-    // InternalChartDSL.g:7680:1: rule__XAnnotationElementValueOrCommaList__Group_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl ;
+    // InternalChartDSL.g:8690: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 {
-            // InternalChartDSL.g:7684:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
-            // InternalChartDSL.g:7685:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+            // InternalChartDSL.g:8694:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
+            // InternalChartDSL.g:8695:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl();
@@ -26790,31 +30179,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl"
-    // InternalChartDSL.g:7691:1: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) ;
+    // InternalChartDSL.g:8701: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 {
-            // InternalChartDSL.g:7695:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
-            // InternalChartDSL.g:7696:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalChartDSL.g:8705:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
+            // InternalChartDSL.g:8706:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
             {
-            // InternalChartDSL.g:7696:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
-            // InternalChartDSL.g:7697:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            // InternalChartDSL.g:8706:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalChartDSL.g:8707:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); 
             }
-            // InternalChartDSL.g:7698:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
-            int alt80=2;
-            int LA80_0 = input.LA(1);
+            // InternalChartDSL.g:8708:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            int alt93=2;
+            int LA93_0 = input.LA(1);
 
-            if ( (LA80_0==99) ) {
-                alt80=1;
+            if ( (LA93_0==114) ) {
+                alt93=1;
             }
-            switch (alt80) {
+            switch (alt93) {
                 case 1 :
-                    // InternalChartDSL.g:7698:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
+                    // InternalChartDSL.g:8708:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1_1__0();
@@ -26852,16 +30241,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0"
-    // InternalChartDSL.g:7707:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 ;
+    // InternalChartDSL.g:8717: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 {
-            // InternalChartDSL.g:7711:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
-            // InternalChartDSL.g:7712:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+            // InternalChartDSL.g:8721:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
+            // InternalChartDSL.g:8722:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -26890,23 +30279,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl"
-    // InternalChartDSL.g:7719:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
+    // InternalChartDSL.g:8729:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:7723:1: ( ( () ) )
-            // InternalChartDSL.g:7724:1: ( () )
+            // InternalChartDSL.g:8733:1: ( ( () ) )
+            // InternalChartDSL.g:8734:1: ( () )
             {
-            // InternalChartDSL.g:7724:1: ( () )
-            // InternalChartDSL.g:7725:2: ()
+            // InternalChartDSL.g:8734:1: ( () )
+            // InternalChartDSL.g:8735:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); 
             }
-            // InternalChartDSL.g:7726:2: ()
-            // InternalChartDSL.g:7726:3: 
+            // InternalChartDSL.g:8736:2: ()
+            // InternalChartDSL.g:8736:3: 
             {
             }
 
@@ -26931,14 +30320,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1"
-    // InternalChartDSL.g:7734:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl ;
+    // InternalChartDSL.g:8744: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 {
-            // InternalChartDSL.g:7738:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
-            // InternalChartDSL.g:7739:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+            // InternalChartDSL.g:8748:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
+            // InternalChartDSL.g:8749:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl();
@@ -26964,28 +30353,28 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl"
-    // InternalChartDSL.g:7745:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
+    // InternalChartDSL.g:8755: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 {
-            // InternalChartDSL.g:7749:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
-            // InternalChartDSL.g:7750:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalChartDSL.g:8759:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
+            // InternalChartDSL.g:8760:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
             {
-            // InternalChartDSL.g:7750:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
-            // InternalChartDSL.g:7751:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalChartDSL.g:8760:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalChartDSL.g:8761:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
             {
-            // InternalChartDSL.g:7751:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
-            // InternalChartDSL.g:7752:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalChartDSL.g:8761:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
+            // InternalChartDSL.g:8762:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalChartDSL.g:7753:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
-            // InternalChartDSL.g:7753:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            // InternalChartDSL.g:8763:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalChartDSL.g:8763:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             {
-            pushFollow(FOLLOW_60);
+            pushFollow(FOLLOW_65);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
 
             state._fsp--;
@@ -26999,28 +30388,28 @@
 
             }
 
-            // InternalChartDSL.g:7756:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
-            // InternalChartDSL.g:7757:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            // InternalChartDSL.g:8766:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalChartDSL.g:8767:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalChartDSL.g:7758:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
-            loop81:
+            // InternalChartDSL.g:8768:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            loop94:
             do {
-                int alt81=2;
-                int LA81_0 = input.LA(1);
+                int alt94=2;
+                int LA94_0 = input.LA(1);
 
-                if ( (LA81_0==99) ) {
-                    alt81=1;
+                if ( (LA94_0==114) ) {
+                    alt94=1;
                 }
 
 
-                switch (alt81) {
+                switch (alt94) {
             	case 1 :
-            	    // InternalChartDSL.g:7758:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            	    // InternalChartDSL.g:8768:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
 
             	    state._fsp--;
@@ -27030,7 +30419,7 @@
             	    break;
 
             	default :
-            	    break loop81;
+            	    break loop94;
                 }
             } while (true);
 
@@ -27062,16 +30451,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0"
-    // InternalChartDSL.g:7768:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 ;
+    // InternalChartDSL.g:8778: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 {
-            // InternalChartDSL.g:7772:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
-            // InternalChartDSL.g:7773:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+            // InternalChartDSL.g:8782:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
+            // InternalChartDSL.g:8783:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl();
 
             state._fsp--;
@@ -27100,22 +30489,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl"
-    // InternalChartDSL.g:7780:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:8790: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 {
-            // InternalChartDSL.g:7784:1: ( ( ',' ) )
-            // InternalChartDSL.g:7785:1: ( ',' )
+            // InternalChartDSL.g:8794:1: ( ( ',' ) )
+            // InternalChartDSL.g:8795:1: ( ',' )
             {
-            // InternalChartDSL.g:7785:1: ( ',' )
-            // InternalChartDSL.g:7786:2: ','
+            // InternalChartDSL.g:8795:1: ( ',' )
+            // InternalChartDSL.g:8796:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
             }
@@ -27141,14 +30530,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1"
-    // InternalChartDSL.g:7795:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl ;
+    // InternalChartDSL.g:8805: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 {
-            // InternalChartDSL.g:7799:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
-            // InternalChartDSL.g:7800:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+            // InternalChartDSL.g:8809:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
+            // InternalChartDSL.g:8810:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl();
@@ -27174,23 +30563,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl"
-    // InternalChartDSL.g:7806:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) ;
+    // InternalChartDSL.g:8816: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 {
-            // InternalChartDSL.g:7810:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
-            // InternalChartDSL.g:7811:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalChartDSL.g:8820:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
+            // InternalChartDSL.g:8821:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
             {
-            // InternalChartDSL.g:7811:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
-            // InternalChartDSL.g:7812:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalChartDSL.g:8821:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalChartDSL.g:8822:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); 
             }
-            // InternalChartDSL.g:7813:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
-            // InternalChartDSL.g:7813:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
+            // InternalChartDSL.g:8823:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalChartDSL.g:8823:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1();
@@ -27225,16 +30614,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0"
-    // InternalChartDSL.g:7822:1: rule__XAnnotationElementValue__Group_0__0 : rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 ;
+    // InternalChartDSL.g:8832: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 {
-            // InternalChartDSL.g:7826:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
-            // InternalChartDSL.g:7827:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
+            // InternalChartDSL.g:8836:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
+            // InternalChartDSL.g:8837:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
             {
-            pushFollow(FOLLOW_63);
+            pushFollow(FOLLOW_68);
             rule__XAnnotationElementValue__Group_0__0__Impl();
 
             state._fsp--;
@@ -27263,23 +30652,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0__Impl"
-    // InternalChartDSL.g:7834:1: rule__XAnnotationElementValue__Group_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) ;
+    // InternalChartDSL.g:8844: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 {
-            // InternalChartDSL.g:7838:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
-            // InternalChartDSL.g:7839:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalChartDSL.g:8848:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
+            // InternalChartDSL.g:8849:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
             {
-            // InternalChartDSL.g:7839:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
-            // InternalChartDSL.g:7840:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalChartDSL.g:8849:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalChartDSL.g:8850:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); 
             }
-            // InternalChartDSL.g:7841:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
-            // InternalChartDSL.g:7841:3: rule__XAnnotationElementValue__Group_0_0__0
+            // InternalChartDSL.g:8851:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalChartDSL.g:8851:3: rule__XAnnotationElementValue__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0();
@@ -27314,16 +30703,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1"
-    // InternalChartDSL.g:7849:1: rule__XAnnotationElementValue__Group_0__1 : rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 ;
+    // InternalChartDSL.g:8859: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 {
-            // InternalChartDSL.g:7853:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
-            // InternalChartDSL.g:7854:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
+            // InternalChartDSL.g:8863:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
+            // InternalChartDSL.g:8864:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
             {
-            pushFollow(FOLLOW_63);
+            pushFollow(FOLLOW_68);
             rule__XAnnotationElementValue__Group_0__1__Impl();
 
             state._fsp--;
@@ -27352,31 +30741,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1__Impl"
-    // InternalChartDSL.g:7861:1: rule__XAnnotationElementValue__Group_0__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) ;
+    // InternalChartDSL.g:8871: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 {
-            // InternalChartDSL.g:7865:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
-            // InternalChartDSL.g:7866:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalChartDSL.g:8875:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
+            // InternalChartDSL.g:8876:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
             {
-            // InternalChartDSL.g:7866:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
-            // InternalChartDSL.g:7867:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            // InternalChartDSL.g:8876:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalChartDSL.g:8877:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); 
             }
-            // InternalChartDSL.g:7868:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
-            int alt82=2;
-            int LA82_0 = input.LA(1);
+            // InternalChartDSL.g:8878:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            int alt95=2;
+            int LA95_0 = input.LA(1);
 
-            if ( ((LA82_0>=RULE_STRING && LA82_0<=RULE_DECIMAL)||LA82_0==27||(LA82_0>=34 && LA82_0<=35)||LA82_0==40||(LA82_0>=45 && LA82_0<=50)||LA82_0==72||(LA82_0>=96 && LA82_0<=97)||(LA82_0>=101 && LA82_0<=102)||LA82_0==104||LA82_0==106||(LA82_0>=110 && LA82_0<=118)||LA82_0==120||LA82_0==154) ) {
-                alt82=1;
+            if ( ((LA95_0>=RULE_STRING && LA95_0<=RULE_DECIMAL)||LA95_0==27||(LA95_0>=34 && LA95_0<=35)||LA95_0==40||(LA95_0>=45 && LA95_0<=50)||LA95_0==79||(LA95_0>=111 && LA95_0<=112)||(LA95_0>=116 && LA95_0<=117)||LA95_0==119||LA95_0==121||(LA95_0>=125 && LA95_0<=133)||LA95_0==135||LA95_0==171) ) {
+                alt95=1;
             }
-            switch (alt82) {
+            switch (alt95) {
                 case 1 :
-                    // InternalChartDSL.g:7868:3: rule__XAnnotationElementValue__Group_0_1__0
+                    // InternalChartDSL.g:8878:3: rule__XAnnotationElementValue__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0_1__0();
@@ -27414,14 +30803,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2"
-    // InternalChartDSL.g:7876:1: rule__XAnnotationElementValue__Group_0__2 : rule__XAnnotationElementValue__Group_0__2__Impl ;
+    // InternalChartDSL.g:8886: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 {
-            // InternalChartDSL.g:7880:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
-            // InternalChartDSL.g:7881:2: rule__XAnnotationElementValue__Group_0__2__Impl
+            // InternalChartDSL.g:8890:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
+            // InternalChartDSL.g:8891:2: rule__XAnnotationElementValue__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0__2__Impl();
@@ -27447,22 +30836,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2__Impl"
-    // InternalChartDSL.g:7887:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
+    // InternalChartDSL.g:8897:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValue__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:7891:1: ( ( ']' ) )
-            // InternalChartDSL.g:7892:1: ( ']' )
+            // InternalChartDSL.g:8901:1: ( ( ']' ) )
+            // InternalChartDSL.g:8902:1: ( ']' )
             {
-            // InternalChartDSL.g:7892:1: ( ']' )
-            // InternalChartDSL.g:7893:2: ']'
+            // InternalChartDSL.g:8902:1: ( ']' )
+            // InternalChartDSL.g:8903:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
             }
-            match(input,100,FOLLOW_2); if (state.failed) return ;
+            match(input,115,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
             }
@@ -27488,14 +30877,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0"
-    // InternalChartDSL.g:7903:1: rule__XAnnotationElementValue__Group_0_0__0 : rule__XAnnotationElementValue__Group_0_0__0__Impl ;
+    // InternalChartDSL.g:8913: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 {
-            // InternalChartDSL.g:7907:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
-            // InternalChartDSL.g:7908:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
+            // InternalChartDSL.g:8917:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
+            // InternalChartDSL.g:8918:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0__Impl();
@@ -27521,23 +30910,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0__Impl"
-    // InternalChartDSL.g:7914:1: rule__XAnnotationElementValue__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) ;
+    // InternalChartDSL.g:8924: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 {
-            // InternalChartDSL.g:7918:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
-            // InternalChartDSL.g:7919:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalChartDSL.g:8928:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
+            // InternalChartDSL.g:8929:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
             {
-            // InternalChartDSL.g:7919:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
-            // InternalChartDSL.g:7920:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalChartDSL.g:8929:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalChartDSL.g:8930:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); 
             }
-            // InternalChartDSL.g:7921:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
-            // InternalChartDSL.g:7921:3: rule__XAnnotationElementValue__Group_0_0_0__0
+            // InternalChartDSL.g:8931:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalChartDSL.g:8931:3: rule__XAnnotationElementValue__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__0();
@@ -27572,16 +30961,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0"
-    // InternalChartDSL.g:7930:1: rule__XAnnotationElementValue__Group_0_0_0__0 : rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 ;
+    // InternalChartDSL.g:8940: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 {
-            // InternalChartDSL.g:7934:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
-            // InternalChartDSL.g:7935:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
+            // InternalChartDSL.g:8944:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
+            // InternalChartDSL.g:8945:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
             {
-            pushFollow(FOLLOW_64);
+            pushFollow(FOLLOW_69);
             rule__XAnnotationElementValue__Group_0_0_0__0__Impl();
 
             state._fsp--;
@@ -27610,23 +30999,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0__Impl"
-    // InternalChartDSL.g:7942:1: rule__XAnnotationElementValue__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:8952: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 {
-            // InternalChartDSL.g:7946:1: ( ( () ) )
-            // InternalChartDSL.g:7947:1: ( () )
+            // InternalChartDSL.g:8956:1: ( ( () ) )
+            // InternalChartDSL.g:8957:1: ( () )
             {
-            // InternalChartDSL.g:7947:1: ( () )
-            // InternalChartDSL.g:7948:2: ()
+            // InternalChartDSL.g:8957:1: ( () )
+            // InternalChartDSL.g:8958:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalChartDSL.g:7949:2: ()
-            // InternalChartDSL.g:7949:3: 
+            // InternalChartDSL.g:8959:2: ()
+            // InternalChartDSL.g:8959:3: 
             {
             }
 
@@ -27651,16 +31040,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1"
-    // InternalChartDSL.g:7957:1: rule__XAnnotationElementValue__Group_0_0_0__1 : rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 ;
+    // InternalChartDSL.g:8967: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 {
-            // InternalChartDSL.g:7961:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
-            // InternalChartDSL.g:7962:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
+            // InternalChartDSL.g:8971:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
+            // InternalChartDSL.g:8972:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
             {
-            pushFollow(FOLLOW_65);
+            pushFollow(FOLLOW_70);
             rule__XAnnotationElementValue__Group_0_0_0__1__Impl();
 
             state._fsp--;
@@ -27689,22 +31078,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1__Impl"
-    // InternalChartDSL.g:7969:1: rule__XAnnotationElementValue__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalChartDSL.g:8979: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 {
-            // InternalChartDSL.g:7973:1: ( ( '#' ) )
-            // InternalChartDSL.g:7974:1: ( '#' )
+            // InternalChartDSL.g:8983:1: ( ( '#' ) )
+            // InternalChartDSL.g:8984:1: ( '#' )
             {
-            // InternalChartDSL.g:7974:1: ( '#' )
-            // InternalChartDSL.g:7975:2: '#'
+            // InternalChartDSL.g:8984:1: ( '#' )
+            // InternalChartDSL.g:8985:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,116,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
             }
@@ -27730,14 +31119,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2"
-    // InternalChartDSL.g:7984:1: rule__XAnnotationElementValue__Group_0_0_0__2 : rule__XAnnotationElementValue__Group_0_0_0__2__Impl ;
+    // InternalChartDSL.g:8994: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 {
-            // InternalChartDSL.g:7988:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
-            // InternalChartDSL.g:7989:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+            // InternalChartDSL.g:8998:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
+            // InternalChartDSL.g:8999:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__2__Impl();
@@ -27763,22 +31152,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2__Impl"
-    // InternalChartDSL.g:7995:1: rule__XAnnotationElementValue__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalChartDSL.g:9005: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 {
-            // InternalChartDSL.g:7999:1: ( ( '[' ) )
-            // InternalChartDSL.g:8000:1: ( '[' )
+            // InternalChartDSL.g:9009:1: ( ( '[' ) )
+            // InternalChartDSL.g:9010:1: ( '[' )
             {
-            // InternalChartDSL.g:8000:1: ( '[' )
-            // InternalChartDSL.g:8001:2: '['
+            // InternalChartDSL.g:9010:1: ( '[' )
+            // InternalChartDSL.g:9011:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
-            match(input,102,FOLLOW_2); if (state.failed) return ;
+            match(input,117,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
@@ -27804,16 +31193,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0"
-    // InternalChartDSL.g:8011:1: rule__XAnnotationElementValue__Group_0_1__0 : rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 ;
+    // InternalChartDSL.g:9021: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 {
-            // InternalChartDSL.g:8015:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
-            // InternalChartDSL.g:8016:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
+            // InternalChartDSL.g:9025:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
+            // InternalChartDSL.g:9026:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XAnnotationElementValue__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -27842,23 +31231,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0__Impl"
-    // InternalChartDSL.g:8023:1: rule__XAnnotationElementValue__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) ;
+    // InternalChartDSL.g:9033: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 {
-            // InternalChartDSL.g:8027:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
-            // InternalChartDSL.g:8028:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalChartDSL.g:9037:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
+            // InternalChartDSL.g:9038:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
             {
-            // InternalChartDSL.g:8028:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
-            // InternalChartDSL.g:8029:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalChartDSL.g:9038:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalChartDSL.g:9039:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalChartDSL.g:8030:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
-            // InternalChartDSL.g:8030:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
+            // InternalChartDSL.g:9040:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalChartDSL.g:9040:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_0();
@@ -27893,14 +31282,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1"
-    // InternalChartDSL.g:8038:1: rule__XAnnotationElementValue__Group_0_1__1 : rule__XAnnotationElementValue__Group_0_1__1__Impl ;
+    // InternalChartDSL.g:9048: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 {
-            // InternalChartDSL.g:8042:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
-            // InternalChartDSL.g:8043:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
+            // InternalChartDSL.g:9052:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
+            // InternalChartDSL.g:9053:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1__1__Impl();
@@ -27926,37 +31315,37 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1__Impl"
-    // InternalChartDSL.g:8049:1: rule__XAnnotationElementValue__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) ;
+    // InternalChartDSL.g:9059: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 {
-            // InternalChartDSL.g:8053:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
-            // InternalChartDSL.g:8054:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalChartDSL.g:9063:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
+            // InternalChartDSL.g:9064:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
             {
-            // InternalChartDSL.g:8054:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
-            // InternalChartDSL.g:8055:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            // InternalChartDSL.g:9064:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalChartDSL.g:9065:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); 
             }
-            // InternalChartDSL.g:8056:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
-            loop83:
+            // InternalChartDSL.g:9066:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            loop96:
             do {
-                int alt83=2;
-                int LA83_0 = input.LA(1);
+                int alt96=2;
+                int LA96_0 = input.LA(1);
 
-                if ( (LA83_0==99) ) {
-                    alt83=1;
+                if ( (LA96_0==114) ) {
+                    alt96=1;
                 }
 
 
-                switch (alt83) {
+                switch (alt96) {
             	case 1 :
-            	    // InternalChartDSL.g:8056:3: rule__XAnnotationElementValue__Group_0_1_1__0
+            	    // InternalChartDSL.g:9066:3: rule__XAnnotationElementValue__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XAnnotationElementValue__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -27966,7 +31355,7 @@
             	    break;
 
             	default :
-            	    break loop83;
+            	    break loop96;
                 }
             } while (true);
 
@@ -27995,16 +31384,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0"
-    // InternalChartDSL.g:8065:1: rule__XAnnotationElementValue__Group_0_1_1__0 : rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 ;
+    // InternalChartDSL.g:9075: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 {
-            // InternalChartDSL.g:8069:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
-            // InternalChartDSL.g:8070:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
+            // InternalChartDSL.g:9079:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
+            // InternalChartDSL.g:9080:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XAnnotationElementValue__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -28033,22 +31422,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0__Impl"
-    // InternalChartDSL.g:8077:1: rule__XAnnotationElementValue__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:9087: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 {
-            // InternalChartDSL.g:8081:1: ( ( ',' ) )
-            // InternalChartDSL.g:8082:1: ( ',' )
+            // InternalChartDSL.g:9091:1: ( ( ',' ) )
+            // InternalChartDSL.g:9092:1: ( ',' )
             {
-            // InternalChartDSL.g:8082:1: ( ',' )
-            // InternalChartDSL.g:8083:2: ','
+            // InternalChartDSL.g:9092:1: ( ',' )
+            // InternalChartDSL.g:9093:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -28074,14 +31463,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1"
-    // InternalChartDSL.g:8092:1: rule__XAnnotationElementValue__Group_0_1_1__1 : rule__XAnnotationElementValue__Group_0_1_1__1__Impl ;
+    // InternalChartDSL.g:9102: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 {
-            // InternalChartDSL.g:8096:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
-            // InternalChartDSL.g:8097:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+            // InternalChartDSL.g:9106:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
+            // InternalChartDSL.g:9107:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1_1__1__Impl();
@@ -28107,23 +31496,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1__Impl"
-    // InternalChartDSL.g:8103:1: rule__XAnnotationElementValue__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalChartDSL.g:9113: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 {
-            // InternalChartDSL.g:8107:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalChartDSL.g:8108:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalChartDSL.g:9117:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalChartDSL.g:9118:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalChartDSL.g:8108:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
-            // InternalChartDSL.g:8109:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalChartDSL.g:9118:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalChartDSL.g:9119:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalChartDSL.g:8110:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
-            // InternalChartDSL.g:8110:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
+            // InternalChartDSL.g:9120:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalChartDSL.g:9120:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1();
@@ -28158,16 +31547,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0"
-    // InternalChartDSL.g:8119:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
+    // InternalChartDSL.g:9129: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 {
-            // InternalChartDSL.g:8123:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
-            // InternalChartDSL.g:8124:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
+            // InternalChartDSL.g:9133:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
+            // InternalChartDSL.g:9134:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
             {
-            pushFollow(FOLLOW_66);
+            pushFollow(FOLLOW_71);
             rule__XAssignment__Group_0__0__Impl();
 
             state._fsp--;
@@ -28196,23 +31585,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0__Impl"
-    // InternalChartDSL.g:8131:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:9141:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
     public final void rule__XAssignment__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8135:1: ( ( () ) )
-            // InternalChartDSL.g:8136:1: ( () )
+            // InternalChartDSL.g:9145:1: ( ( () ) )
+            // InternalChartDSL.g:9146:1: ( () )
             {
-            // InternalChartDSL.g:8136:1: ( () )
-            // InternalChartDSL.g:8137:2: ()
+            // InternalChartDSL.g:9146:1: ( () )
+            // InternalChartDSL.g:9147:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
             }
-            // InternalChartDSL.g:8138:2: ()
-            // InternalChartDSL.g:8138:3: 
+            // InternalChartDSL.g:9148:2: ()
+            // InternalChartDSL.g:9148:3: 
             {
             }
 
@@ -28237,16 +31626,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1"
-    // InternalChartDSL.g:8146:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
+    // InternalChartDSL.g:9156: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 {
-            // InternalChartDSL.g:8150:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
-            // InternalChartDSL.g:8151:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
+            // InternalChartDSL.g:9160:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
+            // InternalChartDSL.g:9161:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_67);
             rule__XAssignment__Group_0__1__Impl();
 
             state._fsp--;
@@ -28275,23 +31664,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1__Impl"
-    // InternalChartDSL.g:8158:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
+    // InternalChartDSL.g:9168: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 {
-            // InternalChartDSL.g:8162:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
-            // InternalChartDSL.g:8163:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalChartDSL.g:9172:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
+            // InternalChartDSL.g:9173:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
             {
-            // InternalChartDSL.g:8163:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
-            // InternalChartDSL.g:8164:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalChartDSL.g:9173:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalChartDSL.g:9174:2: ( rule__XAssignment__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalChartDSL.g:8165:2: ( rule__XAssignment__FeatureAssignment_0_1 )
-            // InternalChartDSL.g:8165:3: rule__XAssignment__FeatureAssignment_0_1
+            // InternalChartDSL.g:9175:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalChartDSL.g:9175:3: rule__XAssignment__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_0_1();
@@ -28326,16 +31715,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2"
-    // InternalChartDSL.g:8173:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
+    // InternalChartDSL.g:9183: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 {
-            // InternalChartDSL.g:8177:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
-            // InternalChartDSL.g:8178:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
+            // InternalChartDSL.g:9187:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
+            // InternalChartDSL.g:9188:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XAssignment__Group_0__2__Impl();
 
             state._fsp--;
@@ -28364,17 +31753,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2__Impl"
-    // InternalChartDSL.g:8185:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
+    // InternalChartDSL.g:9195:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
     public final void rule__XAssignment__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8189:1: ( ( ruleOpSingleAssign ) )
-            // InternalChartDSL.g:8190:1: ( ruleOpSingleAssign )
+            // InternalChartDSL.g:9199:1: ( ( ruleOpSingleAssign ) )
+            // InternalChartDSL.g:9200:1: ( ruleOpSingleAssign )
             {
-            // InternalChartDSL.g:8190:1: ( ruleOpSingleAssign )
-            // InternalChartDSL.g:8191:2: ruleOpSingleAssign
+            // InternalChartDSL.g:9200:1: ( ruleOpSingleAssign )
+            // InternalChartDSL.g:9201:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
@@ -28409,14 +31798,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3"
-    // InternalChartDSL.g:8200:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
+    // InternalChartDSL.g:9210: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 {
-            // InternalChartDSL.g:8204:1: ( rule__XAssignment__Group_0__3__Impl )
-            // InternalChartDSL.g:8205:2: rule__XAssignment__Group_0__3__Impl
+            // InternalChartDSL.g:9214:1: ( rule__XAssignment__Group_0__3__Impl )
+            // InternalChartDSL.g:9215:2: rule__XAssignment__Group_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_0__3__Impl();
@@ -28442,23 +31831,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3__Impl"
-    // InternalChartDSL.g:8211:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
+    // InternalChartDSL.g:9221: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 {
-            // InternalChartDSL.g:8215:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
-            // InternalChartDSL.g:8216:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalChartDSL.g:9225:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
+            // InternalChartDSL.g:9226:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
             {
-            // InternalChartDSL.g:8216:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
-            // InternalChartDSL.g:8217:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalChartDSL.g:9226:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalChartDSL.g:9227:2: ( rule__XAssignment__ValueAssignment_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
             }
-            // InternalChartDSL.g:8218:2: ( rule__XAssignment__ValueAssignment_0_3 )
-            // InternalChartDSL.g:8218:3: rule__XAssignment__ValueAssignment_0_3
+            // InternalChartDSL.g:9228:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalChartDSL.g:9228:3: rule__XAssignment__ValueAssignment_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__ValueAssignment_0_3();
@@ -28493,16 +31882,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0"
-    // InternalChartDSL.g:8227:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
+    // InternalChartDSL.g:9237: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 {
-            // InternalChartDSL.g:8231:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
-            // InternalChartDSL.g:8232:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
+            // InternalChartDSL.g:9241:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
+            // InternalChartDSL.g:9242:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__XAssignment__Group_1__0__Impl();
 
             state._fsp--;
@@ -28531,17 +31920,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0__Impl"
-    // InternalChartDSL.g:8239:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
+    // InternalChartDSL.g:9249:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
     public final void rule__XAssignment__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8243:1: ( ( ruleXOrExpression ) )
-            // InternalChartDSL.g:8244:1: ( ruleXOrExpression )
+            // InternalChartDSL.g:9253:1: ( ( ruleXOrExpression ) )
+            // InternalChartDSL.g:9254:1: ( ruleXOrExpression )
             {
-            // InternalChartDSL.g:8244:1: ( ruleXOrExpression )
-            // InternalChartDSL.g:8245:2: ruleXOrExpression
+            // InternalChartDSL.g:9254:1: ( ruleXOrExpression )
+            // InternalChartDSL.g:9255:2: ruleXOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
@@ -28576,14 +31965,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1"
-    // InternalChartDSL.g:8254:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
+    // InternalChartDSL.g:9264: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 {
-            // InternalChartDSL.g:8258:1: ( rule__XAssignment__Group_1__1__Impl )
-            // InternalChartDSL.g:8259:2: rule__XAssignment__Group_1__1__Impl
+            // InternalChartDSL.g:9268:1: ( rule__XAssignment__Group_1__1__Impl )
+            // InternalChartDSL.g:9269:2: rule__XAssignment__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1__1__Impl();
@@ -28609,27 +31998,27 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1__Impl"
-    // InternalChartDSL.g:8265:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
+    // InternalChartDSL.g:9275: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 {
-            // InternalChartDSL.g:8269:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
-            // InternalChartDSL.g:8270:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalChartDSL.g:9279:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
+            // InternalChartDSL.g:9280:1: ( ( rule__XAssignment__Group_1_1__0 )? )
             {
-            // InternalChartDSL.g:8270:1: ( ( rule__XAssignment__Group_1_1__0 )? )
-            // InternalChartDSL.g:8271:2: ( rule__XAssignment__Group_1_1__0 )?
+            // InternalChartDSL.g:9280:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalChartDSL.g:9281:2: ( rule__XAssignment__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
             }
-            // InternalChartDSL.g:8272:2: ( rule__XAssignment__Group_1_1__0 )?
-            int alt84=2;
-            alt84 = dfa84.predict(input);
-            switch (alt84) {
+            // InternalChartDSL.g:9282:2: ( rule__XAssignment__Group_1_1__0 )?
+            int alt97=2;
+            alt97 = dfa97.predict(input);
+            switch (alt97) {
                 case 1 :
-                    // InternalChartDSL.g:8272:3: rule__XAssignment__Group_1_1__0
+                    // InternalChartDSL.g:9282:3: rule__XAssignment__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1_1__0();
@@ -28667,16 +32056,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0"
-    // InternalChartDSL.g:8281:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
+    // InternalChartDSL.g:9291: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 {
-            // InternalChartDSL.g:8285:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
-            // InternalChartDSL.g:8286:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
+            // InternalChartDSL.g:9295:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
+            // InternalChartDSL.g:9296:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XAssignment__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -28705,23 +32094,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0__Impl"
-    // InternalChartDSL.g:8293:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
+    // InternalChartDSL.g:9303: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 {
-            // InternalChartDSL.g:8297:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
-            // InternalChartDSL.g:8298:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalChartDSL.g:9307:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
+            // InternalChartDSL.g:9308:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
             {
-            // InternalChartDSL.g:8298:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
-            // InternalChartDSL.g:8299:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalChartDSL.g:9308:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalChartDSL.g:9309:2: ( rule__XAssignment__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
             }
-            // InternalChartDSL.g:8300:2: ( rule__XAssignment__Group_1_1_0__0 )
-            // InternalChartDSL.g:8300:3: rule__XAssignment__Group_1_1_0__0
+            // InternalChartDSL.g:9310:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalChartDSL.g:9310:3: rule__XAssignment__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0();
@@ -28756,14 +32145,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1"
-    // InternalChartDSL.g:8308:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
+    // InternalChartDSL.g:9318: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 {
-            // InternalChartDSL.g:8312:1: ( rule__XAssignment__Group_1_1__1__Impl )
-            // InternalChartDSL.g:8313:2: rule__XAssignment__Group_1_1__1__Impl
+            // InternalChartDSL.g:9322:1: ( rule__XAssignment__Group_1_1__1__Impl )
+            // InternalChartDSL.g:9323:2: rule__XAssignment__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1__1__Impl();
@@ -28789,23 +32178,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1__Impl"
-    // InternalChartDSL.g:8319:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalChartDSL.g:9329: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 {
-            // InternalChartDSL.g:8323:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
-            // InternalChartDSL.g:8324:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalChartDSL.g:9333:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
+            // InternalChartDSL.g:9334:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalChartDSL.g:8324:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
-            // InternalChartDSL.g:8325:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalChartDSL.g:9334:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalChartDSL.g:9335:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalChartDSL.g:8326:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
-            // InternalChartDSL.g:8326:3: rule__XAssignment__RightOperandAssignment_1_1_1
+            // InternalChartDSL.g:9336:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalChartDSL.g:9336:3: rule__XAssignment__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__RightOperandAssignment_1_1_1();
@@ -28840,14 +32229,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0"
-    // InternalChartDSL.g:8335:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
+    // InternalChartDSL.g:9345: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 {
-            // InternalChartDSL.g:8339:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
-            // InternalChartDSL.g:8340:2: rule__XAssignment__Group_1_1_0__0__Impl
+            // InternalChartDSL.g:9349:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
+            // InternalChartDSL.g:9350:2: rule__XAssignment__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0__Impl();
@@ -28873,23 +32262,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0__Impl"
-    // InternalChartDSL.g:8346:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:9356: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 {
-            // InternalChartDSL.g:8350:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
-            // InternalChartDSL.g:8351:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalChartDSL.g:9360:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
+            // InternalChartDSL.g:9361:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:8351:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
-            // InternalChartDSL.g:8352:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalChartDSL.g:9361:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalChartDSL.g:9362:2: ( rule__XAssignment__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
             }
-            // InternalChartDSL.g:8353:2: ( rule__XAssignment__Group_1_1_0_0__0 )
-            // InternalChartDSL.g:8353:3: rule__XAssignment__Group_1_1_0_0__0
+            // InternalChartDSL.g:9363:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalChartDSL.g:9363:3: rule__XAssignment__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__0();
@@ -28924,16 +32313,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0"
-    // InternalChartDSL.g:8362: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 ;
+    // InternalChartDSL.g:9372: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 {
-            // InternalChartDSL.g:8366:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
-            // InternalChartDSL.g:8367:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
+            // InternalChartDSL.g:9376:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
+            // InternalChartDSL.g:9377:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_72);
             rule__XAssignment__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -28962,23 +32351,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0__Impl"
-    // InternalChartDSL.g:8374:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:9384: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 {
-            // InternalChartDSL.g:8378:1: ( ( () ) )
-            // InternalChartDSL.g:8379:1: ( () )
+            // InternalChartDSL.g:9388:1: ( ( () ) )
+            // InternalChartDSL.g:9389:1: ( () )
             {
-            // InternalChartDSL.g:8379:1: ( () )
-            // InternalChartDSL.g:8380:2: ()
+            // InternalChartDSL.g:9389:1: ( () )
+            // InternalChartDSL.g:9390:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalChartDSL.g:8381:2: ()
-            // InternalChartDSL.g:8381:3: 
+            // InternalChartDSL.g:9391:2: ()
+            // InternalChartDSL.g:9391:3: 
             {
             }
 
@@ -29003,14 +32392,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1"
-    // InternalChartDSL.g:8389:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
+    // InternalChartDSL.g:9399: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 {
-            // InternalChartDSL.g:8393:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
-            // InternalChartDSL.g:8394:2: rule__XAssignment__Group_1_1_0_0__1__Impl
+            // InternalChartDSL.g:9403:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
+            // InternalChartDSL.g:9404:2: rule__XAssignment__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__1__Impl();
@@ -29036,23 +32425,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1__Impl"
-    // InternalChartDSL.g:8400:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalChartDSL.g:9410: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 {
-            // InternalChartDSL.g:8404:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalChartDSL.g:8405:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalChartDSL.g:9414:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalChartDSL.g:9415:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalChartDSL.g:8405:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalChartDSL.g:8406:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalChartDSL.g:9415:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalChartDSL.g:9416:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalChartDSL.g:8407:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
-            // InternalChartDSL.g:8407:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
+            // InternalChartDSL.g:9417:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalChartDSL.g:9417:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_1_1_0_0_1();
@@ -29087,16 +32476,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0"
-    // InternalChartDSL.g:8416:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
+    // InternalChartDSL.g:9426: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 {
-            // InternalChartDSL.g:8420:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
-            // InternalChartDSL.g:8421:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
+            // InternalChartDSL.g:9430:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
+            // InternalChartDSL.g:9431:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__OpMultiAssign__Group_5__0__Impl();
 
             state._fsp--;
@@ -29125,17 +32514,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0__Impl"
-    // InternalChartDSL.g:8428:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
+    // InternalChartDSL.g:9438:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8432:1: ( ( '<' ) )
-            // InternalChartDSL.g:8433:1: ( '<' )
+            // InternalChartDSL.g:9442:1: ( ( '<' ) )
+            // InternalChartDSL.g:9443:1: ( '<' )
             {
-            // InternalChartDSL.g:8433:1: ( '<' )
-            // InternalChartDSL.g:8434:2: '<'
+            // InternalChartDSL.g:9443:1: ( '<' )
+            // InternalChartDSL.g:9444:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
@@ -29166,16 +32555,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1"
-    // InternalChartDSL.g:8443:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
+    // InternalChartDSL.g:9453: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 {
-            // InternalChartDSL.g:8447:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
-            // InternalChartDSL.g:8448:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
+            // InternalChartDSL.g:9457:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
+            // InternalChartDSL.g:9458:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_67);
             rule__OpMultiAssign__Group_5__1__Impl();
 
             state._fsp--;
@@ -29204,17 +32593,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1__Impl"
-    // InternalChartDSL.g:8455:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
+    // InternalChartDSL.g:9465:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8459:1: ( ( '<' ) )
-            // InternalChartDSL.g:8460:1: ( '<' )
+            // InternalChartDSL.g:9469:1: ( ( '<' ) )
+            // InternalChartDSL.g:9470:1: ( '<' )
             {
-            // InternalChartDSL.g:8460:1: ( '<' )
-            // InternalChartDSL.g:8461:2: '<'
+            // InternalChartDSL.g:9470:1: ( '<' )
+            // InternalChartDSL.g:9471:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
@@ -29245,14 +32634,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2"
-    // InternalChartDSL.g:8470:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
+    // InternalChartDSL.g:9480: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 {
-            // InternalChartDSL.g:8474:1: ( rule__OpMultiAssign__Group_5__2__Impl )
-            // InternalChartDSL.g:8475:2: rule__OpMultiAssign__Group_5__2__Impl
+            // InternalChartDSL.g:9484:1: ( rule__OpMultiAssign__Group_5__2__Impl )
+            // InternalChartDSL.g:9485:2: rule__OpMultiAssign__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_5__2__Impl();
@@ -29278,17 +32667,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2__Impl"
-    // InternalChartDSL.g:8481:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
+    // InternalChartDSL.g:9491:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
     public final void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8485:1: ( ( '=' ) )
-            // InternalChartDSL.g:8486:1: ( '=' )
+            // InternalChartDSL.g:9495:1: ( ( '=' ) )
+            // InternalChartDSL.g:9496:1: ( '=' )
             {
-            // InternalChartDSL.g:8486:1: ( '=' )
-            // InternalChartDSL.g:8487:2: '='
+            // InternalChartDSL.g:9496:1: ( '=' )
+            // InternalChartDSL.g:9497:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
@@ -29319,16 +32708,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0"
-    // InternalChartDSL.g:8497:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
+    // InternalChartDSL.g:9507: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 {
-            // InternalChartDSL.g:8501:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
-            // InternalChartDSL.g:8502:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
+            // InternalChartDSL.g:9511:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
+            // InternalChartDSL.g:9512:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
             {
-            pushFollow(FOLLOW_69);
+            pushFollow(FOLLOW_74);
             rule__OpMultiAssign__Group_6__0__Impl();
 
             state._fsp--;
@@ -29357,17 +32746,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0__Impl"
-    // InternalChartDSL.g:8509:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
+    // InternalChartDSL.g:9519:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
     public final void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8513:1: ( ( '>' ) )
-            // InternalChartDSL.g:8514:1: ( '>' )
+            // InternalChartDSL.g:9523:1: ( ( '>' ) )
+            // InternalChartDSL.g:9524:1: ( '>' )
             {
-            // InternalChartDSL.g:8514:1: ( '>' )
-            // InternalChartDSL.g:8515:2: '>'
+            // InternalChartDSL.g:9524:1: ( '>' )
+            // InternalChartDSL.g:9525:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
@@ -29398,16 +32787,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1"
-    // InternalChartDSL.g:8524:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
+    // InternalChartDSL.g:9534: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 {
-            // InternalChartDSL.g:8528:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
-            // InternalChartDSL.g:8529:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
+            // InternalChartDSL.g:9538:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
+            // InternalChartDSL.g:9539:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
             {
-            pushFollow(FOLLOW_69);
+            pushFollow(FOLLOW_74);
             rule__OpMultiAssign__Group_6__1__Impl();
 
             state._fsp--;
@@ -29436,31 +32825,31 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1__Impl"
-    // InternalChartDSL.g:8536:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
+    // InternalChartDSL.g:9546:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
     public final void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8540:1: ( ( ( '>' )? ) )
-            // InternalChartDSL.g:8541:1: ( ( '>' )? )
+            // InternalChartDSL.g:9550:1: ( ( ( '>' )? ) )
+            // InternalChartDSL.g:9551:1: ( ( '>' )? )
             {
-            // InternalChartDSL.g:8541:1: ( ( '>' )? )
-            // InternalChartDSL.g:8542:2: ( '>' )?
+            // InternalChartDSL.g:9551:1: ( ( '>' )? )
+            // InternalChartDSL.g:9552:2: ( '>' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
             }
-            // InternalChartDSL.g:8543:2: ( '>' )?
-            int alt85=2;
-            int LA85_0 = input.LA(1);
+            // InternalChartDSL.g:9553:2: ( '>' )?
+            int alt98=2;
+            int LA98_0 = input.LA(1);
 
-            if ( (LA85_0==26) ) {
-                alt85=1;
+            if ( (LA98_0==26) ) {
+                alt98=1;
             }
-            switch (alt85) {
+            switch (alt98) {
                 case 1 :
-                    // InternalChartDSL.g:8543:3: '>'
+                    // InternalChartDSL.g:9553:3: '>'
                     {
                     match(input,26,FOLLOW_2); if (state.failed) return ;
 
@@ -29494,14 +32883,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2"
-    // InternalChartDSL.g:8551:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
+    // InternalChartDSL.g:9561: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 {
-            // InternalChartDSL.g:8555:1: ( rule__OpMultiAssign__Group_6__2__Impl )
-            // InternalChartDSL.g:8556:2: rule__OpMultiAssign__Group_6__2__Impl
+            // InternalChartDSL.g:9565:1: ( rule__OpMultiAssign__Group_6__2__Impl )
+            // InternalChartDSL.g:9566:2: rule__OpMultiAssign__Group_6__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_6__2__Impl();
@@ -29527,17 +32916,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2__Impl"
-    // InternalChartDSL.g:8562:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
+    // InternalChartDSL.g:9572:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
     public final void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8566:1: ( ( '>=' ) )
-            // InternalChartDSL.g:8567:1: ( '>=' )
+            // InternalChartDSL.g:9576:1: ( ( '>=' ) )
+            // InternalChartDSL.g:9577:1: ( '>=' )
             {
-            // InternalChartDSL.g:8567:1: ( '>=' )
-            // InternalChartDSL.g:8568:2: '>='
+            // InternalChartDSL.g:9577:1: ( '>=' )
+            // InternalChartDSL.g:9578:2: '>='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
@@ -29568,16 +32957,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0"
-    // InternalChartDSL.g:8578:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
+    // InternalChartDSL.g:9588: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 {
-            // InternalChartDSL.g:8582:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
-            // InternalChartDSL.g:8583:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
+            // InternalChartDSL.g:9592:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
+            // InternalChartDSL.g:9593:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_75);
             rule__XOrExpression__Group__0__Impl();
 
             state._fsp--;
@@ -29606,17 +32995,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0__Impl"
-    // InternalChartDSL.g:8590:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
+    // InternalChartDSL.g:9600:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8594:1: ( ( ruleXAndExpression ) )
-            // InternalChartDSL.g:8595:1: ( ruleXAndExpression )
+            // InternalChartDSL.g:9604:1: ( ( ruleXAndExpression ) )
+            // InternalChartDSL.g:9605:1: ( ruleXAndExpression )
             {
-            // InternalChartDSL.g:8595:1: ( ruleXAndExpression )
-            // InternalChartDSL.g:8596:2: ruleXAndExpression
+            // InternalChartDSL.g:9605:1: ( ruleXAndExpression )
+            // InternalChartDSL.g:9606:2: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
@@ -29651,14 +33040,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1"
-    // InternalChartDSL.g:8605:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
+    // InternalChartDSL.g:9615:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
     public final void rule__XOrExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8609:1: ( rule__XOrExpression__Group__1__Impl )
-            // InternalChartDSL.g:8610:2: rule__XOrExpression__Group__1__Impl
+            // InternalChartDSL.g:9619:1: ( rule__XOrExpression__Group__1__Impl )
+            // InternalChartDSL.g:9620:2: rule__XOrExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__1__Impl();
@@ -29684,43 +33073,43 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1__Impl"
-    // InternalChartDSL.g:8616:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
+    // InternalChartDSL.g:9626: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 {
-            // InternalChartDSL.g:8620:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
-            // InternalChartDSL.g:8621:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalChartDSL.g:9630:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
+            // InternalChartDSL.g:9631:1: ( ( rule__XOrExpression__Group_1__0 )* )
             {
-            // InternalChartDSL.g:8621:1: ( ( rule__XOrExpression__Group_1__0 )* )
-            // InternalChartDSL.g:8622:2: ( rule__XOrExpression__Group_1__0 )*
+            // InternalChartDSL.g:9631:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalChartDSL.g:9632:2: ( rule__XOrExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:8623:2: ( rule__XOrExpression__Group_1__0 )*
-            loop86:
+            // InternalChartDSL.g:9633:2: ( rule__XOrExpression__Group_1__0 )*
+            loop99:
             do {
-                int alt86=2;
-                int LA86_0 = input.LA(1);
+                int alt99=2;
+                int LA99_0 = input.LA(1);
 
-                if ( (LA86_0==14) ) {
-                    int LA86_2 = input.LA(2);
+                if ( (LA99_0==14) ) {
+                    int LA99_2 = input.LA(2);
 
-                    if ( (synpred148_InternalChartDSL()) ) {
-                        alt86=1;
+                    if ( (synpred166_InternalChartDSL()) ) {
+                        alt99=1;
                     }
 
 
                 }
 
 
-                switch (alt86) {
+                switch (alt99) {
             	case 1 :
-            	    // InternalChartDSL.g:8623:3: rule__XOrExpression__Group_1__0
+            	    // InternalChartDSL.g:9633:3: rule__XOrExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_71);
+            	    pushFollow(FOLLOW_76);
             	    rule__XOrExpression__Group_1__0();
 
             	    state._fsp--;
@@ -29730,7 +33119,7 @@
             	    break;
 
             	default :
-            	    break loop86;
+            	    break loop99;
                 }
             } while (true);
 
@@ -29759,16 +33148,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0"
-    // InternalChartDSL.g:8632:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
+    // InternalChartDSL.g:9642: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 {
-            // InternalChartDSL.g:8636:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
-            // InternalChartDSL.g:8637:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
+            // InternalChartDSL.g:9646:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
+            // InternalChartDSL.g:9647:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XOrExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -29797,23 +33186,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0__Impl"
-    // InternalChartDSL.g:8644:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
+    // InternalChartDSL.g:9654: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 {
-            // InternalChartDSL.g:8648:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
-            // InternalChartDSL.g:8649:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:9658:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
+            // InternalChartDSL.g:9659:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
             {
-            // InternalChartDSL.g:8649:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
-            // InternalChartDSL.g:8650:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalChartDSL.g:9659:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:9660:2: ( rule__XOrExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
             }
-            // InternalChartDSL.g:8651:2: ( rule__XOrExpression__Group_1_0__0 )
-            // InternalChartDSL.g:8651:3: rule__XOrExpression__Group_1_0__0
+            // InternalChartDSL.g:9661:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalChartDSL.g:9661:3: rule__XOrExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0();
@@ -29848,14 +33237,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1"
-    // InternalChartDSL.g:8659:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
+    // InternalChartDSL.g:9669: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 {
-            // InternalChartDSL.g:8663:1: ( rule__XOrExpression__Group_1__1__Impl )
-            // InternalChartDSL.g:8664:2: rule__XOrExpression__Group_1__1__Impl
+            // InternalChartDSL.g:9673:1: ( rule__XOrExpression__Group_1__1__Impl )
+            // InternalChartDSL.g:9674:2: rule__XOrExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1__1__Impl();
@@ -29881,23 +33270,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1__Impl"
-    // InternalChartDSL.g:8670:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalChartDSL.g:9680: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 {
-            // InternalChartDSL.g:8674:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalChartDSL.g:8675:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:9684:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalChartDSL.g:9685:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalChartDSL.g:8675:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
-            // InternalChartDSL.g:8676:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:9685:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:9686:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalChartDSL.g:8677:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
-            // InternalChartDSL.g:8677:3: rule__XOrExpression__RightOperandAssignment_1_1
+            // InternalChartDSL.g:9687:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:9687:3: rule__XOrExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__RightOperandAssignment_1_1();
@@ -29932,14 +33321,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0"
-    // InternalChartDSL.g:8686:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
+    // InternalChartDSL.g:9696: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 {
-            // InternalChartDSL.g:8690:1: ( rule__XOrExpression__Group_1_0__0__Impl )
-            // InternalChartDSL.g:8691:2: rule__XOrExpression__Group_1_0__0__Impl
+            // InternalChartDSL.g:9700:1: ( rule__XOrExpression__Group_1_0__0__Impl )
+            // InternalChartDSL.g:9701:2: rule__XOrExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0__Impl();
@@ -29965,23 +33354,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0__Impl"
-    // InternalChartDSL.g:8697:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:9707: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 {
-            // InternalChartDSL.g:8701:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
-            // InternalChartDSL.g:8702:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:9711:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
+            // InternalChartDSL.g:9712:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:8702:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
-            // InternalChartDSL.g:8703:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:9712:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:9713:2: ( rule__XOrExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalChartDSL.g:8704:2: ( rule__XOrExpression__Group_1_0_0__0 )
-            // InternalChartDSL.g:8704:3: rule__XOrExpression__Group_1_0_0__0
+            // InternalChartDSL.g:9714:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:9714:3: rule__XOrExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__0();
@@ -30016,16 +33405,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0"
-    // InternalChartDSL.g:8713:1: rule__XOrExpression__Group_1_0_0__0 : rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 ;
+    // InternalChartDSL.g:9723: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 {
-            // InternalChartDSL.g:8717:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
-            // InternalChartDSL.g:8718:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
+            // InternalChartDSL.g:9727:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
+            // InternalChartDSL.g:9728:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_75);
             rule__XOrExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -30054,23 +33443,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0__Impl"
-    // InternalChartDSL.g:8725:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:9735: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 {
-            // InternalChartDSL.g:8729:1: ( ( () ) )
-            // InternalChartDSL.g:8730:1: ( () )
+            // InternalChartDSL.g:9739:1: ( ( () ) )
+            // InternalChartDSL.g:9740:1: ( () )
             {
-            // InternalChartDSL.g:8730:1: ( () )
-            // InternalChartDSL.g:8731:2: ()
+            // InternalChartDSL.g:9740:1: ( () )
+            // InternalChartDSL.g:9741:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalChartDSL.g:8732:2: ()
-            // InternalChartDSL.g:8732:3: 
+            // InternalChartDSL.g:9742:2: ()
+            // InternalChartDSL.g:9742:3: 
             {
             }
 
@@ -30095,14 +33484,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1"
-    // InternalChartDSL.g:8740:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
+    // InternalChartDSL.g:9750: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 {
-            // InternalChartDSL.g:8744:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
-            // InternalChartDSL.g:8745:2: rule__XOrExpression__Group_1_0_0__1__Impl
+            // InternalChartDSL.g:9754:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
+            // InternalChartDSL.g:9755:2: rule__XOrExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__1__Impl();
@@ -30128,23 +33517,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1__Impl"
-    // InternalChartDSL.g:8751:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalChartDSL.g:9761: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 {
-            // InternalChartDSL.g:8755:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalChartDSL.g:8756:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:9765:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalChartDSL.g:9766:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalChartDSL.g:8756:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalChartDSL.g:8757:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:9766:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:9767:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalChartDSL.g:8758:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
-            // InternalChartDSL.g:8758:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
+            // InternalChartDSL.g:9768:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:9768:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__FeatureAssignment_1_0_0_1();
@@ -30179,16 +33568,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0"
-    // InternalChartDSL.g:8767:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
+    // InternalChartDSL.g:9777: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 {
-            // InternalChartDSL.g:8771:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
-            // InternalChartDSL.g:8772:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
+            // InternalChartDSL.g:9781:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
+            // InternalChartDSL.g:9782:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
             {
-            pushFollow(FOLLOW_72);
+            pushFollow(FOLLOW_77);
             rule__XAndExpression__Group__0__Impl();
 
             state._fsp--;
@@ -30217,17 +33606,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0__Impl"
-    // InternalChartDSL.g:8779:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
+    // InternalChartDSL.g:9789:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8783:1: ( ( ruleXEqualityExpression ) )
-            // InternalChartDSL.g:8784:1: ( ruleXEqualityExpression )
+            // InternalChartDSL.g:9793:1: ( ( ruleXEqualityExpression ) )
+            // InternalChartDSL.g:9794:1: ( ruleXEqualityExpression )
             {
-            // InternalChartDSL.g:8784:1: ( ruleXEqualityExpression )
-            // InternalChartDSL.g:8785:2: ruleXEqualityExpression
+            // InternalChartDSL.g:9794:1: ( ruleXEqualityExpression )
+            // InternalChartDSL.g:9795:2: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
@@ -30262,14 +33651,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1"
-    // InternalChartDSL.g:8794:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
+    // InternalChartDSL.g:9804:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
     public final void rule__XAndExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8798:1: ( rule__XAndExpression__Group__1__Impl )
-            // InternalChartDSL.g:8799:2: rule__XAndExpression__Group__1__Impl
+            // InternalChartDSL.g:9808:1: ( rule__XAndExpression__Group__1__Impl )
+            // InternalChartDSL.g:9809:2: rule__XAndExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__1__Impl();
@@ -30295,43 +33684,43 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1__Impl"
-    // InternalChartDSL.g:8805:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
+    // InternalChartDSL.g:9815: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 {
-            // InternalChartDSL.g:8809:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
-            // InternalChartDSL.g:8810:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalChartDSL.g:9819:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
+            // InternalChartDSL.g:9820:1: ( ( rule__XAndExpression__Group_1__0 )* )
             {
-            // InternalChartDSL.g:8810:1: ( ( rule__XAndExpression__Group_1__0 )* )
-            // InternalChartDSL.g:8811:2: ( rule__XAndExpression__Group_1__0 )*
+            // InternalChartDSL.g:9820:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalChartDSL.g:9821:2: ( rule__XAndExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:8812:2: ( rule__XAndExpression__Group_1__0 )*
-            loop87:
+            // InternalChartDSL.g:9822:2: ( rule__XAndExpression__Group_1__0 )*
+            loop100:
             do {
-                int alt87=2;
-                int LA87_0 = input.LA(1);
+                int alt100=2;
+                int LA100_0 = input.LA(1);
 
-                if ( (LA87_0==15) ) {
-                    int LA87_2 = input.LA(2);
+                if ( (LA100_0==15) ) {
+                    int LA100_2 = input.LA(2);
 
-                    if ( (synpred149_InternalChartDSL()) ) {
-                        alt87=1;
+                    if ( (synpred167_InternalChartDSL()) ) {
+                        alt100=1;
                     }
 
 
                 }
 
 
-                switch (alt87) {
+                switch (alt100) {
             	case 1 :
-            	    // InternalChartDSL.g:8812:3: rule__XAndExpression__Group_1__0
+            	    // InternalChartDSL.g:9822:3: rule__XAndExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_73);
+            	    pushFollow(FOLLOW_78);
             	    rule__XAndExpression__Group_1__0();
 
             	    state._fsp--;
@@ -30341,7 +33730,7 @@
             	    break;
 
             	default :
-            	    break loop87;
+            	    break loop100;
                 }
             } while (true);
 
@@ -30370,16 +33759,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0"
-    // InternalChartDSL.g:8821:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
+    // InternalChartDSL.g:9831: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 {
-            // InternalChartDSL.g:8825:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
-            // InternalChartDSL.g:8826:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
+            // InternalChartDSL.g:9835:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
+            // InternalChartDSL.g:9836:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XAndExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -30408,23 +33797,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0__Impl"
-    // InternalChartDSL.g:8833:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
+    // InternalChartDSL.g:9843: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 {
-            // InternalChartDSL.g:8837:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
-            // InternalChartDSL.g:8838:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:9847:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
+            // InternalChartDSL.g:9848:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
             {
-            // InternalChartDSL.g:8838:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
-            // InternalChartDSL.g:8839:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalChartDSL.g:9848:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:9849:2: ( rule__XAndExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
             }
-            // InternalChartDSL.g:8840:2: ( rule__XAndExpression__Group_1_0__0 )
-            // InternalChartDSL.g:8840:3: rule__XAndExpression__Group_1_0__0
+            // InternalChartDSL.g:9850:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalChartDSL.g:9850:3: rule__XAndExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0();
@@ -30459,14 +33848,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1"
-    // InternalChartDSL.g:8848:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
+    // InternalChartDSL.g:9858: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 {
-            // InternalChartDSL.g:8852:1: ( rule__XAndExpression__Group_1__1__Impl )
-            // InternalChartDSL.g:8853:2: rule__XAndExpression__Group_1__1__Impl
+            // InternalChartDSL.g:9862:1: ( rule__XAndExpression__Group_1__1__Impl )
+            // InternalChartDSL.g:9863:2: rule__XAndExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1__1__Impl();
@@ -30492,23 +33881,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1__Impl"
-    // InternalChartDSL.g:8859:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalChartDSL.g:9869: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 {
-            // InternalChartDSL.g:8863:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalChartDSL.g:8864:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:9873:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalChartDSL.g:9874:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalChartDSL.g:8864:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
-            // InternalChartDSL.g:8865:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:9874:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:9875:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalChartDSL.g:8866:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
-            // InternalChartDSL.g:8866:3: rule__XAndExpression__RightOperandAssignment_1_1
+            // InternalChartDSL.g:9876:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:9876:3: rule__XAndExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__RightOperandAssignment_1_1();
@@ -30543,14 +33932,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0"
-    // InternalChartDSL.g:8875:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
+    // InternalChartDSL.g:9885: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 {
-            // InternalChartDSL.g:8879:1: ( rule__XAndExpression__Group_1_0__0__Impl )
-            // InternalChartDSL.g:8880:2: rule__XAndExpression__Group_1_0__0__Impl
+            // InternalChartDSL.g:9889:1: ( rule__XAndExpression__Group_1_0__0__Impl )
+            // InternalChartDSL.g:9890:2: rule__XAndExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0__Impl();
@@ -30576,23 +33965,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0__Impl"
-    // InternalChartDSL.g:8886:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:9896: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 {
-            // InternalChartDSL.g:8890:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
-            // InternalChartDSL.g:8891:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:9900:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
+            // InternalChartDSL.g:9901:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:8891:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
-            // InternalChartDSL.g:8892:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:9901:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:9902:2: ( rule__XAndExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalChartDSL.g:8893:2: ( rule__XAndExpression__Group_1_0_0__0 )
-            // InternalChartDSL.g:8893:3: rule__XAndExpression__Group_1_0_0__0
+            // InternalChartDSL.g:9903:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:9903:3: rule__XAndExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__0();
@@ -30627,16 +34016,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0"
-    // InternalChartDSL.g:8902:1: rule__XAndExpression__Group_1_0_0__0 : rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 ;
+    // InternalChartDSL.g:9912: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 {
-            // InternalChartDSL.g:8906:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
-            // InternalChartDSL.g:8907:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
+            // InternalChartDSL.g:9916:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
+            // InternalChartDSL.g:9917:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_72);
+            pushFollow(FOLLOW_77);
             rule__XAndExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -30665,23 +34054,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0__Impl"
-    // InternalChartDSL.g:8914:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:9924: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 {
-            // InternalChartDSL.g:8918:1: ( ( () ) )
-            // InternalChartDSL.g:8919:1: ( () )
+            // InternalChartDSL.g:9928:1: ( ( () ) )
+            // InternalChartDSL.g:9929:1: ( () )
             {
-            // InternalChartDSL.g:8919:1: ( () )
-            // InternalChartDSL.g:8920:2: ()
+            // InternalChartDSL.g:9929:1: ( () )
+            // InternalChartDSL.g:9930:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalChartDSL.g:8921:2: ()
-            // InternalChartDSL.g:8921:3: 
+            // InternalChartDSL.g:9931:2: ()
+            // InternalChartDSL.g:9931:3: 
             {
             }
 
@@ -30706,14 +34095,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1"
-    // InternalChartDSL.g:8929:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
+    // InternalChartDSL.g:9939: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 {
-            // InternalChartDSL.g:8933:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
-            // InternalChartDSL.g:8934:2: rule__XAndExpression__Group_1_0_0__1__Impl
+            // InternalChartDSL.g:9943:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
+            // InternalChartDSL.g:9944:2: rule__XAndExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__1__Impl();
@@ -30739,23 +34128,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1__Impl"
-    // InternalChartDSL.g:8940:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalChartDSL.g:9950: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 {
-            // InternalChartDSL.g:8944:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalChartDSL.g:8945:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:9954:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalChartDSL.g:9955:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalChartDSL.g:8945:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalChartDSL.g:8946:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:9955:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:9956:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalChartDSL.g:8947:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
-            // InternalChartDSL.g:8947:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
+            // InternalChartDSL.g:9957:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:9957:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__FeatureAssignment_1_0_0_1();
@@ -30790,16 +34179,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0"
-    // InternalChartDSL.g:8956:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
+    // InternalChartDSL.g:9966: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 {
-            // InternalChartDSL.g:8960:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
-            // InternalChartDSL.g:8961:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
+            // InternalChartDSL.g:9970:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
+            // InternalChartDSL.g:9971:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
             {
-            pushFollow(FOLLOW_74);
+            pushFollow(FOLLOW_79);
             rule__XEqualityExpression__Group__0__Impl();
 
             state._fsp--;
@@ -30828,17 +34217,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0__Impl"
-    // InternalChartDSL.g:8968:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
+    // InternalChartDSL.g:9978:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8972:1: ( ( ruleXRelationalExpression ) )
-            // InternalChartDSL.g:8973:1: ( ruleXRelationalExpression )
+            // InternalChartDSL.g:9982:1: ( ( ruleXRelationalExpression ) )
+            // InternalChartDSL.g:9983:1: ( ruleXRelationalExpression )
             {
-            // InternalChartDSL.g:8973:1: ( ruleXRelationalExpression )
-            // InternalChartDSL.g:8974:2: ruleXRelationalExpression
+            // InternalChartDSL.g:9983:1: ( ruleXRelationalExpression )
+            // InternalChartDSL.g:9984:2: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
@@ -30873,14 +34262,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1"
-    // InternalChartDSL.g:8983:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
+    // InternalChartDSL.g:9993:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
     public final void rule__XEqualityExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:8987:1: ( rule__XEqualityExpression__Group__1__Impl )
-            // InternalChartDSL.g:8988:2: rule__XEqualityExpression__Group__1__Impl
+            // InternalChartDSL.g:9997:1: ( rule__XEqualityExpression__Group__1__Impl )
+            // InternalChartDSL.g:9998:2: rule__XEqualityExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__1__Impl();
@@ -30906,32 +34295,32 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1__Impl"
-    // InternalChartDSL.g:8994:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
+    // InternalChartDSL.g:10004: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 {
-            // InternalChartDSL.g:8998:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
-            // InternalChartDSL.g:8999:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalChartDSL.g:10008:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
+            // InternalChartDSL.g:10009:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
             {
-            // InternalChartDSL.g:8999:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
-            // InternalChartDSL.g:9000:2: ( rule__XEqualityExpression__Group_1__0 )*
+            // InternalChartDSL.g:10009:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalChartDSL.g:10010:2: ( rule__XEqualityExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:9001:2: ( rule__XEqualityExpression__Group_1__0 )*
-            loop88:
+            // InternalChartDSL.g:10011:2: ( rule__XEqualityExpression__Group_1__0 )*
+            loop101:
             do {
-                int alt88=2;
+                int alt101=2;
                 switch ( input.LA(1) ) {
                 case 21:
                     {
-                    int LA88_2 = input.LA(2);
+                    int LA101_2 = input.LA(2);
 
-                    if ( (synpred150_InternalChartDSL()) ) {
-                        alt88=1;
+                    if ( (synpred168_InternalChartDSL()) ) {
+                        alt101=1;
                     }
 
 
@@ -30939,10 +34328,10 @@
                     break;
                 case 22:
                     {
-                    int LA88_3 = input.LA(2);
+                    int LA101_3 = input.LA(2);
 
-                    if ( (synpred150_InternalChartDSL()) ) {
-                        alt88=1;
+                    if ( (synpred168_InternalChartDSL()) ) {
+                        alt101=1;
                     }
 
 
@@ -30950,10 +34339,10 @@
                     break;
                 case 23:
                     {
-                    int LA88_4 = input.LA(2);
+                    int LA101_4 = input.LA(2);
 
-                    if ( (synpred150_InternalChartDSL()) ) {
-                        alt88=1;
+                    if ( (synpred168_InternalChartDSL()) ) {
+                        alt101=1;
                     }
 
 
@@ -30961,10 +34350,10 @@
                     break;
                 case 24:
                     {
-                    int LA88_5 = input.LA(2);
+                    int LA101_5 = input.LA(2);
 
-                    if ( (synpred150_InternalChartDSL()) ) {
-                        alt88=1;
+                    if ( (synpred168_InternalChartDSL()) ) {
+                        alt101=1;
                     }
 
 
@@ -30973,11 +34362,11 @@
 
                 }
 
-                switch (alt88) {
+                switch (alt101) {
             	case 1 :
-            	    // InternalChartDSL.g:9001:3: rule__XEqualityExpression__Group_1__0
+            	    // InternalChartDSL.g:10011:3: rule__XEqualityExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_75);
+            	    pushFollow(FOLLOW_80);
             	    rule__XEqualityExpression__Group_1__0();
 
             	    state._fsp--;
@@ -30987,7 +34376,7 @@
             	    break;
 
             	default :
-            	    break loop88;
+            	    break loop101;
                 }
             } while (true);
 
@@ -31016,16 +34405,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0"
-    // InternalChartDSL.g:9010:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
+    // InternalChartDSL.g:10020: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 {
-            // InternalChartDSL.g:9014:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
-            // InternalChartDSL.g:9015:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
+            // InternalChartDSL.g:10024:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
+            // InternalChartDSL.g:10025:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XEqualityExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -31054,23 +34443,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0__Impl"
-    // InternalChartDSL.g:9022:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
+    // InternalChartDSL.g:10032: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 {
-            // InternalChartDSL.g:9026:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
-            // InternalChartDSL.g:9027:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:10036:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
+            // InternalChartDSL.g:10037:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
             {
-            // InternalChartDSL.g:9027:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
-            // InternalChartDSL.g:9028:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalChartDSL.g:10037:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:10038:2: ( rule__XEqualityExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
             }
-            // InternalChartDSL.g:9029:2: ( rule__XEqualityExpression__Group_1_0__0 )
-            // InternalChartDSL.g:9029:3: rule__XEqualityExpression__Group_1_0__0
+            // InternalChartDSL.g:10039:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalChartDSL.g:10039:3: rule__XEqualityExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0();
@@ -31105,14 +34494,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1"
-    // InternalChartDSL.g:9037:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
+    // InternalChartDSL.g:10047: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 {
-            // InternalChartDSL.g:9041:1: ( rule__XEqualityExpression__Group_1__1__Impl )
-            // InternalChartDSL.g:9042:2: rule__XEqualityExpression__Group_1__1__Impl
+            // InternalChartDSL.g:10051:1: ( rule__XEqualityExpression__Group_1__1__Impl )
+            // InternalChartDSL.g:10052:2: rule__XEqualityExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1__1__Impl();
@@ -31138,23 +34527,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1__Impl"
-    // InternalChartDSL.g:9048:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalChartDSL.g:10058: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 {
-            // InternalChartDSL.g:9052:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalChartDSL.g:9053:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:10062:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalChartDSL.g:10063:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalChartDSL.g:9053:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
-            // InternalChartDSL.g:9054:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:10063:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:10064:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalChartDSL.g:9055:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
-            // InternalChartDSL.g:9055:3: rule__XEqualityExpression__RightOperandAssignment_1_1
+            // InternalChartDSL.g:10065:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:10065:3: rule__XEqualityExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__RightOperandAssignment_1_1();
@@ -31189,14 +34578,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0"
-    // InternalChartDSL.g:9064:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
+    // InternalChartDSL.g:10074: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 {
-            // InternalChartDSL.g:9068:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
-            // InternalChartDSL.g:9069:2: rule__XEqualityExpression__Group_1_0__0__Impl
+            // InternalChartDSL.g:10078:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
+            // InternalChartDSL.g:10079:2: rule__XEqualityExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0__Impl();
@@ -31222,23 +34611,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0__Impl"
-    // InternalChartDSL.g:9075:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:10085: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 {
-            // InternalChartDSL.g:9079:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
-            // InternalChartDSL.g:9080:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:10089:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
+            // InternalChartDSL.g:10090:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:9080:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
-            // InternalChartDSL.g:9081:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:10090:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:10091:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalChartDSL.g:9082:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
-            // InternalChartDSL.g:9082:3: rule__XEqualityExpression__Group_1_0_0__0
+            // InternalChartDSL.g:10092:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:10092:3: rule__XEqualityExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__0();
@@ -31273,16 +34662,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0"
-    // InternalChartDSL.g:9091:1: rule__XEqualityExpression__Group_1_0_0__0 : rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 ;
+    // InternalChartDSL.g:10101: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 {
-            // InternalChartDSL.g:9095:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
-            // InternalChartDSL.g:9096:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
+            // InternalChartDSL.g:10105:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
+            // InternalChartDSL.g:10106:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_74);
+            pushFollow(FOLLOW_79);
             rule__XEqualityExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -31311,23 +34700,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0__Impl"
-    // InternalChartDSL.g:9103:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:10113: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 {
-            // InternalChartDSL.g:9107:1: ( ( () ) )
-            // InternalChartDSL.g:9108:1: ( () )
+            // InternalChartDSL.g:10117:1: ( ( () ) )
+            // InternalChartDSL.g:10118:1: ( () )
             {
-            // InternalChartDSL.g:9108:1: ( () )
-            // InternalChartDSL.g:9109:2: ()
+            // InternalChartDSL.g:10118:1: ( () )
+            // InternalChartDSL.g:10119:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalChartDSL.g:9110:2: ()
-            // InternalChartDSL.g:9110:3: 
+            // InternalChartDSL.g:10120:2: ()
+            // InternalChartDSL.g:10120:3: 
             {
             }
 
@@ -31352,14 +34741,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1"
-    // InternalChartDSL.g:9118:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
+    // InternalChartDSL.g:10128: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 {
-            // InternalChartDSL.g:9122:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
-            // InternalChartDSL.g:9123:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
+            // InternalChartDSL.g:10132:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
+            // InternalChartDSL.g:10133:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__1__Impl();
@@ -31385,23 +34774,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1__Impl"
-    // InternalChartDSL.g:9129:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalChartDSL.g:10139:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XEqualityExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9133:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalChartDSL.g:9134:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:10143:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalChartDSL.g:10144:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalChartDSL.g:9134:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalChartDSL.g:9135:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:10144:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:10145:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalChartDSL.g:9136:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
-            // InternalChartDSL.g:9136:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
+            // InternalChartDSL.g:10146:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:10146:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__FeatureAssignment_1_0_0_1();
@@ -31436,16 +34825,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0"
-    // InternalChartDSL.g:9145:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
+    // InternalChartDSL.g:10155:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
     public final void rule__XRelationalExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9149:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
-            // InternalChartDSL.g:9150:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
+            // InternalChartDSL.g:10159:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
+            // InternalChartDSL.g:10160:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_81);
             rule__XRelationalExpression__Group__0__Impl();
 
             state._fsp--;
@@ -31474,17 +34863,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0__Impl"
-    // InternalChartDSL.g:9157:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
+    // InternalChartDSL.g:10167:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
     public final void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9161:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalChartDSL.g:9162:1: ( ruleXOtherOperatorExpression )
+            // InternalChartDSL.g:10171:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalChartDSL.g:10172:1: ( ruleXOtherOperatorExpression )
             {
-            // InternalChartDSL.g:9162:1: ( ruleXOtherOperatorExpression )
-            // InternalChartDSL.g:9163:2: ruleXOtherOperatorExpression
+            // InternalChartDSL.g:10172:1: ( ruleXOtherOperatorExpression )
+            // InternalChartDSL.g:10173:2: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
@@ -31519,14 +34908,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1"
-    // InternalChartDSL.g:9172:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
+    // InternalChartDSL.g:10182:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
     public final void rule__XRelationalExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9176:1: ( rule__XRelationalExpression__Group__1__Impl )
-            // InternalChartDSL.g:9177:2: rule__XRelationalExpression__Group__1__Impl
+            // InternalChartDSL.g:10186:1: ( rule__XRelationalExpression__Group__1__Impl )
+            // InternalChartDSL.g:10187:2: rule__XRelationalExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group__1__Impl();
@@ -31552,32 +34941,32 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1__Impl"
-    // InternalChartDSL.g:9183:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
+    // InternalChartDSL.g:10193:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
     public final void rule__XRelationalExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9187:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
-            // InternalChartDSL.g:9188:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalChartDSL.g:10197:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
+            // InternalChartDSL.g:10198:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
             {
-            // InternalChartDSL.g:9188:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
-            // InternalChartDSL.g:9189:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            // InternalChartDSL.g:10198:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalChartDSL.g:10199:2: ( rule__XRelationalExpression__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); 
             }
-            // InternalChartDSL.g:9190:2: ( rule__XRelationalExpression__Alternatives_1 )*
-            loop89:
+            // InternalChartDSL.g:10200:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            loop102:
             do {
-                int alt89=2;
+                int alt102=2;
                 switch ( input.LA(1) ) {
                 case 27:
                     {
-                    int LA89_2 = input.LA(2);
+                    int LA102_2 = input.LA(2);
 
-                    if ( (synpred151_InternalChartDSL()) ) {
-                        alt89=1;
+                    if ( (synpred169_InternalChartDSL()) ) {
+                        alt102=1;
                     }
 
 
@@ -31585,21 +34974,21 @@
                     break;
                 case 26:
                     {
-                    int LA89_3 = input.LA(2);
+                    int LA102_3 = input.LA(2);
 
-                    if ( (synpred151_InternalChartDSL()) ) {
-                        alt89=1;
+                    if ( (synpred169_InternalChartDSL()) ) {
+                        alt102=1;
                     }
 
 
                     }
                     break;
-                case 103:
+                case 118:
                     {
-                    int LA89_4 = input.LA(2);
+                    int LA102_4 = input.LA(2);
 
-                    if ( (synpred151_InternalChartDSL()) ) {
-                        alt89=1;
+                    if ( (synpred169_InternalChartDSL()) ) {
+                        alt102=1;
                     }
 
 
@@ -31607,10 +34996,10 @@
                     break;
                 case 25:
                     {
-                    int LA89_5 = input.LA(2);
+                    int LA102_5 = input.LA(2);
 
-                    if ( (synpred151_InternalChartDSL()) ) {
-                        alt89=1;
+                    if ( (synpred169_InternalChartDSL()) ) {
+                        alt102=1;
                     }
 
 
@@ -31619,11 +35008,11 @@
 
                 }
 
-                switch (alt89) {
+                switch (alt102) {
             	case 1 :
-            	    // InternalChartDSL.g:9190:3: rule__XRelationalExpression__Alternatives_1
+            	    // InternalChartDSL.g:10200:3: rule__XRelationalExpression__Alternatives_1
             	    {
-            	    pushFollow(FOLLOW_77);
+            	    pushFollow(FOLLOW_82);
             	    rule__XRelationalExpression__Alternatives_1();
 
             	    state._fsp--;
@@ -31633,7 +35022,7 @@
             	    break;
 
             	default :
-            	    break loop89;
+            	    break loop102;
                 }
             } while (true);
 
@@ -31662,16 +35051,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0"
-    // InternalChartDSL.g:9199:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
+    // InternalChartDSL.g:10209:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
     public final void rule__XRelationalExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9203:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
-            // InternalChartDSL.g:9204:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
+            // InternalChartDSL.g:10213:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
+            // InternalChartDSL.g:10214:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XRelationalExpression__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -31700,23 +35089,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0__Impl"
-    // InternalChartDSL.g:9211:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:10221:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9215:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
-            // InternalChartDSL.g:9216:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:10225:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
+            // InternalChartDSL.g:10226:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:9216:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
-            // InternalChartDSL.g:9217:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:10226:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:10227:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalChartDSL.g:9218:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
-            // InternalChartDSL.g:9218:3: rule__XRelationalExpression__Group_1_0_0__0
+            // InternalChartDSL.g:10228:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:10228:3: rule__XRelationalExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0();
@@ -31751,14 +35140,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1"
-    // InternalChartDSL.g:9226:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
+    // InternalChartDSL.g:10236:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9230:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
-            // InternalChartDSL.g:9231:2: rule__XRelationalExpression__Group_1_0__1__Impl
+            // InternalChartDSL.g:10240:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
+            // InternalChartDSL.g:10241:2: rule__XRelationalExpression__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0__1__Impl();
@@ -31784,23 +35173,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1__Impl"
-    // InternalChartDSL.g:9237:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
+    // InternalChartDSL.g:10247:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9241:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
-            // InternalChartDSL.g:9242:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalChartDSL.g:10251:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
+            // InternalChartDSL.g:10252:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
             {
-            // InternalChartDSL.g:9242:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
-            // InternalChartDSL.g:9243:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalChartDSL.g:10252:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalChartDSL.g:10253:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); 
             }
-            // InternalChartDSL.g:9244:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
-            // InternalChartDSL.g:9244:3: rule__XRelationalExpression__TypeAssignment_1_0_1
+            // InternalChartDSL.g:10254:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalChartDSL.g:10254:3: rule__XRelationalExpression__TypeAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__TypeAssignment_1_0_1();
@@ -31835,14 +35224,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0"
-    // InternalChartDSL.g:9253:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
+    // InternalChartDSL.g:10263:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
     public final void rule__XRelationalExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9257:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
-            // InternalChartDSL.g:9258:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
+            // InternalChartDSL.g:10267:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
+            // InternalChartDSL.g:10268:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0__Impl();
@@ -31868,23 +35257,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0__Impl"
-    // InternalChartDSL.g:9264:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
+    // InternalChartDSL.g:10274:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9268:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
-            // InternalChartDSL.g:9269:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalChartDSL.g:10278:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
+            // InternalChartDSL.g:10279:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
             {
-            // InternalChartDSL.g:9269:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
-            // InternalChartDSL.g:9270:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalChartDSL.g:10279:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalChartDSL.g:10280:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); 
             }
-            // InternalChartDSL.g:9271:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
-            // InternalChartDSL.g:9271:3: rule__XRelationalExpression__Group_1_0_0_0__0
+            // InternalChartDSL.g:10281:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalChartDSL.g:10281:3: rule__XRelationalExpression__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__0();
@@ -31919,16 +35308,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0"
-    // InternalChartDSL.g:9280:1: rule__XRelationalExpression__Group_1_0_0_0__0 : rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 ;
+    // InternalChartDSL.g:10290:1: rule__XRelationalExpression__Group_1_0_0_0__0 : rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9284:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
-            // InternalChartDSL.g:9285:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
+            // InternalChartDSL.g:10294:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
+            // InternalChartDSL.g:10295:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
             {
-            pushFollow(FOLLOW_79);
+            pushFollow(FOLLOW_84);
             rule__XRelationalExpression__Group_1_0_0_0__0__Impl();
 
             state._fsp--;
@@ -31957,23 +35346,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"
-    // InternalChartDSL.g:9292:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:10302:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9296:1: ( ( () ) )
-            // InternalChartDSL.g:9297:1: ( () )
+            // InternalChartDSL.g:10306:1: ( ( () ) )
+            // InternalChartDSL.g:10307:1: ( () )
             {
-            // InternalChartDSL.g:9297:1: ( () )
-            // InternalChartDSL.g:9298:2: ()
+            // InternalChartDSL.g:10307:1: ( () )
+            // InternalChartDSL.g:10308:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); 
             }
-            // InternalChartDSL.g:9299:2: ()
-            // InternalChartDSL.g:9299:3: 
+            // InternalChartDSL.g:10309:2: ()
+            // InternalChartDSL.g:10309:3: 
             {
             }
 
@@ -31998,14 +35387,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1"
-    // InternalChartDSL.g:9307:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
+    // InternalChartDSL.g:10317:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9311:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
-            // InternalChartDSL.g:9312:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+            // InternalChartDSL.g:10321:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
+            // InternalChartDSL.g:10322:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__1__Impl();
@@ -32031,22 +35420,22 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"
-    // InternalChartDSL.g:9318:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
+    // InternalChartDSL.g:10328:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9322:1: ( ( 'instanceof' ) )
-            // InternalChartDSL.g:9323:1: ( 'instanceof' )
+            // InternalChartDSL.g:10332:1: ( ( 'instanceof' ) )
+            // InternalChartDSL.g:10333:1: ( 'instanceof' )
             {
-            // InternalChartDSL.g:9323:1: ( 'instanceof' )
-            // InternalChartDSL.g:9324:2: 'instanceof'
+            // InternalChartDSL.g:10333:1: ( 'instanceof' )
+            // InternalChartDSL.g:10334:2: 'instanceof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
             }
-            match(input,103,FOLLOW_2); if (state.failed) return ;
+            match(input,118,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
             }
@@ -32072,16 +35461,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0"
-    // InternalChartDSL.g:9334:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
+    // InternalChartDSL.g:10344:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
     public final void rule__XRelationalExpression__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9338:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
-            // InternalChartDSL.g:9339:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
+            // InternalChartDSL.g:10348:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
+            // InternalChartDSL.g:10349:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XRelationalExpression__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -32110,23 +35499,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0__Impl"
-    // InternalChartDSL.g:9346:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
+    // InternalChartDSL.g:10356:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9350:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
-            // InternalChartDSL.g:9351:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalChartDSL.g:10360:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
+            // InternalChartDSL.g:10361:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
             {
-            // InternalChartDSL.g:9351:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
-            // InternalChartDSL.g:9352:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalChartDSL.g:10361:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalChartDSL.g:10362:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); 
             }
-            // InternalChartDSL.g:9353:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
-            // InternalChartDSL.g:9353:3: rule__XRelationalExpression__Group_1_1_0__0
+            // InternalChartDSL.g:10363:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalChartDSL.g:10363:3: rule__XRelationalExpression__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0();
@@ -32161,14 +35550,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1"
-    // InternalChartDSL.g:9361:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
+    // InternalChartDSL.g:10371:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9365:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
-            // InternalChartDSL.g:9366:2: rule__XRelationalExpression__Group_1_1__1__Impl
+            // InternalChartDSL.g:10375:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
+            // InternalChartDSL.g:10376:2: rule__XRelationalExpression__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1__1__Impl();
@@ -32194,23 +35583,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1__Impl"
-    // InternalChartDSL.g:9372:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalChartDSL.g:10382:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9376:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
-            // InternalChartDSL.g:9377:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalChartDSL.g:10386:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
+            // InternalChartDSL.g:10387:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalChartDSL.g:9377:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
-            // InternalChartDSL.g:9378:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalChartDSL.g:10387:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalChartDSL.g:10388:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalChartDSL.g:9379:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
-            // InternalChartDSL.g:9379:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
+            // InternalChartDSL.g:10389:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalChartDSL.g:10389:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__RightOperandAssignment_1_1_1();
@@ -32245,14 +35634,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0"
-    // InternalChartDSL.g:9388:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
+    // InternalChartDSL.g:10398:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
     public final void rule__XRelationalExpression__Group_1_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9392:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
-            // InternalChartDSL.g:9393:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
+            // InternalChartDSL.g:10402:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
+            // InternalChartDSL.g:10403:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0__Impl();
@@ -32278,23 +35667,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0__Impl"
-    // InternalChartDSL.g:9399:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:10409:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9403:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
-            // InternalChartDSL.g:9404:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalChartDSL.g:10413:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
+            // InternalChartDSL.g:10414:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:9404:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
-            // InternalChartDSL.g:9405:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalChartDSL.g:10414:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalChartDSL.g:10415:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); 
             }
-            // InternalChartDSL.g:9406:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
-            // InternalChartDSL.g:9406:3: rule__XRelationalExpression__Group_1_1_0_0__0
+            // InternalChartDSL.g:10416:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalChartDSL.g:10416:3: rule__XRelationalExpression__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__0();
@@ -32329,16 +35718,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0"
-    // InternalChartDSL.g:9415:1: rule__XRelationalExpression__Group_1_1_0_0__0 : rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 ;
+    // InternalChartDSL.g:10425:1: rule__XRelationalExpression__Group_1_1_0_0__0 : rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9419:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
-            // InternalChartDSL.g:9420:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
+            // InternalChartDSL.g:10429:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
+            // InternalChartDSL.g:10430:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_81);
             rule__XRelationalExpression__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -32367,23 +35756,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"
-    // InternalChartDSL.g:9427:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:10437:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9431:1: ( ( () ) )
-            // InternalChartDSL.g:9432:1: ( () )
+            // InternalChartDSL.g:10441:1: ( ( () ) )
+            // InternalChartDSL.g:10442:1: ( () )
             {
-            // InternalChartDSL.g:9432:1: ( () )
-            // InternalChartDSL.g:9433:2: ()
+            // InternalChartDSL.g:10442:1: ( () )
+            // InternalChartDSL.g:10443:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalChartDSL.g:9434:2: ()
-            // InternalChartDSL.g:9434:3: 
+            // InternalChartDSL.g:10444:2: ()
+            // InternalChartDSL.g:10444:3: 
             {
             }
 
@@ -32408,14 +35797,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1"
-    // InternalChartDSL.g:9442:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
+    // InternalChartDSL.g:10452:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9446:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
-            // InternalChartDSL.g:9447:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+            // InternalChartDSL.g:10456:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
+            // InternalChartDSL.g:10457:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__1__Impl();
@@ -32441,23 +35830,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"
-    // InternalChartDSL.g:9453:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalChartDSL.g:10463:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9457:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalChartDSL.g:9458:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalChartDSL.g:10467:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalChartDSL.g:10468:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalChartDSL.g:9458:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalChartDSL.g:9459:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalChartDSL.g:10468:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalChartDSL.g:10469:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalChartDSL.g:9460:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
-            // InternalChartDSL.g:9460:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
+            // InternalChartDSL.g:10470:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalChartDSL.g:10470:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1();
@@ -32492,16 +35881,16 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0"
-    // InternalChartDSL.g:9469:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
+    // InternalChartDSL.g:10479:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
     public final void rule__OpCompare__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9473:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
-            // InternalChartDSL.g:9474:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
+            // InternalChartDSL.g:10483:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
+            // InternalChartDSL.g:10484:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_67);
             rule__OpCompare__Group_1__0__Impl();
 
             state._fsp--;
@@ -32530,17 +35919,17 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0__Impl"
-    // InternalChartDSL.g:9481:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
+    // InternalChartDSL.g:10491:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
     public final void rule__OpCompare__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9485:1: ( ( '<' ) )
-            // InternalChartDSL.g:9486:1: ( '<' )
+            // InternalChartDSL.g:10495:1: ( ( '<' ) )
+            // InternalChartDSL.g:10496:1: ( '<' )
             {
-            // InternalChartDSL.g:9486:1: ( '<' )
-            // InternalChartDSL.g:9487:2: '<'
+            // InternalChartDSL.g:10496:1: ( '<' )
+            // InternalChartDSL.g:10497:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
@@ -32571,14 +35960,14 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1"
-    // InternalChartDSL.g:9496:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
+    // InternalChartDSL.g:10506:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
     public final void rule__OpCompare__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9500:1: ( rule__OpCompare__Group_1__1__Impl )
-            // InternalChartDSL.g:9501:2: rule__OpCompare__Group_1__1__Impl
+            // InternalChartDSL.g:10510:1: ( rule__OpCompare__Group_1__1__Impl )
+            // InternalChartDSL.g:10511:2: rule__OpCompare__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpCompare__Group_1__1__Impl();
@@ -32604,17 +35993,17 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1__Impl"
-    // InternalChartDSL.g:9507:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
+    // InternalChartDSL.g:10517:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
     public final void rule__OpCompare__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9511:1: ( ( '=' ) )
-            // InternalChartDSL.g:9512:1: ( '=' )
+            // InternalChartDSL.g:10521:1: ( ( '=' ) )
+            // InternalChartDSL.g:10522:1: ( '=' )
             {
-            // InternalChartDSL.g:9512:1: ( '=' )
-            // InternalChartDSL.g:9513:2: '='
+            // InternalChartDSL.g:10522:1: ( '=' )
+            // InternalChartDSL.g:10523:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
@@ -32645,16 +36034,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0"
-    // InternalChartDSL.g:9523:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
+    // InternalChartDSL.g:10533:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
     public final void rule__XOtherOperatorExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9527:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
-            // InternalChartDSL.g:9528:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
+            // InternalChartDSL.g:10537:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
+            // InternalChartDSL.g:10538:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
             {
-            pushFollow(FOLLOW_80);
+            pushFollow(FOLLOW_85);
             rule__XOtherOperatorExpression__Group__0__Impl();
 
             state._fsp--;
@@ -32683,17 +36072,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0__Impl"
-    // InternalChartDSL.g:9535:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
+    // InternalChartDSL.g:10545:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9539:1: ( ( ruleXAdditiveExpression ) )
-            // InternalChartDSL.g:9540:1: ( ruleXAdditiveExpression )
+            // InternalChartDSL.g:10549:1: ( ( ruleXAdditiveExpression ) )
+            // InternalChartDSL.g:10550:1: ( ruleXAdditiveExpression )
             {
-            // InternalChartDSL.g:9540:1: ( ruleXAdditiveExpression )
-            // InternalChartDSL.g:9541:2: ruleXAdditiveExpression
+            // InternalChartDSL.g:10550:1: ( ruleXAdditiveExpression )
+            // InternalChartDSL.g:10551:2: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
@@ -32728,14 +36117,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1"
-    // InternalChartDSL.g:9550:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
+    // InternalChartDSL.g:10560:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9554:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
-            // InternalChartDSL.g:9555:2: rule__XOtherOperatorExpression__Group__1__Impl
+            // InternalChartDSL.g:10564:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
+            // InternalChartDSL.g:10565:2: rule__XOtherOperatorExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group__1__Impl();
@@ -32761,31 +36150,31 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1__Impl"
-    // InternalChartDSL.g:9561:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
+    // InternalChartDSL.g:10571:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
     public final void rule__XOtherOperatorExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9565:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
-            // InternalChartDSL.g:9566:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalChartDSL.g:10575:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
+            // InternalChartDSL.g:10576:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
             {
-            // InternalChartDSL.g:9566:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
-            // InternalChartDSL.g:9567:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            // InternalChartDSL.g:10576:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalChartDSL.g:10577:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:9568:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
-            loop90:
+            // InternalChartDSL.g:10578:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            loop103:
             do {
-                int alt90=2;
-                alt90 = dfa90.predict(input);
-                switch (alt90) {
+                int alt103=2;
+                alt103 = dfa103.predict(input);
+                switch (alt103) {
             	case 1 :
-            	    // InternalChartDSL.g:9568:3: rule__XOtherOperatorExpression__Group_1__0
+            	    // InternalChartDSL.g:10578:3: rule__XOtherOperatorExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_81);
+            	    pushFollow(FOLLOW_86);
             	    rule__XOtherOperatorExpression__Group_1__0();
 
             	    state._fsp--;
@@ -32795,7 +36184,7 @@
             	    break;
 
             	default :
-            	    break loop90;
+            	    break loop103;
                 }
             } while (true);
 
@@ -32824,16 +36213,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0"
-    // InternalChartDSL.g:9577:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
+    // InternalChartDSL.g:10587:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
     public final void rule__XOtherOperatorExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9581:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
-            // InternalChartDSL.g:9582:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
+            // InternalChartDSL.g:10591:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
+            // InternalChartDSL.g:10592:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XOtherOperatorExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -32862,23 +36251,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0__Impl"
-    // InternalChartDSL.g:9589:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
+    // InternalChartDSL.g:10599:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9593:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
-            // InternalChartDSL.g:9594:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:10603:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
+            // InternalChartDSL.g:10604:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
             {
-            // InternalChartDSL.g:9594:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
-            // InternalChartDSL.g:9595:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalChartDSL.g:10604:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:10605:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); 
             }
-            // InternalChartDSL.g:9596:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
-            // InternalChartDSL.g:9596:3: rule__XOtherOperatorExpression__Group_1_0__0
+            // InternalChartDSL.g:10606:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalChartDSL.g:10606:3: rule__XOtherOperatorExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0();
@@ -32913,14 +36302,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1"
-    // InternalChartDSL.g:9604:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
+    // InternalChartDSL.g:10614:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9608:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
-            // InternalChartDSL.g:9609:2: rule__XOtherOperatorExpression__Group_1__1__Impl
+            // InternalChartDSL.g:10618:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
+            // InternalChartDSL.g:10619:2: rule__XOtherOperatorExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1__1__Impl();
@@ -32946,23 +36335,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1__Impl"
-    // InternalChartDSL.g:9615:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalChartDSL.g:10625:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9619:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalChartDSL.g:9620:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:10629:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalChartDSL.g:10630:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalChartDSL.g:9620:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
-            // InternalChartDSL.g:9621:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:10630:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:10631:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalChartDSL.g:9622:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
-            // InternalChartDSL.g:9622:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
+            // InternalChartDSL.g:10632:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:10632:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__RightOperandAssignment_1_1();
@@ -32997,14 +36386,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0"
-    // InternalChartDSL.g:9631:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
+    // InternalChartDSL.g:10641:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9635:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
-            // InternalChartDSL.g:9636:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
+            // InternalChartDSL.g:10645:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
+            // InternalChartDSL.g:10646:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0__Impl();
@@ -33030,23 +36419,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0__Impl"
-    // InternalChartDSL.g:9642:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:10652:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9646:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
-            // InternalChartDSL.g:9647:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:10656:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
+            // InternalChartDSL.g:10657:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:9647:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
-            // InternalChartDSL.g:9648:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:10657:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:10658:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalChartDSL.g:9649:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
-            // InternalChartDSL.g:9649:3: rule__XOtherOperatorExpression__Group_1_0_0__0
+            // InternalChartDSL.g:10659:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:10659:3: rule__XOtherOperatorExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__0();
@@ -33081,16 +36470,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0"
-    // InternalChartDSL.g:9658:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
+    // InternalChartDSL.g:10668:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9662:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
-            // InternalChartDSL.g:9663:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
+            // InternalChartDSL.g:10672:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
+            // InternalChartDSL.g:10673:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_80);
+            pushFollow(FOLLOW_85);
             rule__XOtherOperatorExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -33119,23 +36508,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"
-    // InternalChartDSL.g:9670:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:10680:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9674:1: ( ( () ) )
-            // InternalChartDSL.g:9675:1: ( () )
+            // InternalChartDSL.g:10684:1: ( ( () ) )
+            // InternalChartDSL.g:10685:1: ( () )
             {
-            // InternalChartDSL.g:9675:1: ( () )
-            // InternalChartDSL.g:9676:2: ()
+            // InternalChartDSL.g:10685:1: ( () )
+            // InternalChartDSL.g:10686:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalChartDSL.g:9677:2: ()
-            // InternalChartDSL.g:9677:3: 
+            // InternalChartDSL.g:10687:2: ()
+            // InternalChartDSL.g:10687:3: 
             {
             }
 
@@ -33160,14 +36549,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1"
-    // InternalChartDSL.g:9685:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
+    // InternalChartDSL.g:10695:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9689:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
-            // InternalChartDSL.g:9690:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+            // InternalChartDSL.g:10699:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
+            // InternalChartDSL.g:10700:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__1__Impl();
@@ -33193,23 +36582,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"
-    // InternalChartDSL.g:9696:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalChartDSL.g:10706:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9700:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalChartDSL.g:9701:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:10710:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalChartDSL.g:10711:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalChartDSL.g:9701:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalChartDSL.g:9702:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:10711:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:10712:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalChartDSL.g:9703:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
-            // InternalChartDSL.g:9703:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
+            // InternalChartDSL.g:10713:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:10713:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1();
@@ -33244,16 +36633,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0"
-    // InternalChartDSL.g:9712:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
+    // InternalChartDSL.g:10722:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
     public final void rule__OpOther__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9716:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
-            // InternalChartDSL.g:9717:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
+            // InternalChartDSL.g:10726:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
+            // InternalChartDSL.g:10727:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
             {
-            pushFollow(FOLLOW_82);
+            pushFollow(FOLLOW_87);
             rule__OpOther__Group_2__0__Impl();
 
             state._fsp--;
@@ -33282,17 +36671,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0__Impl"
-    // InternalChartDSL.g:9724:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
+    // InternalChartDSL.g:10734:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9728:1: ( ( '>' ) )
-            // InternalChartDSL.g:9729:1: ( '>' )
+            // InternalChartDSL.g:10738:1: ( ( '>' ) )
+            // InternalChartDSL.g:10739:1: ( '>' )
             {
-            // InternalChartDSL.g:9729:1: ( '>' )
-            // InternalChartDSL.g:9730:2: '>'
+            // InternalChartDSL.g:10739:1: ( '>' )
+            // InternalChartDSL.g:10740:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
@@ -33323,14 +36712,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1"
-    // InternalChartDSL.g:9739:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
+    // InternalChartDSL.g:10749:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
     public final void rule__OpOther__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9743:1: ( rule__OpOther__Group_2__1__Impl )
-            // InternalChartDSL.g:9744:2: rule__OpOther__Group_2__1__Impl
+            // InternalChartDSL.g:10753:1: ( rule__OpOther__Group_2__1__Impl )
+            // InternalChartDSL.g:10754:2: rule__OpOther__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_2__1__Impl();
@@ -33356,17 +36745,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1__Impl"
-    // InternalChartDSL.g:9750:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
+    // InternalChartDSL.g:10760:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
     public final void rule__OpOther__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9754:1: ( ( '..' ) )
-            // InternalChartDSL.g:9755:1: ( '..' )
+            // InternalChartDSL.g:10764:1: ( ( '..' ) )
+            // InternalChartDSL.g:10765:1: ( '..' )
             {
-            // InternalChartDSL.g:9755:1: ( '..' )
-            // InternalChartDSL.g:9756:2: '..'
+            // InternalChartDSL.g:10765:1: ( '..' )
+            // InternalChartDSL.g:10766:2: '..'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
@@ -33397,16 +36786,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0"
-    // InternalChartDSL.g:9766:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
+    // InternalChartDSL.g:10776:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
     public final void rule__OpOther__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9770:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
-            // InternalChartDSL.g:9771:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
+            // InternalChartDSL.g:10780:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
+            // InternalChartDSL.g:10781:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_88);
             rule__OpOther__Group_5__0__Impl();
 
             state._fsp--;
@@ -33435,17 +36824,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0__Impl"
-    // InternalChartDSL.g:9778:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
+    // InternalChartDSL.g:10788:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9782:1: ( ( '>' ) )
-            // InternalChartDSL.g:9783:1: ( '>' )
+            // InternalChartDSL.g:10792:1: ( ( '>' ) )
+            // InternalChartDSL.g:10793:1: ( '>' )
             {
-            // InternalChartDSL.g:9783:1: ( '>' )
-            // InternalChartDSL.g:9784:2: '>'
+            // InternalChartDSL.g:10793:1: ( '>' )
+            // InternalChartDSL.g:10794:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
@@ -33476,14 +36865,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1"
-    // InternalChartDSL.g:9793:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
+    // InternalChartDSL.g:10803:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
     public final void rule__OpOther__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9797:1: ( rule__OpOther__Group_5__1__Impl )
-            // InternalChartDSL.g:9798:2: rule__OpOther__Group_5__1__Impl
+            // InternalChartDSL.g:10807:1: ( rule__OpOther__Group_5__1__Impl )
+            // InternalChartDSL.g:10808:2: rule__OpOther__Group_5__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5__1__Impl();
@@ -33509,23 +36898,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1__Impl"
-    // InternalChartDSL.g:9804:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
+    // InternalChartDSL.g:10814:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
     public final void rule__OpOther__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9808:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
-            // InternalChartDSL.g:9809:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalChartDSL.g:10818:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
+            // InternalChartDSL.g:10819:1: ( ( rule__OpOther__Alternatives_5_1 ) )
             {
-            // InternalChartDSL.g:9809:1: ( ( rule__OpOther__Alternatives_5_1 ) )
-            // InternalChartDSL.g:9810:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalChartDSL.g:10819:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalChartDSL.g:10820:2: ( rule__OpOther__Alternatives_5_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); 
             }
-            // InternalChartDSL.g:9811:2: ( rule__OpOther__Alternatives_5_1 )
-            // InternalChartDSL.g:9811:3: rule__OpOther__Alternatives_5_1
+            // InternalChartDSL.g:10821:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalChartDSL.g:10821:3: rule__OpOther__Alternatives_5_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_5_1();
@@ -33560,14 +36949,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0"
-    // InternalChartDSL.g:9820:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
+    // InternalChartDSL.g:10830:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
     public final void rule__OpOther__Group_5_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9824:1: ( rule__OpOther__Group_5_1_0__0__Impl )
-            // InternalChartDSL.g:9825:2: rule__OpOther__Group_5_1_0__0__Impl
+            // InternalChartDSL.g:10834:1: ( rule__OpOther__Group_5_1_0__0__Impl )
+            // InternalChartDSL.g:10835:2: rule__OpOther__Group_5_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0__0__Impl();
@@ -33593,23 +36982,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0__Impl"
-    // InternalChartDSL.g:9831:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:10841:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
     public final void rule__OpOther__Group_5_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9835:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
-            // InternalChartDSL.g:9836:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalChartDSL.g:10845:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
+            // InternalChartDSL.g:10846:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:9836:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
-            // InternalChartDSL.g:9837:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalChartDSL.g:10846:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalChartDSL.g:10847:2: ( rule__OpOther__Group_5_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); 
             }
-            // InternalChartDSL.g:9838:2: ( rule__OpOther__Group_5_1_0_0__0 )
-            // InternalChartDSL.g:9838:3: rule__OpOther__Group_5_1_0_0__0
+            // InternalChartDSL.g:10848:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalChartDSL.g:10848:3: rule__OpOther__Group_5_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__0();
@@ -33644,16 +37033,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0"
-    // InternalChartDSL.g:9847:1: rule__OpOther__Group_5_1_0_0__0 : rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 ;
+    // InternalChartDSL.g:10857:1: rule__OpOther__Group_5_1_0_0__0 : rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 ;
     public final void rule__OpOther__Group_5_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9851:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
-            // InternalChartDSL.g:9852:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
+            // InternalChartDSL.g:10861:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
+            // InternalChartDSL.g:10862:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_88);
             rule__OpOther__Group_5_1_0_0__0__Impl();
 
             state._fsp--;
@@ -33682,17 +37071,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0__Impl"
-    // InternalChartDSL.g:9859:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
+    // InternalChartDSL.g:10869:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9863:1: ( ( '>' ) )
-            // InternalChartDSL.g:9864:1: ( '>' )
+            // InternalChartDSL.g:10873:1: ( ( '>' ) )
+            // InternalChartDSL.g:10874:1: ( '>' )
             {
-            // InternalChartDSL.g:9864:1: ( '>' )
-            // InternalChartDSL.g:9865:2: '>'
+            // InternalChartDSL.g:10874:1: ( '>' )
+            // InternalChartDSL.g:10875:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
@@ -33723,14 +37112,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1"
-    // InternalChartDSL.g:9874:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
+    // InternalChartDSL.g:10884:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
     public final void rule__OpOther__Group_5_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9878:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
-            // InternalChartDSL.g:9879:2: rule__OpOther__Group_5_1_0_0__1__Impl
+            // InternalChartDSL.g:10888:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
+            // InternalChartDSL.g:10889:2: rule__OpOther__Group_5_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__1__Impl();
@@ -33756,17 +37145,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1__Impl"
-    // InternalChartDSL.g:9885:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
+    // InternalChartDSL.g:10895:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9889:1: ( ( '>' ) )
-            // InternalChartDSL.g:9890:1: ( '>' )
+            // InternalChartDSL.g:10899:1: ( ( '>' ) )
+            // InternalChartDSL.g:10900:1: ( '>' )
             {
-            // InternalChartDSL.g:9890:1: ( '>' )
-            // InternalChartDSL.g:9891:2: '>'
+            // InternalChartDSL.g:10900:1: ( '>' )
+            // InternalChartDSL.g:10901:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
@@ -33797,16 +37186,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0"
-    // InternalChartDSL.g:9901:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
+    // InternalChartDSL.g:10911:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
     public final void rule__OpOther__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9905:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
-            // InternalChartDSL.g:9906:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
+            // InternalChartDSL.g:10915:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
+            // InternalChartDSL.g:10916:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
             {
-            pushFollow(FOLLOW_84);
+            pushFollow(FOLLOW_89);
             rule__OpOther__Group_6__0__Impl();
 
             state._fsp--;
@@ -33835,17 +37224,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0__Impl"
-    // InternalChartDSL.g:9913:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
+    // InternalChartDSL.g:10923:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9917:1: ( ( '<' ) )
-            // InternalChartDSL.g:9918:1: ( '<' )
+            // InternalChartDSL.g:10927:1: ( ( '<' ) )
+            // InternalChartDSL.g:10928:1: ( '<' )
             {
-            // InternalChartDSL.g:9918:1: ( '<' )
-            // InternalChartDSL.g:9919:2: '<'
+            // InternalChartDSL.g:10928:1: ( '<' )
+            // InternalChartDSL.g:10929:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
@@ -33876,14 +37265,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1"
-    // InternalChartDSL.g:9928:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
+    // InternalChartDSL.g:10938:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
     public final void rule__OpOther__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9932:1: ( rule__OpOther__Group_6__1__Impl )
-            // InternalChartDSL.g:9933:2: rule__OpOther__Group_6__1__Impl
+            // InternalChartDSL.g:10942:1: ( rule__OpOther__Group_6__1__Impl )
+            // InternalChartDSL.g:10943:2: rule__OpOther__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6__1__Impl();
@@ -33909,23 +37298,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1__Impl"
-    // InternalChartDSL.g:9939:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
+    // InternalChartDSL.g:10949:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
     public final void rule__OpOther__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9943:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
-            // InternalChartDSL.g:9944:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalChartDSL.g:10953:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
+            // InternalChartDSL.g:10954:1: ( ( rule__OpOther__Alternatives_6_1 ) )
             {
-            // InternalChartDSL.g:9944:1: ( ( rule__OpOther__Alternatives_6_1 ) )
-            // InternalChartDSL.g:9945:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalChartDSL.g:10954:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalChartDSL.g:10955:2: ( rule__OpOther__Alternatives_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); 
             }
-            // InternalChartDSL.g:9946:2: ( rule__OpOther__Alternatives_6_1 )
-            // InternalChartDSL.g:9946:3: rule__OpOther__Alternatives_6_1
+            // InternalChartDSL.g:10956:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalChartDSL.g:10956:3: rule__OpOther__Alternatives_6_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_6_1();
@@ -33960,14 +37349,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0"
-    // InternalChartDSL.g:9955:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
+    // InternalChartDSL.g:10965:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
     public final void rule__OpOther__Group_6_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9959:1: ( rule__OpOther__Group_6_1_0__0__Impl )
-            // InternalChartDSL.g:9960:2: rule__OpOther__Group_6_1_0__0__Impl
+            // InternalChartDSL.g:10969:1: ( rule__OpOther__Group_6_1_0__0__Impl )
+            // InternalChartDSL.g:10970:2: rule__OpOther__Group_6_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0__0__Impl();
@@ -33993,23 +37382,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0__Impl"
-    // InternalChartDSL.g:9966:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:10976:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
     public final void rule__OpOther__Group_6_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9970:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
-            // InternalChartDSL.g:9971:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalChartDSL.g:10980:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
+            // InternalChartDSL.g:10981:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:9971:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
-            // InternalChartDSL.g:9972:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalChartDSL.g:10981:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalChartDSL.g:10982:2: ( rule__OpOther__Group_6_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); 
             }
-            // InternalChartDSL.g:9973:2: ( rule__OpOther__Group_6_1_0_0__0 )
-            // InternalChartDSL.g:9973:3: rule__OpOther__Group_6_1_0_0__0
+            // InternalChartDSL.g:10983:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalChartDSL.g:10983:3: rule__OpOther__Group_6_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__0();
@@ -34044,16 +37433,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0"
-    // InternalChartDSL.g:9982:1: rule__OpOther__Group_6_1_0_0__0 : rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 ;
+    // InternalChartDSL.g:10992:1: rule__OpOther__Group_6_1_0_0__0 : rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 ;
     public final void rule__OpOther__Group_6_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9986:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
-            // InternalChartDSL.g:9987:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
+            // InternalChartDSL.g:10996:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
+            // InternalChartDSL.g:10997:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__OpOther__Group_6_1_0_0__0__Impl();
 
             state._fsp--;
@@ -34082,17 +37471,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0__Impl"
-    // InternalChartDSL.g:9994:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
+    // InternalChartDSL.g:11004:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:9998:1: ( ( '<' ) )
-            // InternalChartDSL.g:9999:1: ( '<' )
+            // InternalChartDSL.g:11008:1: ( ( '<' ) )
+            // InternalChartDSL.g:11009:1: ( '<' )
             {
-            // InternalChartDSL.g:9999:1: ( '<' )
-            // InternalChartDSL.g:10000:2: '<'
+            // InternalChartDSL.g:11009:1: ( '<' )
+            // InternalChartDSL.g:11010:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
@@ -34123,14 +37512,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1"
-    // InternalChartDSL.g:10009:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
+    // InternalChartDSL.g:11019:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
     public final void rule__OpOther__Group_6_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10013:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
-            // InternalChartDSL.g:10014:2: rule__OpOther__Group_6_1_0_0__1__Impl
+            // InternalChartDSL.g:11023:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
+            // InternalChartDSL.g:11024:2: rule__OpOther__Group_6_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__1__Impl();
@@ -34156,17 +37545,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1__Impl"
-    // InternalChartDSL.g:10020:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
+    // InternalChartDSL.g:11030:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10024:1: ( ( '<' ) )
-            // InternalChartDSL.g:10025:1: ( '<' )
+            // InternalChartDSL.g:11034:1: ( ( '<' ) )
+            // InternalChartDSL.g:11035:1: ( '<' )
             {
-            // InternalChartDSL.g:10025:1: ( '<' )
-            // InternalChartDSL.g:10026:2: '<'
+            // InternalChartDSL.g:11035:1: ( '<' )
+            // InternalChartDSL.g:11036:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
@@ -34197,16 +37586,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0"
-    // InternalChartDSL.g:10036:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
+    // InternalChartDSL.g:11046:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
     public final void rule__XAdditiveExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10040:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
-            // InternalChartDSL.g:10041:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
+            // InternalChartDSL.g:11050:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
+            // InternalChartDSL.g:11051:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
             {
-            pushFollow(FOLLOW_85);
+            pushFollow(FOLLOW_90);
             rule__XAdditiveExpression__Group__0__Impl();
 
             state._fsp--;
@@ -34235,17 +37624,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0__Impl"
-    // InternalChartDSL.g:10048:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
+    // InternalChartDSL.g:11058:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10052:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalChartDSL.g:10053:1: ( ruleXMultiplicativeExpression )
+            // InternalChartDSL.g:11062:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalChartDSL.g:11063:1: ( ruleXMultiplicativeExpression )
             {
-            // InternalChartDSL.g:10053:1: ( ruleXMultiplicativeExpression )
-            // InternalChartDSL.g:10054:2: ruleXMultiplicativeExpression
+            // InternalChartDSL.g:11063:1: ( ruleXMultiplicativeExpression )
+            // InternalChartDSL.g:11064:2: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
@@ -34280,14 +37669,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1"
-    // InternalChartDSL.g:10063:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
+    // InternalChartDSL.g:11073:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
     public final void rule__XAdditiveExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10067:1: ( rule__XAdditiveExpression__Group__1__Impl )
-            // InternalChartDSL.g:10068:2: rule__XAdditiveExpression__Group__1__Impl
+            // InternalChartDSL.g:11077:1: ( rule__XAdditiveExpression__Group__1__Impl )
+            // InternalChartDSL.g:11078:2: rule__XAdditiveExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group__1__Impl();
@@ -34313,52 +37702,52 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1__Impl"
-    // InternalChartDSL.g:10074:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
+    // InternalChartDSL.g:11084:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
     public final void rule__XAdditiveExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10078:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
-            // InternalChartDSL.g:10079:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalChartDSL.g:11088:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
+            // InternalChartDSL.g:11089:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
             {
-            // InternalChartDSL.g:10079:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
-            // InternalChartDSL.g:10080:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            // InternalChartDSL.g:11089:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalChartDSL.g:11090:2: ( rule__XAdditiveExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:10081:2: ( rule__XAdditiveExpression__Group_1__0 )*
-            loop91:
+            // InternalChartDSL.g:11091:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            loop104:
             do {
-                int alt91=2;
-                int LA91_0 = input.LA(1);
+                int alt104=2;
+                int LA104_0 = input.LA(1);
 
-                if ( (LA91_0==35) ) {
-                    int LA91_2 = input.LA(2);
+                if ( (LA104_0==35) ) {
+                    int LA104_2 = input.LA(2);
 
-                    if ( (synpred153_InternalChartDSL()) ) {
-                        alt91=1;
+                    if ( (synpred171_InternalChartDSL()) ) {
+                        alt104=1;
                     }
 
 
                 }
-                else if ( (LA91_0==34) ) {
-                    int LA91_3 = input.LA(2);
+                else if ( (LA104_0==34) ) {
+                    int LA104_3 = input.LA(2);
 
-                    if ( (synpred153_InternalChartDSL()) ) {
-                        alt91=1;
+                    if ( (synpred171_InternalChartDSL()) ) {
+                        alt104=1;
                     }
 
 
                 }
 
 
-                switch (alt91) {
+                switch (alt104) {
             	case 1 :
-            	    // InternalChartDSL.g:10081:3: rule__XAdditiveExpression__Group_1__0
+            	    // InternalChartDSL.g:11091:3: rule__XAdditiveExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_86);
+            	    pushFollow(FOLLOW_91);
             	    rule__XAdditiveExpression__Group_1__0();
 
             	    state._fsp--;
@@ -34368,7 +37757,7 @@
             	    break;
 
             	default :
-            	    break loop91;
+            	    break loop104;
                 }
             } while (true);
 
@@ -34397,16 +37786,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0"
-    // InternalChartDSL.g:10090:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
+    // InternalChartDSL.g:11100:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
     public final void rule__XAdditiveExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10094:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
-            // InternalChartDSL.g:10095:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
+            // InternalChartDSL.g:11104:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
+            // InternalChartDSL.g:11105:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XAdditiveExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -34435,23 +37824,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0__Impl"
-    // InternalChartDSL.g:10102:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
+    // InternalChartDSL.g:11112:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
     public final void rule__XAdditiveExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10106:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
-            // InternalChartDSL.g:10107:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:11116:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
+            // InternalChartDSL.g:11117:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
             {
-            // InternalChartDSL.g:10107:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
-            // InternalChartDSL.g:10108:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalChartDSL.g:11117:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:11118:2: ( rule__XAdditiveExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); 
             }
-            // InternalChartDSL.g:10109:2: ( rule__XAdditiveExpression__Group_1_0__0 )
-            // InternalChartDSL.g:10109:3: rule__XAdditiveExpression__Group_1_0__0
+            // InternalChartDSL.g:11119:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalChartDSL.g:11119:3: rule__XAdditiveExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0();
@@ -34486,14 +37875,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1"
-    // InternalChartDSL.g:10117:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
+    // InternalChartDSL.g:11127:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
     public final void rule__XAdditiveExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10121:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
-            // InternalChartDSL.g:10122:2: rule__XAdditiveExpression__Group_1__1__Impl
+            // InternalChartDSL.g:11131:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
+            // InternalChartDSL.g:11132:2: rule__XAdditiveExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1__1__Impl();
@@ -34519,23 +37908,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1__Impl"
-    // InternalChartDSL.g:10128:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalChartDSL.g:11138:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XAdditiveExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10132:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalChartDSL.g:10133:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:11142:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalChartDSL.g:11143:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalChartDSL.g:10133:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
-            // InternalChartDSL.g:10134:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:11143:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:11144:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalChartDSL.g:10135:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
-            // InternalChartDSL.g:10135:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
+            // InternalChartDSL.g:11145:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:11145:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__RightOperandAssignment_1_1();
@@ -34570,14 +37959,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0"
-    // InternalChartDSL.g:10144:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
+    // InternalChartDSL.g:11154:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
     public final void rule__XAdditiveExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10148:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
-            // InternalChartDSL.g:10149:2: rule__XAdditiveExpression__Group_1_0__0__Impl
+            // InternalChartDSL.g:11158:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
+            // InternalChartDSL.g:11159:2: rule__XAdditiveExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0__Impl();
@@ -34603,23 +37992,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0__Impl"
-    // InternalChartDSL.g:10155:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:11165:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XAdditiveExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10159:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
-            // InternalChartDSL.g:10160:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:11169:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
+            // InternalChartDSL.g:11170:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:10160:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
-            // InternalChartDSL.g:10161:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:11170:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:11171:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalChartDSL.g:10162:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
-            // InternalChartDSL.g:10162:3: rule__XAdditiveExpression__Group_1_0_0__0
+            // InternalChartDSL.g:11172:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:11172:3: rule__XAdditiveExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__0();
@@ -34654,16 +38043,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0"
-    // InternalChartDSL.g:10171:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
+    // InternalChartDSL.g:11181:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
     public final void rule__XAdditiveExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10175:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
-            // InternalChartDSL.g:10176:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
+            // InternalChartDSL.g:11185:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
+            // InternalChartDSL.g:11186:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_85);
+            pushFollow(FOLLOW_90);
             rule__XAdditiveExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -34692,23 +38081,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0__Impl"
-    // InternalChartDSL.g:10183:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:11193:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XAdditiveExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10187:1: ( ( () ) )
-            // InternalChartDSL.g:10188:1: ( () )
+            // InternalChartDSL.g:11197:1: ( ( () ) )
+            // InternalChartDSL.g:11198:1: ( () )
             {
-            // InternalChartDSL.g:10188:1: ( () )
-            // InternalChartDSL.g:10189:2: ()
+            // InternalChartDSL.g:11198:1: ( () )
+            // InternalChartDSL.g:11199:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalChartDSL.g:10190:2: ()
-            // InternalChartDSL.g:10190:3: 
+            // InternalChartDSL.g:11200:2: ()
+            // InternalChartDSL.g:11200:3: 
             {
             }
 
@@ -34733,14 +38122,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1"
-    // InternalChartDSL.g:10198:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
+    // InternalChartDSL.g:11208:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
     public final void rule__XAdditiveExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10202:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
-            // InternalChartDSL.g:10203:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
+            // InternalChartDSL.g:11212:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
+            // InternalChartDSL.g:11213:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__1__Impl();
@@ -34766,23 +38155,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1__Impl"
-    // InternalChartDSL.g:10209:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalChartDSL.g:11219:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XAdditiveExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10213:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalChartDSL.g:10214:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:11223:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalChartDSL.g:11224:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalChartDSL.g:10214:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalChartDSL.g:10215:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:11224:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:11225:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalChartDSL.g:10216:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
-            // InternalChartDSL.g:10216:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
+            // InternalChartDSL.g:11226:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:11226:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__FeatureAssignment_1_0_0_1();
@@ -34817,16 +38206,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0"
-    // InternalChartDSL.g:10225:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
+    // InternalChartDSL.g:11235:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
     public final void rule__XMultiplicativeExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10229:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
-            // InternalChartDSL.g:10230:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
+            // InternalChartDSL.g:11239:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
+            // InternalChartDSL.g:11240:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
             {
-            pushFollow(FOLLOW_87);
+            pushFollow(FOLLOW_92);
             rule__XMultiplicativeExpression__Group__0__Impl();
 
             state._fsp--;
@@ -34855,17 +38244,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0__Impl"
-    // InternalChartDSL.g:10237:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
+    // InternalChartDSL.g:11247:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10241:1: ( ( ruleXUnaryOperation ) )
-            // InternalChartDSL.g:10242:1: ( ruleXUnaryOperation )
+            // InternalChartDSL.g:11251:1: ( ( ruleXUnaryOperation ) )
+            // InternalChartDSL.g:11252:1: ( ruleXUnaryOperation )
             {
-            // InternalChartDSL.g:10242:1: ( ruleXUnaryOperation )
-            // InternalChartDSL.g:10243:2: ruleXUnaryOperation
+            // InternalChartDSL.g:11252:1: ( ruleXUnaryOperation )
+            // InternalChartDSL.g:11253:2: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
@@ -34900,14 +38289,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1"
-    // InternalChartDSL.g:10252:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
+    // InternalChartDSL.g:11262:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10256:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
-            // InternalChartDSL.g:10257:2: rule__XMultiplicativeExpression__Group__1__Impl
+            // InternalChartDSL.g:11266:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
+            // InternalChartDSL.g:11267:2: rule__XMultiplicativeExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group__1__Impl();
@@ -34933,32 +38322,32 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1__Impl"
-    // InternalChartDSL.g:10263:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
+    // InternalChartDSL.g:11273:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
     public final void rule__XMultiplicativeExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10267:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
-            // InternalChartDSL.g:10268:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalChartDSL.g:11277:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
+            // InternalChartDSL.g:11278:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
             {
-            // InternalChartDSL.g:10268:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
-            // InternalChartDSL.g:10269:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            // InternalChartDSL.g:11278:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalChartDSL.g:11279:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:10270:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
-            loop92:
+            // InternalChartDSL.g:11280:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            loop105:
             do {
-                int alt92=2;
+                int alt105=2;
                 switch ( input.LA(1) ) {
                 case 36:
                     {
-                    int LA92_2 = input.LA(2);
+                    int LA105_2 = input.LA(2);
 
-                    if ( (synpred154_InternalChartDSL()) ) {
-                        alt92=1;
+                    if ( (synpred172_InternalChartDSL()) ) {
+                        alt105=1;
                     }
 
 
@@ -34966,10 +38355,10 @@
                     break;
                 case 37:
                     {
-                    int LA92_3 = input.LA(2);
+                    int LA105_3 = input.LA(2);
 
-                    if ( (synpred154_InternalChartDSL()) ) {
-                        alt92=1;
+                    if ( (synpred172_InternalChartDSL()) ) {
+                        alt105=1;
                     }
 
 
@@ -34977,10 +38366,10 @@
                     break;
                 case 38:
                     {
-                    int LA92_4 = input.LA(2);
+                    int LA105_4 = input.LA(2);
 
-                    if ( (synpred154_InternalChartDSL()) ) {
-                        alt92=1;
+                    if ( (synpred172_InternalChartDSL()) ) {
+                        alt105=1;
                     }
 
 
@@ -34988,10 +38377,10 @@
                     break;
                 case 39:
                     {
-                    int LA92_5 = input.LA(2);
+                    int LA105_5 = input.LA(2);
 
-                    if ( (synpred154_InternalChartDSL()) ) {
-                        alt92=1;
+                    if ( (synpred172_InternalChartDSL()) ) {
+                        alt105=1;
                     }
 
 
@@ -35000,11 +38389,11 @@
 
                 }
 
-                switch (alt92) {
+                switch (alt105) {
             	case 1 :
-            	    // InternalChartDSL.g:10270:3: rule__XMultiplicativeExpression__Group_1__0
+            	    // InternalChartDSL.g:11280:3: rule__XMultiplicativeExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_88);
+            	    pushFollow(FOLLOW_93);
             	    rule__XMultiplicativeExpression__Group_1__0();
 
             	    state._fsp--;
@@ -35014,7 +38403,7 @@
             	    break;
 
             	default :
-            	    break loop92;
+            	    break loop105;
                 }
             } while (true);
 
@@ -35043,16 +38432,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0"
-    // InternalChartDSL.g:10279:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
+    // InternalChartDSL.g:11289:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
     public final void rule__XMultiplicativeExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10283:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
-            // InternalChartDSL.g:10284:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
+            // InternalChartDSL.g:11293:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
+            // InternalChartDSL.g:11294:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XMultiplicativeExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -35081,23 +38470,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0__Impl"
-    // InternalChartDSL.g:10291:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
+    // InternalChartDSL.g:11301:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10295:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
-            // InternalChartDSL.g:10296:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:11305:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
+            // InternalChartDSL.g:11306:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
             {
-            // InternalChartDSL.g:10296:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
-            // InternalChartDSL.g:10297:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalChartDSL.g:11306:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:11307:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); 
             }
-            // InternalChartDSL.g:10298:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
-            // InternalChartDSL.g:10298:3: rule__XMultiplicativeExpression__Group_1_0__0
+            // InternalChartDSL.g:11308:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalChartDSL.g:11308:3: rule__XMultiplicativeExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0();
@@ -35132,14 +38521,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1"
-    // InternalChartDSL.g:10306:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
+    // InternalChartDSL.g:11316:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10310:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
-            // InternalChartDSL.g:10311:2: rule__XMultiplicativeExpression__Group_1__1__Impl
+            // InternalChartDSL.g:11320:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
+            // InternalChartDSL.g:11321:2: rule__XMultiplicativeExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1__1__Impl();
@@ -35165,23 +38554,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1__Impl"
-    // InternalChartDSL.g:10317:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalChartDSL.g:11327:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10321:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalChartDSL.g:10322:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:11331:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalChartDSL.g:11332:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalChartDSL.g:10322:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
-            // InternalChartDSL.g:10323:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:11332:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalChartDSL.g:11333:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalChartDSL.g:10324:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
-            // InternalChartDSL.g:10324:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
+            // InternalChartDSL.g:11334:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalChartDSL.g:11334:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__RightOperandAssignment_1_1();
@@ -35216,14 +38605,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0"
-    // InternalChartDSL.g:10333:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
+    // InternalChartDSL.g:11343:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10337:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
-            // InternalChartDSL.g:10338:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
+            // InternalChartDSL.g:11347:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
+            // InternalChartDSL.g:11348:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0__Impl();
@@ -35249,23 +38638,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0__Impl"
-    // InternalChartDSL.g:10344:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:11354:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10348:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
-            // InternalChartDSL.g:10349:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:11358:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
+            // InternalChartDSL.g:11359:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:10349:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
-            // InternalChartDSL.g:10350:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:11359:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:11360:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalChartDSL.g:10351:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
-            // InternalChartDSL.g:10351:3: rule__XMultiplicativeExpression__Group_1_0_0__0
+            // InternalChartDSL.g:11361:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:11361:3: rule__XMultiplicativeExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__0();
@@ -35300,16 +38689,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0"
-    // InternalChartDSL.g:10360:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
+    // InternalChartDSL.g:11370:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10364:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
-            // InternalChartDSL.g:10365:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
+            // InternalChartDSL.g:11374:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
+            // InternalChartDSL.g:11375:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_87);
+            pushFollow(FOLLOW_92);
             rule__XMultiplicativeExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -35338,23 +38727,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"
-    // InternalChartDSL.g:10372:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:11382:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10376:1: ( ( () ) )
-            // InternalChartDSL.g:10377:1: ( () )
+            // InternalChartDSL.g:11386:1: ( ( () ) )
+            // InternalChartDSL.g:11387:1: ( () )
             {
-            // InternalChartDSL.g:10377:1: ( () )
-            // InternalChartDSL.g:10378:2: ()
+            // InternalChartDSL.g:11387:1: ( () )
+            // InternalChartDSL.g:11388:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalChartDSL.g:10379:2: ()
-            // InternalChartDSL.g:10379:3: 
+            // InternalChartDSL.g:11389:2: ()
+            // InternalChartDSL.g:11389:3: 
             {
             }
 
@@ -35379,14 +38768,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1"
-    // InternalChartDSL.g:10387:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
+    // InternalChartDSL.g:11397:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10391:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
-            // InternalChartDSL.g:10392:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+            // InternalChartDSL.g:11401:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
+            // InternalChartDSL.g:11402:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__1__Impl();
@@ -35412,23 +38801,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"
-    // InternalChartDSL.g:10398:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalChartDSL.g:11408:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10402:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalChartDSL.g:10403:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:11412:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalChartDSL.g:11413:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalChartDSL.g:10403:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalChartDSL.g:10404:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:11413:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalChartDSL.g:11414:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalChartDSL.g:10405:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
-            // InternalChartDSL.g:10405:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
+            // InternalChartDSL.g:11415:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalChartDSL.g:11415:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1();
@@ -35463,16 +38852,16 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0"
-    // InternalChartDSL.g:10414:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
+    // InternalChartDSL.g:11424:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
     public final void rule__XUnaryOperation__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10418:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
-            // InternalChartDSL.g:10419:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
+            // InternalChartDSL.g:11428:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
+            // InternalChartDSL.g:11429:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
             {
-            pushFollow(FOLLOW_89);
+            pushFollow(FOLLOW_94);
             rule__XUnaryOperation__Group_0__0__Impl();
 
             state._fsp--;
@@ -35501,23 +38890,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0__Impl"
-    // InternalChartDSL.g:10426:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:11436:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
     public final void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10430:1: ( ( () ) )
-            // InternalChartDSL.g:10431:1: ( () )
+            // InternalChartDSL.g:11440:1: ( ( () ) )
+            // InternalChartDSL.g:11441:1: ( () )
             {
-            // InternalChartDSL.g:10431:1: ( () )
-            // InternalChartDSL.g:10432:2: ()
+            // InternalChartDSL.g:11441:1: ( () )
+            // InternalChartDSL.g:11442:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); 
             }
-            // InternalChartDSL.g:10433:2: ()
-            // InternalChartDSL.g:10433:3: 
+            // InternalChartDSL.g:11443:2: ()
+            // InternalChartDSL.g:11443:3: 
             {
             }
 
@@ -35542,16 +38931,16 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1"
-    // InternalChartDSL.g:10441:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
+    // InternalChartDSL.g:11451:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
     public final void rule__XUnaryOperation__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10445:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
-            // InternalChartDSL.g:10446:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
+            // InternalChartDSL.g:11455:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
+            // InternalChartDSL.g:11456:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XUnaryOperation__Group_0__1__Impl();
 
             state._fsp--;
@@ -35580,23 +38969,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1__Impl"
-    // InternalChartDSL.g:10453:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
+    // InternalChartDSL.g:11463:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
     public final void rule__XUnaryOperation__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10457:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
-            // InternalChartDSL.g:10458:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalChartDSL.g:11467:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
+            // InternalChartDSL.g:11468:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
             {
-            // InternalChartDSL.g:10458:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
-            // InternalChartDSL.g:10459:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalChartDSL.g:11468:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalChartDSL.g:11469:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalChartDSL.g:10460:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
-            // InternalChartDSL.g:10460:3: rule__XUnaryOperation__FeatureAssignment_0_1
+            // InternalChartDSL.g:11470:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalChartDSL.g:11470:3: rule__XUnaryOperation__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__FeatureAssignment_0_1();
@@ -35631,14 +39020,14 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2"
-    // InternalChartDSL.g:10468:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
+    // InternalChartDSL.g:11478:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
     public final void rule__XUnaryOperation__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10472:1: ( rule__XUnaryOperation__Group_0__2__Impl )
-            // InternalChartDSL.g:10473:2: rule__XUnaryOperation__Group_0__2__Impl
+            // InternalChartDSL.g:11482:1: ( rule__XUnaryOperation__Group_0__2__Impl )
+            // InternalChartDSL.g:11483:2: rule__XUnaryOperation__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__Group_0__2__Impl();
@@ -35664,23 +39053,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2__Impl"
-    // InternalChartDSL.g:10479:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
+    // InternalChartDSL.g:11489:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
     public final void rule__XUnaryOperation__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10483:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
-            // InternalChartDSL.g:10484:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalChartDSL.g:11493:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
+            // InternalChartDSL.g:11494:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
             {
-            // InternalChartDSL.g:10484:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
-            // InternalChartDSL.g:10485:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalChartDSL.g:11494:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalChartDSL.g:11495:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); 
             }
-            // InternalChartDSL.g:10486:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
-            // InternalChartDSL.g:10486:3: rule__XUnaryOperation__OperandAssignment_0_2
+            // InternalChartDSL.g:11496:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalChartDSL.g:11496:3: rule__XUnaryOperation__OperandAssignment_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__OperandAssignment_0_2();
@@ -35715,16 +39104,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0"
-    // InternalChartDSL.g:10495:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
+    // InternalChartDSL.g:11505:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
     public final void rule__XCastedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10499:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
-            // InternalChartDSL.g:10500:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
+            // InternalChartDSL.g:11509:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
+            // InternalChartDSL.g:11510:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_95);
             rule__XCastedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -35753,17 +39142,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0__Impl"
-    // InternalChartDSL.g:10507:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
+    // InternalChartDSL.g:11517:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
     public final void rule__XCastedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10511:1: ( ( ruleXPostfixOperation ) )
-            // InternalChartDSL.g:10512:1: ( ruleXPostfixOperation )
+            // InternalChartDSL.g:11521:1: ( ( ruleXPostfixOperation ) )
+            // InternalChartDSL.g:11522:1: ( ruleXPostfixOperation )
             {
-            // InternalChartDSL.g:10512:1: ( ruleXPostfixOperation )
-            // InternalChartDSL.g:10513:2: ruleXPostfixOperation
+            // InternalChartDSL.g:11522:1: ( ruleXPostfixOperation )
+            // InternalChartDSL.g:11523:2: ruleXPostfixOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
@@ -35798,14 +39187,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1"
-    // InternalChartDSL.g:10522:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
+    // InternalChartDSL.g:11532:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
     public final void rule__XCastedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10526:1: ( rule__XCastedExpression__Group__1__Impl )
-            // InternalChartDSL.g:10527:2: rule__XCastedExpression__Group__1__Impl
+            // InternalChartDSL.g:11536:1: ( rule__XCastedExpression__Group__1__Impl )
+            // InternalChartDSL.g:11537:2: rule__XCastedExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group__1__Impl();
@@ -35831,43 +39220,43 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1__Impl"
-    // InternalChartDSL.g:10533:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
+    // InternalChartDSL.g:11543:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
     public final void rule__XCastedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10537:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
-            // InternalChartDSL.g:10538:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalChartDSL.g:11547:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
+            // InternalChartDSL.g:11548:1: ( ( rule__XCastedExpression__Group_1__0 )* )
             {
-            // InternalChartDSL.g:10538:1: ( ( rule__XCastedExpression__Group_1__0 )* )
-            // InternalChartDSL.g:10539:2: ( rule__XCastedExpression__Group_1__0 )*
+            // InternalChartDSL.g:11548:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalChartDSL.g:11549:2: ( rule__XCastedExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:10540:2: ( rule__XCastedExpression__Group_1__0 )*
-            loop93:
+            // InternalChartDSL.g:11550:2: ( rule__XCastedExpression__Group_1__0 )*
+            loop106:
             do {
-                int alt93=2;
-                int LA93_0 = input.LA(1);
+                int alt106=2;
+                int LA106_0 = input.LA(1);
 
-                if ( (LA93_0==75) ) {
-                    int LA93_2 = input.LA(2);
+                if ( (LA106_0==83) ) {
+                    int LA106_2 = input.LA(2);
 
-                    if ( (synpred155_InternalChartDSL()) ) {
-                        alt93=1;
+                    if ( (synpred173_InternalChartDSL()) ) {
+                        alt106=1;
                     }
 
 
                 }
 
 
-                switch (alt93) {
+                switch (alt106) {
             	case 1 :
-            	    // InternalChartDSL.g:10540:3: rule__XCastedExpression__Group_1__0
+            	    // InternalChartDSL.g:11550:3: rule__XCastedExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_91);
+            	    pushFollow(FOLLOW_96);
             	    rule__XCastedExpression__Group_1__0();
 
             	    state._fsp--;
@@ -35877,7 +39266,7 @@
             	    break;
 
             	default :
-            	    break loop93;
+            	    break loop106;
                 }
             } while (true);
 
@@ -35906,16 +39295,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0"
-    // InternalChartDSL.g:10549:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
+    // InternalChartDSL.g:11559:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
     public final void rule__XCastedExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10553:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
-            // InternalChartDSL.g:10554:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
+            // InternalChartDSL.g:11563:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
+            // InternalChartDSL.g:11564:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XCastedExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -35944,23 +39333,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0__Impl"
-    // InternalChartDSL.g:10561:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
+    // InternalChartDSL.g:11571:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
     public final void rule__XCastedExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10565:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
-            // InternalChartDSL.g:10566:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:11575:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
+            // InternalChartDSL.g:11576:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
             {
-            // InternalChartDSL.g:10566:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
-            // InternalChartDSL.g:10567:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalChartDSL.g:11576:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalChartDSL.g:11577:2: ( rule__XCastedExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); 
             }
-            // InternalChartDSL.g:10568:2: ( rule__XCastedExpression__Group_1_0__0 )
-            // InternalChartDSL.g:10568:3: rule__XCastedExpression__Group_1_0__0
+            // InternalChartDSL.g:11578:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalChartDSL.g:11578:3: rule__XCastedExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0();
@@ -35995,14 +39384,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1"
-    // InternalChartDSL.g:10576:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
+    // InternalChartDSL.g:11586:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
     public final void rule__XCastedExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10580:1: ( rule__XCastedExpression__Group_1__1__Impl )
-            // InternalChartDSL.g:10581:2: rule__XCastedExpression__Group_1__1__Impl
+            // InternalChartDSL.g:11590:1: ( rule__XCastedExpression__Group_1__1__Impl )
+            // InternalChartDSL.g:11591:2: rule__XCastedExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1__1__Impl();
@@ -36028,23 +39417,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1__Impl"
-    // InternalChartDSL.g:10587:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
+    // InternalChartDSL.g:11597:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
     public final void rule__XCastedExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10591:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
-            // InternalChartDSL.g:10592:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalChartDSL.g:11601:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
+            // InternalChartDSL.g:11602:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
             {
-            // InternalChartDSL.g:10592:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
-            // InternalChartDSL.g:10593:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalChartDSL.g:11602:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalChartDSL.g:11603:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); 
             }
-            // InternalChartDSL.g:10594:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
-            // InternalChartDSL.g:10594:3: rule__XCastedExpression__TypeAssignment_1_1
+            // InternalChartDSL.g:11604:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalChartDSL.g:11604:3: rule__XCastedExpression__TypeAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__TypeAssignment_1_1();
@@ -36079,14 +39468,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0"
-    // InternalChartDSL.g:10603:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
+    // InternalChartDSL.g:11613:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
     public final void rule__XCastedExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10607:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
-            // InternalChartDSL.g:10608:2: rule__XCastedExpression__Group_1_0__0__Impl
+            // InternalChartDSL.g:11617:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
+            // InternalChartDSL.g:11618:2: rule__XCastedExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0__Impl();
@@ -36112,23 +39501,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0__Impl"
-    // InternalChartDSL.g:10614:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:11624:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XCastedExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10618:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
-            // InternalChartDSL.g:10619:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:11628:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
+            // InternalChartDSL.g:11629:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:10619:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
-            // InternalChartDSL.g:10620:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:11629:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:11630:2: ( rule__XCastedExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalChartDSL.g:10621:2: ( rule__XCastedExpression__Group_1_0_0__0 )
-            // InternalChartDSL.g:10621:3: rule__XCastedExpression__Group_1_0_0__0
+            // InternalChartDSL.g:11631:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalChartDSL.g:11631:3: rule__XCastedExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__0();
@@ -36163,16 +39552,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0"
-    // InternalChartDSL.g:10630:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
+    // InternalChartDSL.g:11640:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
     public final void rule__XCastedExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10634:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
-            // InternalChartDSL.g:10635:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
+            // InternalChartDSL.g:11644:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
+            // InternalChartDSL.g:11645:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_95);
             rule__XCastedExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -36201,23 +39590,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0__Impl"
-    // InternalChartDSL.g:10642:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:11652:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XCastedExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10646:1: ( ( () ) )
-            // InternalChartDSL.g:10647:1: ( () )
+            // InternalChartDSL.g:11656:1: ( ( () ) )
+            // InternalChartDSL.g:11657:1: ( () )
             {
-            // InternalChartDSL.g:10647:1: ( () )
-            // InternalChartDSL.g:10648:2: ()
+            // InternalChartDSL.g:11657:1: ( () )
+            // InternalChartDSL.g:11658:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); 
             }
-            // InternalChartDSL.g:10649:2: ()
-            // InternalChartDSL.g:10649:3: 
+            // InternalChartDSL.g:11659:2: ()
+            // InternalChartDSL.g:11659:3: 
             {
             }
 
@@ -36242,14 +39631,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1"
-    // InternalChartDSL.g:10657:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
+    // InternalChartDSL.g:11667:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
     public final void rule__XCastedExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10661:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
-            // InternalChartDSL.g:10662:2: rule__XCastedExpression__Group_1_0_0__1__Impl
+            // InternalChartDSL.g:11671:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
+            // InternalChartDSL.g:11672:2: rule__XCastedExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__1__Impl();
@@ -36275,22 +39664,22 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1__Impl"
-    // InternalChartDSL.g:10668:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
+    // InternalChartDSL.g:11678:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
     public final void rule__XCastedExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10672:1: ( ( 'as' ) )
-            // InternalChartDSL.g:10673:1: ( 'as' )
+            // InternalChartDSL.g:11682:1: ( ( 'as' ) )
+            // InternalChartDSL.g:11683:1: ( 'as' )
             {
-            // InternalChartDSL.g:10673:1: ( 'as' )
-            // InternalChartDSL.g:10674:2: 'as'
+            // InternalChartDSL.g:11683:1: ( 'as' )
+            // InternalChartDSL.g:11684:2: 'as'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
             }
-            match(input,75,FOLLOW_2); if (state.failed) return ;
+            match(input,83,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
             }
@@ -36316,16 +39705,16 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0"
-    // InternalChartDSL.g:10684:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
+    // InternalChartDSL.g:11694:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
     public final void rule__XPostfixOperation__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10688:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
-            // InternalChartDSL.g:10689:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
+            // InternalChartDSL.g:11698:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
+            // InternalChartDSL.g:11699:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_97);
             rule__XPostfixOperation__Group__0__Impl();
 
             state._fsp--;
@@ -36354,17 +39743,17 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0__Impl"
-    // InternalChartDSL.g:10696:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
+    // InternalChartDSL.g:11706:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
     public final void rule__XPostfixOperation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10700:1: ( ( ruleXMemberFeatureCall ) )
-            // InternalChartDSL.g:10701:1: ( ruleXMemberFeatureCall )
+            // InternalChartDSL.g:11710:1: ( ( ruleXMemberFeatureCall ) )
+            // InternalChartDSL.g:11711:1: ( ruleXMemberFeatureCall )
             {
-            // InternalChartDSL.g:10701:1: ( ruleXMemberFeatureCall )
-            // InternalChartDSL.g:10702:2: ruleXMemberFeatureCall
+            // InternalChartDSL.g:11711:1: ( ruleXMemberFeatureCall )
+            // InternalChartDSL.g:11712:2: ruleXMemberFeatureCall
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
@@ -36399,14 +39788,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1"
-    // InternalChartDSL.g:10711:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
+    // InternalChartDSL.g:11721:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
     public final void rule__XPostfixOperation__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10715:1: ( rule__XPostfixOperation__Group__1__Impl )
-            // InternalChartDSL.g:10716:2: rule__XPostfixOperation__Group__1__Impl
+            // InternalChartDSL.g:11725:1: ( rule__XPostfixOperation__Group__1__Impl )
+            // InternalChartDSL.g:11726:2: rule__XPostfixOperation__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group__1__Impl();
@@ -36432,42 +39821,42 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1__Impl"
-    // InternalChartDSL.g:10722:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
+    // InternalChartDSL.g:11732:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
     public final void rule__XPostfixOperation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10726:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
-            // InternalChartDSL.g:10727:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalChartDSL.g:11736:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
+            // InternalChartDSL.g:11737:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
             {
-            // InternalChartDSL.g:10727:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
-            // InternalChartDSL.g:10728:2: ( rule__XPostfixOperation__Group_1__0 )?
+            // InternalChartDSL.g:11737:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalChartDSL.g:11738:2: ( rule__XPostfixOperation__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:10729:2: ( rule__XPostfixOperation__Group_1__0 )?
-            int alt94=2;
-            int LA94_0 = input.LA(1);
+            // InternalChartDSL.g:11739:2: ( rule__XPostfixOperation__Group_1__0 )?
+            int alt107=2;
+            int LA107_0 = input.LA(1);
 
-            if ( (LA94_0==41) ) {
-                int LA94_1 = input.LA(2);
+            if ( (LA107_0==41) ) {
+                int LA107_1 = input.LA(2);
 
-                if ( (synpred156_InternalChartDSL()) ) {
-                    alt94=1;
+                if ( (synpred174_InternalChartDSL()) ) {
+                    alt107=1;
                 }
             }
-            else if ( (LA94_0==42) ) {
-                int LA94_2 = input.LA(2);
+            else if ( (LA107_0==42) ) {
+                int LA107_2 = input.LA(2);
 
-                if ( (synpred156_InternalChartDSL()) ) {
-                    alt94=1;
+                if ( (synpred174_InternalChartDSL()) ) {
+                    alt107=1;
                 }
             }
-            switch (alt94) {
+            switch (alt107) {
                 case 1 :
-                    // InternalChartDSL.g:10729:3: rule__XPostfixOperation__Group_1__0
+                    // InternalChartDSL.g:11739:3: rule__XPostfixOperation__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XPostfixOperation__Group_1__0();
@@ -36505,14 +39894,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0"
-    // InternalChartDSL.g:10738:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
+    // InternalChartDSL.g:11748:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
     public final void rule__XPostfixOperation__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10742:1: ( rule__XPostfixOperation__Group_1__0__Impl )
-            // InternalChartDSL.g:10743:2: rule__XPostfixOperation__Group_1__0__Impl
+            // InternalChartDSL.g:11752:1: ( rule__XPostfixOperation__Group_1__0__Impl )
+            // InternalChartDSL.g:11753:2: rule__XPostfixOperation__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1__0__Impl();
@@ -36538,23 +39927,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0__Impl"
-    // InternalChartDSL.g:10749:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
+    // InternalChartDSL.g:11759:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
     public final void rule__XPostfixOperation__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10753:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
-            // InternalChartDSL.g:10754:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalChartDSL.g:11763:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
+            // InternalChartDSL.g:11764:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
             {
-            // InternalChartDSL.g:10754:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
-            // InternalChartDSL.g:10755:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalChartDSL.g:11764:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalChartDSL.g:11765:2: ( rule__XPostfixOperation__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); 
             }
-            // InternalChartDSL.g:10756:2: ( rule__XPostfixOperation__Group_1_0__0 )
-            // InternalChartDSL.g:10756:3: rule__XPostfixOperation__Group_1_0__0
+            // InternalChartDSL.g:11766:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalChartDSL.g:11766:3: rule__XPostfixOperation__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__0();
@@ -36589,16 +39978,16 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0"
-    // InternalChartDSL.g:10765:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
+    // InternalChartDSL.g:11775:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
     public final void rule__XPostfixOperation__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10769:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
-            // InternalChartDSL.g:10770:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
+            // InternalChartDSL.g:11779:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
+            // InternalChartDSL.g:11780:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_97);
             rule__XPostfixOperation__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -36627,23 +40016,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0__Impl"
-    // InternalChartDSL.g:10777:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:11787:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
     public final void rule__XPostfixOperation__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10781:1: ( ( () ) )
-            // InternalChartDSL.g:10782:1: ( () )
+            // InternalChartDSL.g:11791:1: ( ( () ) )
+            // InternalChartDSL.g:11792:1: ( () )
             {
-            // InternalChartDSL.g:10782:1: ( () )
-            // InternalChartDSL.g:10783:2: ()
+            // InternalChartDSL.g:11792:1: ( () )
+            // InternalChartDSL.g:11793:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); 
             }
-            // InternalChartDSL.g:10784:2: ()
-            // InternalChartDSL.g:10784:3: 
+            // InternalChartDSL.g:11794:2: ()
+            // InternalChartDSL.g:11794:3: 
             {
             }
 
@@ -36668,14 +40057,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1"
-    // InternalChartDSL.g:10792:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
+    // InternalChartDSL.g:11802:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
     public final void rule__XPostfixOperation__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10796:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
-            // InternalChartDSL.g:10797:2: rule__XPostfixOperation__Group_1_0__1__Impl
+            // InternalChartDSL.g:11806:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
+            // InternalChartDSL.g:11807:2: rule__XPostfixOperation__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__1__Impl();
@@ -36701,23 +40090,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1__Impl"
-    // InternalChartDSL.g:10803:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
+    // InternalChartDSL.g:11813:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
     public final void rule__XPostfixOperation__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10807:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
-            // InternalChartDSL.g:10808:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalChartDSL.g:11817:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
+            // InternalChartDSL.g:11818:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
             {
-            // InternalChartDSL.g:10808:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
-            // InternalChartDSL.g:10809:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalChartDSL.g:11818:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalChartDSL.g:11819:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); 
             }
-            // InternalChartDSL.g:10810:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
-            // InternalChartDSL.g:10810:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
+            // InternalChartDSL.g:11820:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalChartDSL.g:11820:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__FeatureAssignment_1_0_1();
@@ -36752,16 +40141,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0"
-    // InternalChartDSL.g:10819:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
+    // InternalChartDSL.g:11829:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
     public final void rule__XMemberFeatureCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10823:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
-            // InternalChartDSL.g:10824:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
+            // InternalChartDSL.g:11833:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
+            // InternalChartDSL.g:11834:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
             {
-            pushFollow(FOLLOW_93);
+            pushFollow(FOLLOW_98);
             rule__XMemberFeatureCall__Group__0__Impl();
 
             state._fsp--;
@@ -36790,17 +40179,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0__Impl"
-    // InternalChartDSL.g:10831:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
+    // InternalChartDSL.g:11841:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
     public final void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10835:1: ( ( ruleXPrimaryExpression ) )
-            // InternalChartDSL.g:10836:1: ( ruleXPrimaryExpression )
+            // InternalChartDSL.g:11845:1: ( ( ruleXPrimaryExpression ) )
+            // InternalChartDSL.g:11846:1: ( ruleXPrimaryExpression )
             {
-            // InternalChartDSL.g:10836:1: ( ruleXPrimaryExpression )
-            // InternalChartDSL.g:10837:2: ruleXPrimaryExpression
+            // InternalChartDSL.g:11846:1: ( ruleXPrimaryExpression )
+            // InternalChartDSL.g:11847:2: ruleXPrimaryExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
@@ -36835,14 +40224,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1"
-    // InternalChartDSL.g:10846:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
+    // InternalChartDSL.g:11856:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
     public final void rule__XMemberFeatureCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10850:1: ( rule__XMemberFeatureCall__Group__1__Impl )
-            // InternalChartDSL.g:10851:2: rule__XMemberFeatureCall__Group__1__Impl
+            // InternalChartDSL.g:11860:1: ( rule__XMemberFeatureCall__Group__1__Impl )
+            // InternalChartDSL.g:11861:2: rule__XMemberFeatureCall__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group__1__Impl();
@@ -36868,54 +40257,54 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1__Impl"
-    // InternalChartDSL.g:10857:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
+    // InternalChartDSL.g:11867:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
     public final void rule__XMemberFeatureCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10861:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
-            // InternalChartDSL.g:10862:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalChartDSL.g:11871:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
+            // InternalChartDSL.g:11872:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
             {
-            // InternalChartDSL.g:10862:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
-            // InternalChartDSL.g:10863:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            // InternalChartDSL.g:11872:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalChartDSL.g:11873:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); 
             }
-            // InternalChartDSL.g:10864:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
-            loop95:
+            // InternalChartDSL.g:11874:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            loop108:
             do {
-                int alt95=2;
+                int alt108=2;
                 switch ( input.LA(1) ) {
                 case 43:
                     {
-                    int LA95_2 = input.LA(2);
+                    int LA108_2 = input.LA(2);
 
-                    if ( (synpred157_InternalChartDSL()) ) {
-                        alt95=1;
+                    if ( (synpred175_InternalChartDSL()) ) {
+                        alt108=1;
                     }
 
 
                     }
                     break;
-                case 150:
+                case 167:
                     {
-                    int LA95_3 = input.LA(2);
+                    int LA108_3 = input.LA(2);
 
-                    if ( (synpred157_InternalChartDSL()) ) {
-                        alt95=1;
+                    if ( (synpred175_InternalChartDSL()) ) {
+                        alt108=1;
                     }
 
 
                     }
                     break;
-                case 151:
+                case 168:
                     {
-                    int LA95_4 = input.LA(2);
+                    int LA108_4 = input.LA(2);
 
-                    if ( (synpred157_InternalChartDSL()) ) {
-                        alt95=1;
+                    if ( (synpred175_InternalChartDSL()) ) {
+                        alt108=1;
                     }
 
 
@@ -36924,11 +40313,11 @@
 
                 }
 
-                switch (alt95) {
+                switch (alt108) {
             	case 1 :
-            	    // InternalChartDSL.g:10864:3: rule__XMemberFeatureCall__Alternatives_1
+            	    // InternalChartDSL.g:11874:3: rule__XMemberFeatureCall__Alternatives_1
             	    {
-            	    pushFollow(FOLLOW_94);
+            	    pushFollow(FOLLOW_99);
             	    rule__XMemberFeatureCall__Alternatives_1();
 
             	    state._fsp--;
@@ -36938,7 +40327,7 @@
             	    break;
 
             	default :
-            	    break loop95;
+            	    break loop108;
                 }
             } while (true);
 
@@ -36967,16 +40356,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0"
-    // InternalChartDSL.g:10873:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
+    // InternalChartDSL.g:11883:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10877:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
-            // InternalChartDSL.g:10878:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
+            // InternalChartDSL.g:11887:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
+            // InternalChartDSL.g:11888:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XMemberFeatureCall__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -37005,23 +40394,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0__Impl"
-    // InternalChartDSL.g:10885:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:11895:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10889:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
-            // InternalChartDSL.g:10890:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:11899:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
+            // InternalChartDSL.g:11900:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:10890:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
-            // InternalChartDSL.g:10891:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalChartDSL.g:11900:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalChartDSL.g:11901:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); 
             }
-            // InternalChartDSL.g:10892:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
-            // InternalChartDSL.g:10892:3: rule__XMemberFeatureCall__Group_1_0_0__0
+            // InternalChartDSL.g:11902:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalChartDSL.g:11902:3: rule__XMemberFeatureCall__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0();
@@ -37056,14 +40445,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1"
-    // InternalChartDSL.g:10900:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
+    // InternalChartDSL.g:11910:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10904:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
-            // InternalChartDSL.g:10905:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
+            // InternalChartDSL.g:11914:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
+            // InternalChartDSL.g:11915:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0__1__Impl();
@@ -37089,23 +40478,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1__Impl"
-    // InternalChartDSL.g:10911:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
+    // InternalChartDSL.g:11921:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10915:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
-            // InternalChartDSL.g:10916:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalChartDSL.g:11925:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
+            // InternalChartDSL.g:11926:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
             {
-            // InternalChartDSL.g:10916:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
-            // InternalChartDSL.g:10917:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalChartDSL.g:11926:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalChartDSL.g:11927:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); 
             }
-            // InternalChartDSL.g:10918:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
-            // InternalChartDSL.g:10918:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
+            // InternalChartDSL.g:11928:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalChartDSL.g:11928:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ValueAssignment_1_0_1();
@@ -37140,14 +40529,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0"
-    // InternalChartDSL.g:10927:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
+    // InternalChartDSL.g:11937:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10931:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
-            // InternalChartDSL.g:10932:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+            // InternalChartDSL.g:11941:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
+            // InternalChartDSL.g:11942:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0__Impl();
@@ -37173,23 +40562,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"
-    // InternalChartDSL.g:10938:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
+    // InternalChartDSL.g:11948:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10942:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
-            // InternalChartDSL.g:10943:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalChartDSL.g:11952:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
+            // InternalChartDSL.g:11953:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
             {
-            // InternalChartDSL.g:10943:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
-            // InternalChartDSL.g:10944:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalChartDSL.g:11953:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalChartDSL.g:11954:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); 
             }
-            // InternalChartDSL.g:10945:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
-            // InternalChartDSL.g:10945:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
+            // InternalChartDSL.g:11955:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalChartDSL.g:11955:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__0();
@@ -37224,16 +40613,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0"
-    // InternalChartDSL.g:10954:1: rule__XMemberFeatureCall__Group_1_0_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 ;
+    // InternalChartDSL.g:11964:1: rule__XMemberFeatureCall__Group_1_0_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10958:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
-            // InternalChartDSL.g:10959:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
+            // InternalChartDSL.g:11968:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
+            // InternalChartDSL.g:11969:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
             {
-            pushFollow(FOLLOW_95);
+            pushFollow(FOLLOW_100);
             rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl();
 
             state._fsp--;
@@ -37262,23 +40651,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"
-    // InternalChartDSL.g:10966:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:11976:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10970:1: ( ( () ) )
-            // InternalChartDSL.g:10971:1: ( () )
+            // InternalChartDSL.g:11980:1: ( ( () ) )
+            // InternalChartDSL.g:11981:1: ( () )
             {
-            // InternalChartDSL.g:10971:1: ( () )
-            // InternalChartDSL.g:10972:2: ()
+            // InternalChartDSL.g:11981:1: ( () )
+            // InternalChartDSL.g:11982:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); 
             }
-            // InternalChartDSL.g:10973:2: ()
-            // InternalChartDSL.g:10973:3: 
+            // InternalChartDSL.g:11983:2: ()
+            // InternalChartDSL.g:11983:3: 
             {
             }
 
@@ -37303,16 +40692,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1"
-    // InternalChartDSL.g:10981:1: rule__XMemberFeatureCall__Group_1_0_0_0__1 : rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 ;
+    // InternalChartDSL.g:11991:1: rule__XMemberFeatureCall__Group_1_0_0_0__1 : rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10985:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
-            // InternalChartDSL.g:10986:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
+            // InternalChartDSL.g:11995:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
+            // InternalChartDSL.g:11996:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
             {
-            pushFollow(FOLLOW_66);
+            pushFollow(FOLLOW_71);
             rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl();
 
             state._fsp--;
@@ -37341,23 +40730,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"
-    // InternalChartDSL.g:10993:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
+    // InternalChartDSL.g:12003:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:10997:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
-            // InternalChartDSL.g:10998:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalChartDSL.g:12007:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
+            // InternalChartDSL.g:12008:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
             {
-            // InternalChartDSL.g:10998:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
-            // InternalChartDSL.g:10999:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalChartDSL.g:12008:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalChartDSL.g:12009:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); 
             }
-            // InternalChartDSL.g:11000:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
-            // InternalChartDSL.g:11000:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
+            // InternalChartDSL.g:12010:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalChartDSL.g:12010:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_0_0_0_1();
@@ -37392,16 +40781,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2"
-    // InternalChartDSL.g:11008:1: rule__XMemberFeatureCall__Group_1_0_0_0__2 : rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 ;
+    // InternalChartDSL.g:12018:1: rule__XMemberFeatureCall__Group_1_0_0_0__2 : rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11012:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
-            // InternalChartDSL.g:11013:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
+            // InternalChartDSL.g:12022:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
+            // InternalChartDSL.g:12023:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_67);
             rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl();
 
             state._fsp--;
@@ -37430,23 +40819,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"
-    // InternalChartDSL.g:11020:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
+    // InternalChartDSL.g:12030:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11024:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
-            // InternalChartDSL.g:11025:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalChartDSL.g:12034:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
+            // InternalChartDSL.g:12035:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
             {
-            // InternalChartDSL.g:11025:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
-            // InternalChartDSL.g:11026:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalChartDSL.g:12035:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalChartDSL.g:12036:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); 
             }
-            // InternalChartDSL.g:11027:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
-            // InternalChartDSL.g:11027:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
+            // InternalChartDSL.g:12037:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalChartDSL.g:12037:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2();
@@ -37481,14 +40870,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3"
-    // InternalChartDSL.g:11035:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
+    // InternalChartDSL.g:12045:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11039:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
-            // InternalChartDSL.g:11040:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+            // InternalChartDSL.g:12049:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
+            // InternalChartDSL.g:12050:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl();
@@ -37514,17 +40903,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"
-    // InternalChartDSL.g:11046:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
+    // InternalChartDSL.g:12056:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11050:1: ( ( ruleOpSingleAssign ) )
-            // InternalChartDSL.g:11051:1: ( ruleOpSingleAssign )
+            // InternalChartDSL.g:12060:1: ( ( ruleOpSingleAssign ) )
+            // InternalChartDSL.g:12061:1: ( ruleOpSingleAssign )
             {
-            // InternalChartDSL.g:11051:1: ( ruleOpSingleAssign )
-            // InternalChartDSL.g:11052:2: ruleOpSingleAssign
+            // InternalChartDSL.g:12061:1: ( ruleOpSingleAssign )
+            // InternalChartDSL.g:12062:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
@@ -37559,16 +40948,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0"
-    // InternalChartDSL.g:11062:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
+    // InternalChartDSL.g:12072:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11066:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
-            // InternalChartDSL.g:11067:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
+            // InternalChartDSL.g:12076:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
+            // InternalChartDSL.g:12077:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
             {
-            pushFollow(FOLLOW_96);
+            pushFollow(FOLLOW_101);
             rule__XMemberFeatureCall__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -37597,23 +40986,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0__Impl"
-    // InternalChartDSL.g:11074:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
+    // InternalChartDSL.g:12084:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11078:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
-            // InternalChartDSL.g:11079:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalChartDSL.g:12088:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
+            // InternalChartDSL.g:12089:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
             {
-            // InternalChartDSL.g:11079:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
-            // InternalChartDSL.g:11080:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalChartDSL.g:12089:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalChartDSL.g:12090:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); 
             }
-            // InternalChartDSL.g:11081:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
-            // InternalChartDSL.g:11081:3: rule__XMemberFeatureCall__Group_1_1_0__0
+            // InternalChartDSL.g:12091:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalChartDSL.g:12091:3: rule__XMemberFeatureCall__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0();
@@ -37648,16 +41037,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1"
-    // InternalChartDSL.g:11089:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
+    // InternalChartDSL.g:12099:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11093:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
-            // InternalChartDSL.g:11094:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
+            // InternalChartDSL.g:12103:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
+            // InternalChartDSL.g:12104:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
             {
-            pushFollow(FOLLOW_96);
+            pushFollow(FOLLOW_101);
             rule__XMemberFeatureCall__Group_1_1__1__Impl();
 
             state._fsp--;
@@ -37686,31 +41075,31 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1__Impl"
-    // InternalChartDSL.g:11101:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
+    // InternalChartDSL.g:12111:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11105:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
-            // InternalChartDSL.g:11106:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalChartDSL.g:12115:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
+            // InternalChartDSL.g:12116:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
             {
-            // InternalChartDSL.g:11106:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
-            // InternalChartDSL.g:11107:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            // InternalChartDSL.g:12116:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalChartDSL.g:12117:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); 
             }
-            // InternalChartDSL.g:11108:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
-            int alt96=2;
-            int LA96_0 = input.LA(1);
+            // InternalChartDSL.g:12118:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            int alt109=2;
+            int LA109_0 = input.LA(1);
 
-            if ( (LA96_0==27) ) {
-                alt96=1;
+            if ( (LA109_0==27) ) {
+                alt109=1;
             }
-            switch (alt96) {
+            switch (alt109) {
                 case 1 :
-                    // InternalChartDSL.g:11108:3: rule__XMemberFeatureCall__Group_1_1_1__0
+                    // InternalChartDSL.g:12118:3: rule__XMemberFeatureCall__Group_1_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_1__0();
@@ -37748,16 +41137,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2"
-    // InternalChartDSL.g:11116:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
+    // InternalChartDSL.g:12126:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
     public final void rule__XMemberFeatureCall__Group_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11120:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
-            // InternalChartDSL.g:11121:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
+            // InternalChartDSL.g:12130:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
+            // InternalChartDSL.g:12131:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
             {
-            pushFollow(FOLLOW_97);
+            pushFollow(FOLLOW_102);
             rule__XMemberFeatureCall__Group_1_1__2__Impl();
 
             state._fsp--;
@@ -37786,23 +41175,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2__Impl"
-    // InternalChartDSL.g:11128:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
+    // InternalChartDSL.g:12138:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11132:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
-            // InternalChartDSL.g:11133:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalChartDSL.g:12142:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
+            // InternalChartDSL.g:12143:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
             {
-            // InternalChartDSL.g:11133:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
-            // InternalChartDSL.g:11134:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalChartDSL.g:12143:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalChartDSL.g:12144:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); 
             }
-            // InternalChartDSL.g:11135:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
-            // InternalChartDSL.g:11135:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
+            // InternalChartDSL.g:12145:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalChartDSL.g:12145:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_1_2();
@@ -37837,16 +41226,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3"
-    // InternalChartDSL.g:11143:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
+    // InternalChartDSL.g:12153:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
     public final void rule__XMemberFeatureCall__Group_1_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11147:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
-            // InternalChartDSL.g:11148:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
+            // InternalChartDSL.g:12157:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
+            // InternalChartDSL.g:12158:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
             {
-            pushFollow(FOLLOW_97);
+            pushFollow(FOLLOW_102);
             rule__XMemberFeatureCall__Group_1_1__3__Impl();
 
             state._fsp--;
@@ -37875,27 +41264,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3__Impl"
-    // InternalChartDSL.g:11155:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
+    // InternalChartDSL.g:12165:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11159:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
-            // InternalChartDSL.g:11160:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalChartDSL.g:12169:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
+            // InternalChartDSL.g:12170:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
             {
-            // InternalChartDSL.g:11160:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
-            // InternalChartDSL.g:11161:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            // InternalChartDSL.g:12170:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalChartDSL.g:12171:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); 
             }
-            // InternalChartDSL.g:11162:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
-            int alt97=2;
-            alt97 = dfa97.predict(input);
-            switch (alt97) {
+            // InternalChartDSL.g:12172:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            int alt110=2;
+            alt110 = dfa110.predict(input);
+            switch (alt110) {
                 case 1 :
-                    // InternalChartDSL.g:11162:3: rule__XMemberFeatureCall__Group_1_1_3__0
+                    // InternalChartDSL.g:12172:3: rule__XMemberFeatureCall__Group_1_1_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3__0();
@@ -37933,14 +41322,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4"
-    // InternalChartDSL.g:11170:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
+    // InternalChartDSL.g:12180:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11174:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
-            // InternalChartDSL.g:11175:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
+            // InternalChartDSL.g:12184:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
+            // InternalChartDSL.g:12185:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1__4__Impl();
@@ -37966,27 +41355,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4__Impl"
-    // InternalChartDSL.g:11181:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
+    // InternalChartDSL.g:12191:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11185:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
-            // InternalChartDSL.g:11186:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalChartDSL.g:12195:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
+            // InternalChartDSL.g:12196:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
             {
-            // InternalChartDSL.g:11186:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
-            // InternalChartDSL.g:11187:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            // InternalChartDSL.g:12196:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalChartDSL.g:12197:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); 
             }
-            // InternalChartDSL.g:11188:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
-            int alt98=2;
-            alt98 = dfa98.predict(input);
-            switch (alt98) {
+            // InternalChartDSL.g:12198:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            int alt111=2;
+            alt111 = dfa111.predict(input);
+            switch (alt111) {
                 case 1 :
-                    // InternalChartDSL.g:11188:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+                    // InternalChartDSL.g:12198:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -38024,14 +41413,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0"
-    // InternalChartDSL.g:11197:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
+    // InternalChartDSL.g:12207:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11201:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
-            // InternalChartDSL.g:11202:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+            // InternalChartDSL.g:12211:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
+            // InternalChartDSL.g:12212:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0__Impl();
@@ -38057,23 +41446,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"
-    // InternalChartDSL.g:11208:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:12218:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11212:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
-            // InternalChartDSL.g:11213:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalChartDSL.g:12222:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
+            // InternalChartDSL.g:12223:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:11213:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
-            // InternalChartDSL.g:11214:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalChartDSL.g:12223:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalChartDSL.g:12224:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); 
             }
-            // InternalChartDSL.g:11215:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
-            // InternalChartDSL.g:11215:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
+            // InternalChartDSL.g:12225:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalChartDSL.g:12225:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__0();
@@ -38108,16 +41497,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0"
-    // InternalChartDSL.g:11224:1: rule__XMemberFeatureCall__Group_1_1_0_0__0 : rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 ;
+    // InternalChartDSL.g:12234:1: rule__XMemberFeatureCall__Group_1_1_0_0__0 : rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11228:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
-            // InternalChartDSL.g:11229:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
+            // InternalChartDSL.g:12238:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
+            // InternalChartDSL.g:12239:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_93);
+            pushFollow(FOLLOW_98);
             rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -38146,23 +41535,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"
-    // InternalChartDSL.g:11236:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:12246:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11240:1: ( ( () ) )
-            // InternalChartDSL.g:11241:1: ( () )
+            // InternalChartDSL.g:12250:1: ( ( () ) )
+            // InternalChartDSL.g:12251:1: ( () )
             {
-            // InternalChartDSL.g:11241:1: ( () )
-            // InternalChartDSL.g:11242:2: ()
+            // InternalChartDSL.g:12251:1: ( () )
+            // InternalChartDSL.g:12252:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); 
             }
-            // InternalChartDSL.g:11243:2: ()
-            // InternalChartDSL.g:11243:3: 
+            // InternalChartDSL.g:12253:2: ()
+            // InternalChartDSL.g:12253:3: 
             {
             }
 
@@ -38187,14 +41576,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1"
-    // InternalChartDSL.g:11251:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
+    // InternalChartDSL.g:12261:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11255:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
-            // InternalChartDSL.g:11256:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+            // InternalChartDSL.g:12265:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
+            // InternalChartDSL.g:12266:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl();
@@ -38220,23 +41609,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"
-    // InternalChartDSL.g:11262:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
+    // InternalChartDSL.g:12272:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11266:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
-            // InternalChartDSL.g:11267:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalChartDSL.g:12276:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
+            // InternalChartDSL.g:12277:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
             {
-            // InternalChartDSL.g:11267:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
-            // InternalChartDSL.g:11268:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalChartDSL.g:12277:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalChartDSL.g:12278:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); 
             }
-            // InternalChartDSL.g:11269:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
-            // InternalChartDSL.g:11269:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
+            // InternalChartDSL.g:12279:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalChartDSL.g:12279:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_1_0_0_1();
@@ -38271,16 +41660,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0"
-    // InternalChartDSL.g:11278:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
+    // InternalChartDSL.g:12288:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11282:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
-            // InternalChartDSL.g:11283:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
+            // InternalChartDSL.g:12292:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
+            // InternalChartDSL.g:12293:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_103);
             rule__XMemberFeatureCall__Group_1_1_1__0__Impl();
 
             state._fsp--;
@@ -38309,17 +41698,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"
-    // InternalChartDSL.g:11290:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
+    // InternalChartDSL.g:12300:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11294:1: ( ( '<' ) )
-            // InternalChartDSL.g:11295:1: ( '<' )
+            // InternalChartDSL.g:12304:1: ( ( '<' ) )
+            // InternalChartDSL.g:12305:1: ( '<' )
             {
-            // InternalChartDSL.g:11295:1: ( '<' )
-            // InternalChartDSL.g:11296:2: '<'
+            // InternalChartDSL.g:12305:1: ( '<' )
+            // InternalChartDSL.g:12306:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
@@ -38350,16 +41739,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1"
-    // InternalChartDSL.g:11305:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
+    // InternalChartDSL.g:12315:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11309:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
-            // InternalChartDSL.g:11310:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
+            // InternalChartDSL.g:12319:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
+            // InternalChartDSL.g:12320:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_104);
             rule__XMemberFeatureCall__Group_1_1_1__1__Impl();
 
             state._fsp--;
@@ -38388,23 +41777,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"
-    // InternalChartDSL.g:11317:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
+    // InternalChartDSL.g:12327:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11321:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
-            // InternalChartDSL.g:11322:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalChartDSL.g:12331:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
+            // InternalChartDSL.g:12332:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
             {
-            // InternalChartDSL.g:11322:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
-            // InternalChartDSL.g:11323:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalChartDSL.g:12332:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalChartDSL.g:12333:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); 
             }
-            // InternalChartDSL.g:11324:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
-            // InternalChartDSL.g:11324:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
+            // InternalChartDSL.g:12334:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalChartDSL.g:12334:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1();
@@ -38439,16 +41828,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2"
-    // InternalChartDSL.g:11332:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
+    // InternalChartDSL.g:12342:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11336:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
-            // InternalChartDSL.g:11337:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
+            // InternalChartDSL.g:12346:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
+            // InternalChartDSL.g:12347:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_104);
             rule__XMemberFeatureCall__Group_1_1_1__2__Impl();
 
             state._fsp--;
@@ -38477,37 +41866,37 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"
-    // InternalChartDSL.g:11344:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
+    // InternalChartDSL.g:12354:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11348:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
-            // InternalChartDSL.g:11349:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalChartDSL.g:12358:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
+            // InternalChartDSL.g:12359:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
             {
-            // InternalChartDSL.g:11349:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
-            // InternalChartDSL.g:11350:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            // InternalChartDSL.g:12359:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalChartDSL.g:12360:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); 
             }
-            // InternalChartDSL.g:11351:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
-            loop99:
+            // InternalChartDSL.g:12361:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            loop112:
             do {
-                int alt99=2;
-                int LA99_0 = input.LA(1);
+                int alt112=2;
+                int LA112_0 = input.LA(1);
 
-                if ( (LA99_0==99) ) {
-                    alt99=1;
+                if ( (LA112_0==114) ) {
+                    alt112=1;
                 }
 
 
-                switch (alt99) {
+                switch (alt112) {
             	case 1 :
-            	    // InternalChartDSL.g:11351:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
+            	    // InternalChartDSL.g:12361:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XMemberFeatureCall__Group_1_1_1_2__0();
 
             	    state._fsp--;
@@ -38517,7 +41906,7 @@
             	    break;
 
             	default :
-            	    break loop99;
+            	    break loop112;
                 }
             } while (true);
 
@@ -38546,14 +41935,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3"
-    // InternalChartDSL.g:11359:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
+    // InternalChartDSL.g:12369:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11363:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
-            // InternalChartDSL.g:11364:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+            // InternalChartDSL.g:12373:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
+            // InternalChartDSL.g:12374:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1__3__Impl();
@@ -38579,17 +41968,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"
-    // InternalChartDSL.g:11370:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
+    // InternalChartDSL.g:12380:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11374:1: ( ( '>' ) )
-            // InternalChartDSL.g:11375:1: ( '>' )
+            // InternalChartDSL.g:12384:1: ( ( '>' ) )
+            // InternalChartDSL.g:12385:1: ( '>' )
             {
-            // InternalChartDSL.g:11375:1: ( '>' )
-            // InternalChartDSL.g:11376:2: '>'
+            // InternalChartDSL.g:12385:1: ( '>' )
+            // InternalChartDSL.g:12386:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
@@ -38620,16 +42009,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0"
-    // InternalChartDSL.g:11386:1: rule__XMemberFeatureCall__Group_1_1_1_2__0 : rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 ;
+    // InternalChartDSL.g:12396:1: rule__XMemberFeatureCall__Group_1_1_1_2__0 : rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11390:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
-            // InternalChartDSL.g:11391:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
+            // InternalChartDSL.g:12400:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
+            // InternalChartDSL.g:12401:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_103);
             rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl();
 
             state._fsp--;
@@ -38658,22 +42047,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"
-    // InternalChartDSL.g:11398:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:12408:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11402:1: ( ( ',' ) )
-            // InternalChartDSL.g:11403:1: ( ',' )
+            // InternalChartDSL.g:12412:1: ( ( ',' ) )
+            // InternalChartDSL.g:12413:1: ( ',' )
             {
-            // InternalChartDSL.g:11403:1: ( ',' )
-            // InternalChartDSL.g:11404:2: ','
+            // InternalChartDSL.g:12413:1: ( ',' )
+            // InternalChartDSL.g:12414:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
             }
@@ -38699,14 +42088,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1"
-    // InternalChartDSL.g:11413:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
+    // InternalChartDSL.g:12423:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11417:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
-            // InternalChartDSL.g:11418:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+            // InternalChartDSL.g:12427:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
+            // InternalChartDSL.g:12428:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl();
@@ -38732,23 +42121,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"
-    // InternalChartDSL.g:11424:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
+    // InternalChartDSL.g:12434:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11428:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
-            // InternalChartDSL.g:11429:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalChartDSL.g:12438:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
+            // InternalChartDSL.g:12439:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
             {
-            // InternalChartDSL.g:11429:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
-            // InternalChartDSL.g:11430:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalChartDSL.g:12439:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalChartDSL.g:12440:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); 
             }
-            // InternalChartDSL.g:11431:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
-            // InternalChartDSL.g:11431:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
+            // InternalChartDSL.g:12441:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalChartDSL.g:12441:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1();
@@ -38783,16 +42172,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0"
-    // InternalChartDSL.g:11440:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
+    // InternalChartDSL.g:12450:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11444:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
-            // InternalChartDSL.g:11445:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
+            // InternalChartDSL.g:12454:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
+            // InternalChartDSL.g:12455:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
             {
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_105);
             rule__XMemberFeatureCall__Group_1_1_3__0__Impl();
 
             state._fsp--;
@@ -38821,23 +42210,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"
-    // InternalChartDSL.g:11452:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
+    // InternalChartDSL.g:12462:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11456:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
-            // InternalChartDSL.g:11457:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalChartDSL.g:12466:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
+            // InternalChartDSL.g:12467:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
             {
-            // InternalChartDSL.g:11457:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
-            // InternalChartDSL.g:11458:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalChartDSL.g:12467:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalChartDSL.g:12468:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); 
             }
-            // InternalChartDSL.g:11459:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
-            // InternalChartDSL.g:11459:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
+            // InternalChartDSL.g:12469:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalChartDSL.g:12469:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0();
@@ -38872,16 +42261,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1"
-    // InternalChartDSL.g:11467:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
+    // InternalChartDSL.g:12477:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11471:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
-            // InternalChartDSL.g:11472:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
+            // InternalChartDSL.g:12481:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
+            // InternalChartDSL.g:12482:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
             {
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_105);
             rule__XMemberFeatureCall__Group_1_1_3__1__Impl();
 
             state._fsp--;
@@ -38910,31 +42299,31 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"
-    // InternalChartDSL.g:11479:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
+    // InternalChartDSL.g:12489:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11483:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
-            // InternalChartDSL.g:11484:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalChartDSL.g:12493:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
+            // InternalChartDSL.g:12494:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
             {
-            // InternalChartDSL.g:11484:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
-            // InternalChartDSL.g:11485:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            // InternalChartDSL.g:12494:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalChartDSL.g:12495:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); 
             }
-            // InternalChartDSL.g:11486:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
-            int alt100=2;
-            int LA100_0 = input.LA(1);
+            // InternalChartDSL.g:12496:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            int alt113=2;
+            int LA113_0 = input.LA(1);
 
-            if ( ((LA100_0>=RULE_STRING && LA100_0<=RULE_DECIMAL)||LA100_0==27||LA100_0==31||(LA100_0>=34 && LA100_0<=35)||LA100_0==40||(LA100_0>=45 && LA100_0<=50)||LA100_0==72||LA100_0==97||(LA100_0>=101 && LA100_0<=102)||LA100_0==104||LA100_0==106||(LA100_0>=110 && LA100_0<=118)||LA100_0==120||LA100_0==152||LA100_0==154) ) {
-                alt100=1;
+            if ( ((LA113_0>=RULE_STRING && LA113_0<=RULE_DECIMAL)||LA113_0==27||LA113_0==31||(LA113_0>=34 && LA113_0<=35)||LA113_0==40||(LA113_0>=45 && LA113_0<=50)||LA113_0==79||LA113_0==112||(LA113_0>=116 && LA113_0<=117)||LA113_0==119||LA113_0==121||(LA113_0>=125 && LA113_0<=133)||LA113_0==135||LA113_0==169||LA113_0==171) ) {
+                alt113=1;
             }
-            switch (alt100) {
+            switch (alt113) {
                 case 1 :
-                    // InternalChartDSL.g:11486:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
+                    // InternalChartDSL.g:12496:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Alternatives_1_1_3_1();
@@ -38972,14 +42361,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2"
-    // InternalChartDSL.g:11494:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
+    // InternalChartDSL.g:12504:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11498:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
-            // InternalChartDSL.g:11499:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+            // InternalChartDSL.g:12508:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
+            // InternalChartDSL.g:12509:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3__2__Impl();
@@ -39005,22 +42394,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"
-    // InternalChartDSL.g:11505:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
+    // InternalChartDSL.g:12515:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11509:1: ( ( ')' ) )
-            // InternalChartDSL.g:11510:1: ( ')' )
+            // InternalChartDSL.g:12519:1: ( ( ')' ) )
+            // InternalChartDSL.g:12520:1: ( ')' )
             {
-            // InternalChartDSL.g:11510:1: ( ')' )
-            // InternalChartDSL.g:11511:2: ')'
+            // InternalChartDSL.g:12520:1: ( ')' )
+            // InternalChartDSL.g:12521:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
             }
@@ -39046,16 +42435,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"
-    // InternalChartDSL.g:11521:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 ;
+    // InternalChartDSL.g:12531:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11525:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
-            // InternalChartDSL.g:11526:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+            // InternalChartDSL.g:12535:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
+            // InternalChartDSL.g:12536:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl();
 
             state._fsp--;
@@ -39084,23 +42473,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"
-    // InternalChartDSL.g:11533:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
+    // InternalChartDSL.g:12543:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11537:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
-            // InternalChartDSL.g:11538:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalChartDSL.g:12547:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
+            // InternalChartDSL.g:12548:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
             {
-            // InternalChartDSL.g:11538:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
-            // InternalChartDSL.g:11539:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalChartDSL.g:12548:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalChartDSL.g:12549:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); 
             }
-            // InternalChartDSL.g:11540:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
-            // InternalChartDSL.g:11540:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
+            // InternalChartDSL.g:12550:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalChartDSL.g:12550:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0();
@@ -39135,14 +42524,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"
-    // InternalChartDSL.g:11548:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
+    // InternalChartDSL.g:12558:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11552:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
-            // InternalChartDSL.g:11553:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+            // InternalChartDSL.g:12562:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
+            // InternalChartDSL.g:12563:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl();
@@ -39168,37 +42557,37 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"
-    // InternalChartDSL.g:11559:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
+    // InternalChartDSL.g:12569:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11563:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
-            // InternalChartDSL.g:11564:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalChartDSL.g:12573:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
+            // InternalChartDSL.g:12574:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
             {
-            // InternalChartDSL.g:11564:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
-            // InternalChartDSL.g:11565:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            // InternalChartDSL.g:12574:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalChartDSL.g:12575:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); 
             }
-            // InternalChartDSL.g:11566:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
-            loop101:
+            // InternalChartDSL.g:12576:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            loop114:
             do {
-                int alt101=2;
-                int LA101_0 = input.LA(1);
+                int alt114=2;
+                int LA114_0 = input.LA(1);
 
-                if ( (LA101_0==99) ) {
-                    alt101=1;
+                if ( (LA114_0==114) ) {
+                    alt114=1;
                 }
 
 
-                switch (alt101) {
+                switch (alt114) {
             	case 1 :
-            	    // InternalChartDSL.g:11566:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
+            	    // InternalChartDSL.g:12576:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0();
 
             	    state._fsp--;
@@ -39208,7 +42597,7 @@
             	    break;
 
             	default :
-            	    break loop101;
+            	    break loop114;
                 }
             } while (true);
 
@@ -39237,16 +42626,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"
-    // InternalChartDSL.g:11575:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 ;
+    // InternalChartDSL.g:12585:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11579:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
-            // InternalChartDSL.g:11580:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+            // InternalChartDSL.g:12589:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
+            // InternalChartDSL.g:12590:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl();
 
             state._fsp--;
@@ -39275,22 +42664,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"
-    // InternalChartDSL.g:11587:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:12597:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11591:1: ( ( ',' ) )
-            // InternalChartDSL.g:11592:1: ( ',' )
+            // InternalChartDSL.g:12601:1: ( ( ',' ) )
+            // InternalChartDSL.g:12602:1: ( ',' )
             {
-            // InternalChartDSL.g:11592:1: ( ',' )
-            // InternalChartDSL.g:11593:2: ','
+            // InternalChartDSL.g:12602:1: ( ',' )
+            // InternalChartDSL.g:12603:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
             }
@@ -39316,14 +42705,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"
-    // InternalChartDSL.g:11602:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
+    // InternalChartDSL.g:12612:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11606:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
-            // InternalChartDSL.g:11607:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+            // InternalChartDSL.g:12616:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
+            // InternalChartDSL.g:12617:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl();
@@ -39349,23 +42738,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"
-    // InternalChartDSL.g:11613:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
+    // InternalChartDSL.g:12623:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11617:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
-            // InternalChartDSL.g:11618:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalChartDSL.g:12627:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
+            // InternalChartDSL.g:12628:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
             {
-            // InternalChartDSL.g:11618:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
-            // InternalChartDSL.g:11619:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalChartDSL.g:12628:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalChartDSL.g:12629:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); 
             }
-            // InternalChartDSL.g:11620:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
-            // InternalChartDSL.g:11620:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
+            // InternalChartDSL.g:12630:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalChartDSL.g:12630:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1();
@@ -39400,16 +42789,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0"
-    // InternalChartDSL.g:11629:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
+    // InternalChartDSL.g:12639:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
     public final void rule__XSetLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11633:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
-            // InternalChartDSL.g:11634:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
+            // InternalChartDSL.g:12643:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
+            // InternalChartDSL.g:12644:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
             {
-            pushFollow(FOLLOW_64);
+            pushFollow(FOLLOW_69);
             rule__XSetLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -39438,23 +42827,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0__Impl"
-    // InternalChartDSL.g:11641:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:12651:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XSetLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11645:1: ( ( () ) )
-            // InternalChartDSL.g:11646:1: ( () )
+            // InternalChartDSL.g:12655:1: ( ( () ) )
+            // InternalChartDSL.g:12656:1: ( () )
             {
-            // InternalChartDSL.g:11646:1: ( () )
-            // InternalChartDSL.g:11647:2: ()
+            // InternalChartDSL.g:12656:1: ( () )
+            // InternalChartDSL.g:12657:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); 
             }
-            // InternalChartDSL.g:11648:2: ()
-            // InternalChartDSL.g:11648:3: 
+            // InternalChartDSL.g:12658:2: ()
+            // InternalChartDSL.g:12658:3: 
             {
             }
 
@@ -39479,16 +42868,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1"
-    // InternalChartDSL.g:11656:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
+    // InternalChartDSL.g:12666:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
     public final void rule__XSetLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11660:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
-            // InternalChartDSL.g:11661:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
+            // InternalChartDSL.g:12670:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
+            // InternalChartDSL.g:12671:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
             {
-            pushFollow(FOLLOW_8);
+            pushFollow(FOLLOW_9);
             rule__XSetLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -39517,22 +42906,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1__Impl"
-    // InternalChartDSL.g:11668:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalChartDSL.g:12678:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XSetLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11672:1: ( ( '#' ) )
-            // InternalChartDSL.g:11673:1: ( '#' )
+            // InternalChartDSL.g:12682:1: ( ( '#' ) )
+            // InternalChartDSL.g:12683:1: ( '#' )
             {
-            // InternalChartDSL.g:11673:1: ( '#' )
-            // InternalChartDSL.g:11674:2: '#'
+            // InternalChartDSL.g:12683:1: ( '#' )
+            // InternalChartDSL.g:12684:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,116,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
             }
@@ -39558,16 +42947,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2"
-    // InternalChartDSL.g:11683:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
+    // InternalChartDSL.g:12693:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
     public final void rule__XSetLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11687:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
-            // InternalChartDSL.g:11688:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
+            // InternalChartDSL.g:12697:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
+            // InternalChartDSL.g:12698:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
             {
-            pushFollow(FOLLOW_101);
+            pushFollow(FOLLOW_106);
             rule__XSetLiteral__Group__2__Impl();
 
             state._fsp--;
@@ -39596,22 +42985,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2__Impl"
-    // InternalChartDSL.g:11695:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
+    // InternalChartDSL.g:12705:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
     public final void rule__XSetLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11699:1: ( ( '{' ) )
-            // InternalChartDSL.g:11700:1: ( '{' )
+            // InternalChartDSL.g:12709:1: ( ( '{' ) )
+            // InternalChartDSL.g:12710:1: ( '{' )
             {
-            // InternalChartDSL.g:11700:1: ( '{' )
-            // InternalChartDSL.g:11701:2: '{'
+            // InternalChartDSL.g:12710:1: ( '{' )
+            // InternalChartDSL.g:12711:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
             }
-            match(input,72,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
             }
@@ -39637,16 +43026,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3"
-    // InternalChartDSL.g:11710:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
+    // InternalChartDSL.g:12720:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
     public final void rule__XSetLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11714:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
-            // InternalChartDSL.g:11715:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
+            // InternalChartDSL.g:12724:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
+            // InternalChartDSL.g:12725:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
             {
-            pushFollow(FOLLOW_101);
+            pushFollow(FOLLOW_106);
             rule__XSetLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -39675,31 +43064,31 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3__Impl"
-    // InternalChartDSL.g:11722:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
+    // InternalChartDSL.g:12732:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
     public final void rule__XSetLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11726:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
-            // InternalChartDSL.g:11727:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalChartDSL.g:12736:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
+            // InternalChartDSL.g:12737:1: ( ( rule__XSetLiteral__Group_3__0 )? )
             {
-            // InternalChartDSL.g:11727:1: ( ( rule__XSetLiteral__Group_3__0 )? )
-            // InternalChartDSL.g:11728:2: ( rule__XSetLiteral__Group_3__0 )?
+            // InternalChartDSL.g:12737:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalChartDSL.g:12738:2: ( rule__XSetLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3()); 
             }
-            // InternalChartDSL.g:11729:2: ( rule__XSetLiteral__Group_3__0 )?
-            int alt102=2;
-            int LA102_0 = input.LA(1);
+            // InternalChartDSL.g:12739:2: ( rule__XSetLiteral__Group_3__0 )?
+            int alt115=2;
+            int LA115_0 = input.LA(1);
 
-            if ( ((LA102_0>=RULE_STRING && LA102_0<=RULE_DECIMAL)||LA102_0==27||(LA102_0>=34 && LA102_0<=35)||LA102_0==40||(LA102_0>=45 && LA102_0<=50)||LA102_0==72||LA102_0==97||(LA102_0>=101 && LA102_0<=102)||LA102_0==104||LA102_0==106||(LA102_0>=110 && LA102_0<=118)||LA102_0==120||LA102_0==154) ) {
-                alt102=1;
+            if ( ((LA115_0>=RULE_STRING && LA115_0<=RULE_DECIMAL)||LA115_0==27||(LA115_0>=34 && LA115_0<=35)||LA115_0==40||(LA115_0>=45 && LA115_0<=50)||LA115_0==79||LA115_0==112||(LA115_0>=116 && LA115_0<=117)||LA115_0==119||LA115_0==121||(LA115_0>=125 && LA115_0<=133)||LA115_0==135||LA115_0==171) ) {
+                alt115=1;
             }
-            switch (alt102) {
+            switch (alt115) {
                 case 1 :
-                    // InternalChartDSL.g:11729:3: rule__XSetLiteral__Group_3__0
+                    // InternalChartDSL.g:12739:3: rule__XSetLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSetLiteral__Group_3__0();
@@ -39737,14 +43126,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4"
-    // InternalChartDSL.g:11737:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
+    // InternalChartDSL.g:12747:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
     public final void rule__XSetLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11741:1: ( rule__XSetLiteral__Group__4__Impl )
-            // InternalChartDSL.g:11742:2: rule__XSetLiteral__Group__4__Impl
+            // InternalChartDSL.g:12751:1: ( rule__XSetLiteral__Group__4__Impl )
+            // InternalChartDSL.g:12752:2: rule__XSetLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group__4__Impl();
@@ -39770,22 +43159,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4__Impl"
-    // InternalChartDSL.g:11748:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
+    // InternalChartDSL.g:12758:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
     public final void rule__XSetLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11752:1: ( ( '}' ) )
-            // InternalChartDSL.g:11753:1: ( '}' )
+            // InternalChartDSL.g:12762:1: ( ( '}' ) )
+            // InternalChartDSL.g:12763:1: ( '}' )
             {
-            // InternalChartDSL.g:11753:1: ( '}' )
-            // InternalChartDSL.g:11754:2: '}'
+            // InternalChartDSL.g:12763:1: ( '}' )
+            // InternalChartDSL.g:12764:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
             }
-            match(input,73,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
             }
@@ -39811,16 +43200,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0"
-    // InternalChartDSL.g:11764:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
+    // InternalChartDSL.g:12774:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
     public final void rule__XSetLiteral__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11768:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
-            // InternalChartDSL.g:11769:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
+            // InternalChartDSL.g:12778:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
+            // InternalChartDSL.g:12779:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XSetLiteral__Group_3__0__Impl();
 
             state._fsp--;
@@ -39849,23 +43238,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0__Impl"
-    // InternalChartDSL.g:11776:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalChartDSL.g:12786:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
     public final void rule__XSetLiteral__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11780:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalChartDSL.g:11781:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalChartDSL.g:12790:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalChartDSL.g:12791:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalChartDSL.g:11781:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
-            // InternalChartDSL.g:11782:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalChartDSL.g:12791:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalChartDSL.g:12792:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalChartDSL.g:11783:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
-            // InternalChartDSL.g:11783:3: rule__XSetLiteral__ElementsAssignment_3_0
+            // InternalChartDSL.g:12793:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalChartDSL.g:12793:3: rule__XSetLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_0();
@@ -39900,14 +43289,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1"
-    // InternalChartDSL.g:11791:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
+    // InternalChartDSL.g:12801:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
     public final void rule__XSetLiteral__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11795:1: ( rule__XSetLiteral__Group_3__1__Impl )
-            // InternalChartDSL.g:11796:2: rule__XSetLiteral__Group_3__1__Impl
+            // InternalChartDSL.g:12805:1: ( rule__XSetLiteral__Group_3__1__Impl )
+            // InternalChartDSL.g:12806:2: rule__XSetLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3__1__Impl();
@@ -39933,37 +43322,37 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1__Impl"
-    // InternalChartDSL.g:11802:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
+    // InternalChartDSL.g:12812:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
     public final void rule__XSetLiteral__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11806:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
-            // InternalChartDSL.g:11807:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalChartDSL.g:12816:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
+            // InternalChartDSL.g:12817:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
             {
-            // InternalChartDSL.g:11807:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
-            // InternalChartDSL.g:11808:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            // InternalChartDSL.g:12817:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalChartDSL.g:12818:2: ( rule__XSetLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); 
             }
-            // InternalChartDSL.g:11809:2: ( rule__XSetLiteral__Group_3_1__0 )*
-            loop103:
+            // InternalChartDSL.g:12819:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            loop116:
             do {
-                int alt103=2;
-                int LA103_0 = input.LA(1);
+                int alt116=2;
+                int LA116_0 = input.LA(1);
 
-                if ( (LA103_0==99) ) {
-                    alt103=1;
+                if ( (LA116_0==114) ) {
+                    alt116=1;
                 }
 
 
-                switch (alt103) {
+                switch (alt116) {
             	case 1 :
-            	    // InternalChartDSL.g:11809:3: rule__XSetLiteral__Group_3_1__0
+            	    // InternalChartDSL.g:12819:3: rule__XSetLiteral__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XSetLiteral__Group_3_1__0();
 
             	    state._fsp--;
@@ -39973,7 +43362,7 @@
             	    break;
 
             	default :
-            	    break loop103;
+            	    break loop116;
                 }
             } while (true);
 
@@ -40002,16 +43391,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0"
-    // InternalChartDSL.g:11818:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
+    // InternalChartDSL.g:12828:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
     public final void rule__XSetLiteral__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11822:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
-            // InternalChartDSL.g:11823:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
+            // InternalChartDSL.g:12832:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
+            // InternalChartDSL.g:12833:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XSetLiteral__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -40040,22 +43429,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0__Impl"
-    // InternalChartDSL.g:11830:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:12840:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XSetLiteral__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11834:1: ( ( ',' ) )
-            // InternalChartDSL.g:11835:1: ( ',' )
+            // InternalChartDSL.g:12844:1: ( ( ',' ) )
+            // InternalChartDSL.g:12845:1: ( ',' )
             {
-            // InternalChartDSL.g:11835:1: ( ',' )
-            // InternalChartDSL.g:11836:2: ','
+            // InternalChartDSL.g:12845:1: ( ',' )
+            // InternalChartDSL.g:12846:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
             }
@@ -40081,14 +43470,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1"
-    // InternalChartDSL.g:11845:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
+    // InternalChartDSL.g:12855:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
     public final void rule__XSetLiteral__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11849:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
-            // InternalChartDSL.g:11850:2: rule__XSetLiteral__Group_3_1__1__Impl
+            // InternalChartDSL.g:12859:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
+            // InternalChartDSL.g:12860:2: rule__XSetLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3_1__1__Impl();
@@ -40114,23 +43503,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1__Impl"
-    // InternalChartDSL.g:11856:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalChartDSL.g:12866:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
     public final void rule__XSetLiteral__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11860:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalChartDSL.g:11861:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalChartDSL.g:12870:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalChartDSL.g:12871:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalChartDSL.g:11861:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalChartDSL.g:11862:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalChartDSL.g:12871:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalChartDSL.g:12872:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalChartDSL.g:11863:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
-            // InternalChartDSL.g:11863:3: rule__XSetLiteral__ElementsAssignment_3_1_1
+            // InternalChartDSL.g:12873:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalChartDSL.g:12873:3: rule__XSetLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_1_1();
@@ -40165,16 +43554,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0"
-    // InternalChartDSL.g:11872:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
+    // InternalChartDSL.g:12882:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
     public final void rule__XListLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11876:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
-            // InternalChartDSL.g:11877:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
+            // InternalChartDSL.g:12886:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
+            // InternalChartDSL.g:12887:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
             {
-            pushFollow(FOLLOW_64);
+            pushFollow(FOLLOW_69);
             rule__XListLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -40203,23 +43592,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0__Impl"
-    // InternalChartDSL.g:11884:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:12894:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XListLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11888:1: ( ( () ) )
-            // InternalChartDSL.g:11889:1: ( () )
+            // InternalChartDSL.g:12898:1: ( ( () ) )
+            // InternalChartDSL.g:12899:1: ( () )
             {
-            // InternalChartDSL.g:11889:1: ( () )
-            // InternalChartDSL.g:11890:2: ()
+            // InternalChartDSL.g:12899:1: ( () )
+            // InternalChartDSL.g:12900:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); 
             }
-            // InternalChartDSL.g:11891:2: ()
-            // InternalChartDSL.g:11891:3: 
+            // InternalChartDSL.g:12901:2: ()
+            // InternalChartDSL.g:12901:3: 
             {
             }
 
@@ -40244,16 +43633,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1"
-    // InternalChartDSL.g:11899:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
+    // InternalChartDSL.g:12909:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
     public final void rule__XListLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11903:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
-            // InternalChartDSL.g:11904:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
+            // InternalChartDSL.g:12913:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
+            // InternalChartDSL.g:12914:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
             {
-            pushFollow(FOLLOW_65);
+            pushFollow(FOLLOW_70);
             rule__XListLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -40282,22 +43671,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1__Impl"
-    // InternalChartDSL.g:11911:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalChartDSL.g:12921:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XListLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11915:1: ( ( '#' ) )
-            // InternalChartDSL.g:11916:1: ( '#' )
+            // InternalChartDSL.g:12925:1: ( ( '#' ) )
+            // InternalChartDSL.g:12926:1: ( '#' )
             {
-            // InternalChartDSL.g:11916:1: ( '#' )
-            // InternalChartDSL.g:11917:2: '#'
+            // InternalChartDSL.g:12926:1: ( '#' )
+            // InternalChartDSL.g:12927:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,116,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
             }
@@ -40323,16 +43712,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2"
-    // InternalChartDSL.g:11926:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
+    // InternalChartDSL.g:12936:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
     public final void rule__XListLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11930:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
-            // InternalChartDSL.g:11931:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
+            // InternalChartDSL.g:12940:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
+            // InternalChartDSL.g:12941:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
             {
-            pushFollow(FOLLOW_63);
+            pushFollow(FOLLOW_68);
             rule__XListLiteral__Group__2__Impl();
 
             state._fsp--;
@@ -40361,22 +43750,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2__Impl"
-    // InternalChartDSL.g:11938:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
+    // InternalChartDSL.g:12948:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
     public final void rule__XListLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11942:1: ( ( '[' ) )
-            // InternalChartDSL.g:11943:1: ( '[' )
+            // InternalChartDSL.g:12952:1: ( ( '[' ) )
+            // InternalChartDSL.g:12953:1: ( '[' )
             {
-            // InternalChartDSL.g:11943:1: ( '[' )
-            // InternalChartDSL.g:11944:2: '['
+            // InternalChartDSL.g:12953:1: ( '[' )
+            // InternalChartDSL.g:12954:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
             }
-            match(input,102,FOLLOW_2); if (state.failed) return ;
+            match(input,117,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
             }
@@ -40402,16 +43791,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3"
-    // InternalChartDSL.g:11953:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
+    // InternalChartDSL.g:12963:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
     public final void rule__XListLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11957:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
-            // InternalChartDSL.g:11958:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
+            // InternalChartDSL.g:12967:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
+            // InternalChartDSL.g:12968:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
             {
-            pushFollow(FOLLOW_63);
+            pushFollow(FOLLOW_68);
             rule__XListLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -40440,31 +43829,31 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3__Impl"
-    // InternalChartDSL.g:11965:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
+    // InternalChartDSL.g:12975:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
     public final void rule__XListLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11969:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
-            // InternalChartDSL.g:11970:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalChartDSL.g:12979:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
+            // InternalChartDSL.g:12980:1: ( ( rule__XListLiteral__Group_3__0 )? )
             {
-            // InternalChartDSL.g:11970:1: ( ( rule__XListLiteral__Group_3__0 )? )
-            // InternalChartDSL.g:11971:2: ( rule__XListLiteral__Group_3__0 )?
+            // InternalChartDSL.g:12980:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalChartDSL.g:12981:2: ( rule__XListLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3()); 
             }
-            // InternalChartDSL.g:11972:2: ( rule__XListLiteral__Group_3__0 )?
-            int alt104=2;
-            int LA104_0 = input.LA(1);
+            // InternalChartDSL.g:12982:2: ( rule__XListLiteral__Group_3__0 )?
+            int alt117=2;
+            int LA117_0 = input.LA(1);
 
-            if ( ((LA104_0>=RULE_STRING && LA104_0<=RULE_DECIMAL)||LA104_0==27||(LA104_0>=34 && LA104_0<=35)||LA104_0==40||(LA104_0>=45 && LA104_0<=50)||LA104_0==72||LA104_0==97||(LA104_0>=101 && LA104_0<=102)||LA104_0==104||LA104_0==106||(LA104_0>=110 && LA104_0<=118)||LA104_0==120||LA104_0==154) ) {
-                alt104=1;
+            if ( ((LA117_0>=RULE_STRING && LA117_0<=RULE_DECIMAL)||LA117_0==27||(LA117_0>=34 && LA117_0<=35)||LA117_0==40||(LA117_0>=45 && LA117_0<=50)||LA117_0==79||LA117_0==112||(LA117_0>=116 && LA117_0<=117)||LA117_0==119||LA117_0==121||(LA117_0>=125 && LA117_0<=133)||LA117_0==135||LA117_0==171) ) {
+                alt117=1;
             }
-            switch (alt104) {
+            switch (alt117) {
                 case 1 :
-                    // InternalChartDSL.g:11972:3: rule__XListLiteral__Group_3__0
+                    // InternalChartDSL.g:12982:3: rule__XListLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XListLiteral__Group_3__0();
@@ -40502,14 +43891,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4"
-    // InternalChartDSL.g:11980:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
+    // InternalChartDSL.g:12990:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
     public final void rule__XListLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11984:1: ( rule__XListLiteral__Group__4__Impl )
-            // InternalChartDSL.g:11985:2: rule__XListLiteral__Group__4__Impl
+            // InternalChartDSL.g:12994:1: ( rule__XListLiteral__Group__4__Impl )
+            // InternalChartDSL.g:12995:2: rule__XListLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group__4__Impl();
@@ -40535,22 +43924,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4__Impl"
-    // InternalChartDSL.g:11991:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
+    // InternalChartDSL.g:13001:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
     public final void rule__XListLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:11995:1: ( ( ']' ) )
-            // InternalChartDSL.g:11996:1: ( ']' )
+            // InternalChartDSL.g:13005:1: ( ( ']' ) )
+            // InternalChartDSL.g:13006:1: ( ']' )
             {
-            // InternalChartDSL.g:11996:1: ( ']' )
-            // InternalChartDSL.g:11997:2: ']'
+            // InternalChartDSL.g:13006:1: ( ']' )
+            // InternalChartDSL.g:13007:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
             }
-            match(input,100,FOLLOW_2); if (state.failed) return ;
+            match(input,115,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
             }
@@ -40576,16 +43965,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0"
-    // InternalChartDSL.g:12007:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
+    // InternalChartDSL.g:13017:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
     public final void rule__XListLiteral__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12011:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
-            // InternalChartDSL.g:12012:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
+            // InternalChartDSL.g:13021:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
+            // InternalChartDSL.g:13022:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XListLiteral__Group_3__0__Impl();
 
             state._fsp--;
@@ -40614,23 +44003,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0__Impl"
-    // InternalChartDSL.g:12019:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalChartDSL.g:13029:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
     public final void rule__XListLiteral__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12023:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalChartDSL.g:12024:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalChartDSL.g:13033:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalChartDSL.g:13034:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalChartDSL.g:12024:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
-            // InternalChartDSL.g:12025:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalChartDSL.g:13034:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalChartDSL.g:13035:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalChartDSL.g:12026:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
-            // InternalChartDSL.g:12026:3: rule__XListLiteral__ElementsAssignment_3_0
+            // InternalChartDSL.g:13036:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalChartDSL.g:13036:3: rule__XListLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_0();
@@ -40665,14 +44054,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1"
-    // InternalChartDSL.g:12034:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
+    // InternalChartDSL.g:13044:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
     public final void rule__XListLiteral__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12038:1: ( rule__XListLiteral__Group_3__1__Impl )
-            // InternalChartDSL.g:12039:2: rule__XListLiteral__Group_3__1__Impl
+            // InternalChartDSL.g:13048:1: ( rule__XListLiteral__Group_3__1__Impl )
+            // InternalChartDSL.g:13049:2: rule__XListLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3__1__Impl();
@@ -40698,37 +44087,37 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1__Impl"
-    // InternalChartDSL.g:12045:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
+    // InternalChartDSL.g:13055:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
     public final void rule__XListLiteral__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12049:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
-            // InternalChartDSL.g:12050:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalChartDSL.g:13059:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
+            // InternalChartDSL.g:13060:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
             {
-            // InternalChartDSL.g:12050:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
-            // InternalChartDSL.g:12051:2: ( rule__XListLiteral__Group_3_1__0 )*
+            // InternalChartDSL.g:13060:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalChartDSL.g:13061:2: ( rule__XListLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); 
             }
-            // InternalChartDSL.g:12052:2: ( rule__XListLiteral__Group_3_1__0 )*
-            loop105:
+            // InternalChartDSL.g:13062:2: ( rule__XListLiteral__Group_3_1__0 )*
+            loop118:
             do {
-                int alt105=2;
-                int LA105_0 = input.LA(1);
+                int alt118=2;
+                int LA118_0 = input.LA(1);
 
-                if ( (LA105_0==99) ) {
-                    alt105=1;
+                if ( (LA118_0==114) ) {
+                    alt118=1;
                 }
 
 
-                switch (alt105) {
+                switch (alt118) {
             	case 1 :
-            	    // InternalChartDSL.g:12052:3: rule__XListLiteral__Group_3_1__0
+            	    // InternalChartDSL.g:13062:3: rule__XListLiteral__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XListLiteral__Group_3_1__0();
 
             	    state._fsp--;
@@ -40738,7 +44127,7 @@
             	    break;
 
             	default :
-            	    break loop105;
+            	    break loop118;
                 }
             } while (true);
 
@@ -40767,16 +44156,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0"
-    // InternalChartDSL.g:12061:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
+    // InternalChartDSL.g:13071:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
     public final void rule__XListLiteral__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12065:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
-            // InternalChartDSL.g:12066:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
+            // InternalChartDSL.g:13075:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
+            // InternalChartDSL.g:13076:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XListLiteral__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -40805,22 +44194,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0__Impl"
-    // InternalChartDSL.g:12073:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:13083:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XListLiteral__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12077:1: ( ( ',' ) )
-            // InternalChartDSL.g:12078:1: ( ',' )
+            // InternalChartDSL.g:13087:1: ( ( ',' ) )
+            // InternalChartDSL.g:13088:1: ( ',' )
             {
-            // InternalChartDSL.g:12078:1: ( ',' )
-            // InternalChartDSL.g:12079:2: ','
+            // InternalChartDSL.g:13088:1: ( ',' )
+            // InternalChartDSL.g:13089:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
             }
@@ -40846,14 +44235,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1"
-    // InternalChartDSL.g:12088:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
+    // InternalChartDSL.g:13098:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
     public final void rule__XListLiteral__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12092:1: ( rule__XListLiteral__Group_3_1__1__Impl )
-            // InternalChartDSL.g:12093:2: rule__XListLiteral__Group_3_1__1__Impl
+            // InternalChartDSL.g:13102:1: ( rule__XListLiteral__Group_3_1__1__Impl )
+            // InternalChartDSL.g:13103:2: rule__XListLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3_1__1__Impl();
@@ -40879,23 +44268,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1__Impl"
-    // InternalChartDSL.g:12099:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalChartDSL.g:13109:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
     public final void rule__XListLiteral__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12103:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalChartDSL.g:12104:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalChartDSL.g:13113:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalChartDSL.g:13114:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalChartDSL.g:12104:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalChartDSL.g:12105:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalChartDSL.g:13114:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalChartDSL.g:13115:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalChartDSL.g:12106:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
-            // InternalChartDSL.g:12106:3: rule__XListLiteral__ElementsAssignment_3_1_1
+            // InternalChartDSL.g:13116:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalChartDSL.g:13116:3: rule__XListLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_1_1();
@@ -40930,16 +44319,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0"
-    // InternalChartDSL.g:12115:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
+    // InternalChartDSL.g:13125:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
     public final void rule__XClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12119:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
-            // InternalChartDSL.g:12120:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
+            // InternalChartDSL.g:13129:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
+            // InternalChartDSL.g:13130:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
             {
-            pushFollow(FOLLOW_102);
+            pushFollow(FOLLOW_107);
             rule__XClosure__Group__0__Impl();
 
             state._fsp--;
@@ -40968,23 +44357,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0__Impl"
-    // InternalChartDSL.g:12127:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
+    // InternalChartDSL.g:13137:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
     public final void rule__XClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12131:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
-            // InternalChartDSL.g:12132:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalChartDSL.g:13141:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
+            // InternalChartDSL.g:13142:1: ( ( rule__XClosure__Group_0__0 ) )
             {
-            // InternalChartDSL.g:12132:1: ( ( rule__XClosure__Group_0__0 ) )
-            // InternalChartDSL.g:12133:2: ( rule__XClosure__Group_0__0 )
+            // InternalChartDSL.g:13142:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalChartDSL.g:13143:2: ( rule__XClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0()); 
             }
-            // InternalChartDSL.g:12134:2: ( rule__XClosure__Group_0__0 )
-            // InternalChartDSL.g:12134:3: rule__XClosure__Group_0__0
+            // InternalChartDSL.g:13144:2: ( rule__XClosure__Group_0__0 )
+            // InternalChartDSL.g:13144:3: rule__XClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0();
@@ -41019,16 +44408,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1"
-    // InternalChartDSL.g:12142:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
+    // InternalChartDSL.g:13152:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
     public final void rule__XClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12146:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
-            // InternalChartDSL.g:12147:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
+            // InternalChartDSL.g:13156:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
+            // InternalChartDSL.g:13157:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
             {
-            pushFollow(FOLLOW_102);
+            pushFollow(FOLLOW_107);
             rule__XClosure__Group__1__Impl();
 
             state._fsp--;
@@ -41057,27 +44446,27 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1__Impl"
-    // InternalChartDSL.g:12154:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
+    // InternalChartDSL.g:13164:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
     public final void rule__XClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12158:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
-            // InternalChartDSL.g:12159:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalChartDSL.g:13168:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
+            // InternalChartDSL.g:13169:1: ( ( rule__XClosure__Group_1__0 )? )
             {
-            // InternalChartDSL.g:12159:1: ( ( rule__XClosure__Group_1__0 )? )
-            // InternalChartDSL.g:12160:2: ( rule__XClosure__Group_1__0 )?
+            // InternalChartDSL.g:13169:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalChartDSL.g:13170:2: ( rule__XClosure__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:12161:2: ( rule__XClosure__Group_1__0 )?
-            int alt106=2;
-            alt106 = dfa106.predict(input);
-            switch (alt106) {
+            // InternalChartDSL.g:13171:2: ( rule__XClosure__Group_1__0 )?
+            int alt119=2;
+            alt119 = dfa119.predict(input);
+            switch (alt119) {
                 case 1 :
-                    // InternalChartDSL.g:12161:3: rule__XClosure__Group_1__0
+                    // InternalChartDSL.g:13171:3: rule__XClosure__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1__0();
@@ -41115,16 +44504,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2"
-    // InternalChartDSL.g:12169:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
+    // InternalChartDSL.g:13179:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
     public final void rule__XClosure__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12173:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
-            // InternalChartDSL.g:12174:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
+            // InternalChartDSL.g:13183:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
+            // InternalChartDSL.g:13184:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
             {
-            pushFollow(FOLLOW_103);
+            pushFollow(FOLLOW_108);
             rule__XClosure__Group__2__Impl();
 
             state._fsp--;
@@ -41153,23 +44542,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2__Impl"
-    // InternalChartDSL.g:12181:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
+    // InternalChartDSL.g:13191:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
     public final void rule__XClosure__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12185:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
-            // InternalChartDSL.g:12186:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalChartDSL.g:13195:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
+            // InternalChartDSL.g:13196:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
             {
-            // InternalChartDSL.g:12186:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
-            // InternalChartDSL.g:12187:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalChartDSL.g:13196:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalChartDSL.g:13197:2: ( rule__XClosure__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); 
             }
-            // InternalChartDSL.g:12188:2: ( rule__XClosure__ExpressionAssignment_2 )
-            // InternalChartDSL.g:12188:3: rule__XClosure__ExpressionAssignment_2
+            // InternalChartDSL.g:13198:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalChartDSL.g:13198:3: rule__XClosure__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExpressionAssignment_2();
@@ -41204,14 +44593,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3"
-    // InternalChartDSL.g:12196:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
+    // InternalChartDSL.g:13206:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
     public final void rule__XClosure__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12200:1: ( rule__XClosure__Group__3__Impl )
-            // InternalChartDSL.g:12201:2: rule__XClosure__Group__3__Impl
+            // InternalChartDSL.g:13210:1: ( rule__XClosure__Group__3__Impl )
+            // InternalChartDSL.g:13211:2: rule__XClosure__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group__3__Impl();
@@ -41237,22 +44626,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3__Impl"
-    // InternalChartDSL.g:12207:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
+    // InternalChartDSL.g:13217:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
     public final void rule__XClosure__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12211:1: ( ( ']' ) )
-            // InternalChartDSL.g:12212:1: ( ']' )
+            // InternalChartDSL.g:13221:1: ( ( ']' ) )
+            // InternalChartDSL.g:13222:1: ( ']' )
             {
-            // InternalChartDSL.g:12212:1: ( ']' )
-            // InternalChartDSL.g:12213:2: ']'
+            // InternalChartDSL.g:13222:1: ( ']' )
+            // InternalChartDSL.g:13223:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
             }
-            match(input,100,FOLLOW_2); if (state.failed) return ;
+            match(input,115,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
             }
@@ -41278,14 +44667,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0"
-    // InternalChartDSL.g:12223:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
+    // InternalChartDSL.g:13233:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
     public final void rule__XClosure__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12227:1: ( rule__XClosure__Group_0__0__Impl )
-            // InternalChartDSL.g:12228:2: rule__XClosure__Group_0__0__Impl
+            // InternalChartDSL.g:13237:1: ( rule__XClosure__Group_0__0__Impl )
+            // InternalChartDSL.g:13238:2: rule__XClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0__Impl();
@@ -41311,23 +44700,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0__Impl"
-    // InternalChartDSL.g:12234:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
+    // InternalChartDSL.g:13244:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
     public final void rule__XClosure__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12238:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
-            // InternalChartDSL.g:12239:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalChartDSL.g:13248:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
+            // InternalChartDSL.g:13249:1: ( ( rule__XClosure__Group_0_0__0 ) )
             {
-            // InternalChartDSL.g:12239:1: ( ( rule__XClosure__Group_0_0__0 ) )
-            // InternalChartDSL.g:12240:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalChartDSL.g:13249:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalChartDSL.g:13250:2: ( rule__XClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0_0()); 
             }
-            // InternalChartDSL.g:12241:2: ( rule__XClosure__Group_0_0__0 )
-            // InternalChartDSL.g:12241:3: rule__XClosure__Group_0_0__0
+            // InternalChartDSL.g:13251:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalChartDSL.g:13251:3: rule__XClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__0();
@@ -41362,16 +44751,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0"
-    // InternalChartDSL.g:12250:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
+    // InternalChartDSL.g:13260:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
     public final void rule__XClosure__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12254:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
-            // InternalChartDSL.g:12255:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
+            // InternalChartDSL.g:13264:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
+            // InternalChartDSL.g:13265:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
             {
-            pushFollow(FOLLOW_65);
+            pushFollow(FOLLOW_70);
             rule__XClosure__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -41400,23 +44789,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0__Impl"
-    // InternalChartDSL.g:12262:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:13272:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XClosure__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12266:1: ( ( () ) )
-            // InternalChartDSL.g:12267:1: ( () )
+            // InternalChartDSL.g:13276:1: ( ( () ) )
+            // InternalChartDSL.g:13277:1: ( () )
             {
-            // InternalChartDSL.g:12267:1: ( () )
-            // InternalChartDSL.g:12268:2: ()
+            // InternalChartDSL.g:13277:1: ( () )
+            // InternalChartDSL.g:13278:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalChartDSL.g:12269:2: ()
-            // InternalChartDSL.g:12269:3: 
+            // InternalChartDSL.g:13279:2: ()
+            // InternalChartDSL.g:13279:3: 
             {
             }
 
@@ -41441,14 +44830,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1"
-    // InternalChartDSL.g:12277:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
+    // InternalChartDSL.g:13287:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
     public final void rule__XClosure__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12281:1: ( rule__XClosure__Group_0_0__1__Impl )
-            // InternalChartDSL.g:12282:2: rule__XClosure__Group_0_0__1__Impl
+            // InternalChartDSL.g:13291:1: ( rule__XClosure__Group_0_0__1__Impl )
+            // InternalChartDSL.g:13292:2: rule__XClosure__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__1__Impl();
@@ -41474,22 +44863,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1__Impl"
-    // InternalChartDSL.g:12288:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
+    // InternalChartDSL.g:13298:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
     public final void rule__XClosure__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12292:1: ( ( '[' ) )
-            // InternalChartDSL.g:12293:1: ( '[' )
+            // InternalChartDSL.g:13302:1: ( ( '[' ) )
+            // InternalChartDSL.g:13303:1: ( '[' )
             {
-            // InternalChartDSL.g:12293:1: ( '[' )
-            // InternalChartDSL.g:12294:2: '['
+            // InternalChartDSL.g:13303:1: ( '[' )
+            // InternalChartDSL.g:13304:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
             }
-            match(input,102,FOLLOW_2); if (state.failed) return ;
+            match(input,117,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
             }
@@ -41515,14 +44904,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0"
-    // InternalChartDSL.g:12304:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
+    // InternalChartDSL.g:13314:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
     public final void rule__XClosure__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12308:1: ( rule__XClosure__Group_1__0__Impl )
-            // InternalChartDSL.g:12309:2: rule__XClosure__Group_1__0__Impl
+            // InternalChartDSL.g:13318:1: ( rule__XClosure__Group_1__0__Impl )
+            // InternalChartDSL.g:13319:2: rule__XClosure__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1__0__Impl();
@@ -41548,23 +44937,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0__Impl"
-    // InternalChartDSL.g:12315:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
+    // InternalChartDSL.g:13325:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
     public final void rule__XClosure__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12319:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
-            // InternalChartDSL.g:12320:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalChartDSL.g:13329:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
+            // InternalChartDSL.g:13330:1: ( ( rule__XClosure__Group_1_0__0 ) )
             {
-            // InternalChartDSL.g:12320:1: ( ( rule__XClosure__Group_1_0__0 ) )
-            // InternalChartDSL.g:12321:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalChartDSL.g:13330:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalChartDSL.g:13331:2: ( rule__XClosure__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0()); 
             }
-            // InternalChartDSL.g:12322:2: ( rule__XClosure__Group_1_0__0 )
-            // InternalChartDSL.g:12322:3: rule__XClosure__Group_1_0__0
+            // InternalChartDSL.g:13332:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalChartDSL.g:13332:3: rule__XClosure__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__0();
@@ -41599,16 +44988,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0"
-    // InternalChartDSL.g:12331:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
+    // InternalChartDSL.g:13341:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
     public final void rule__XClosure__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12335:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
-            // InternalChartDSL.g:12336:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
+            // InternalChartDSL.g:13345:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
+            // InternalChartDSL.g:13346:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
             {
-            pushFollow(FOLLOW_104);
+            pushFollow(FOLLOW_109);
             rule__XClosure__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -41637,31 +45026,31 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0__Impl"
-    // InternalChartDSL.g:12343:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
+    // InternalChartDSL.g:13353:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
     public final void rule__XClosure__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12347:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
-            // InternalChartDSL.g:12348:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalChartDSL.g:13357:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
+            // InternalChartDSL.g:13358:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
             {
-            // InternalChartDSL.g:12348:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
-            // InternalChartDSL.g:12349:2: ( rule__XClosure__Group_1_0_0__0 )?
+            // InternalChartDSL.g:13358:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalChartDSL.g:13359:2: ( rule__XClosure__Group_1_0_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); 
             }
-            // InternalChartDSL.g:12350:2: ( rule__XClosure__Group_1_0_0__0 )?
-            int alt107=2;
-            int LA107_0 = input.LA(1);
+            // InternalChartDSL.g:13360:2: ( rule__XClosure__Group_1_0_0__0 )?
+            int alt120=2;
+            int LA120_0 = input.LA(1);
 
-            if ( (LA107_0==RULE_ID||LA107_0==31||LA107_0==97) ) {
-                alt107=1;
+            if ( (LA120_0==RULE_ID||LA120_0==31||LA120_0==112) ) {
+                alt120=1;
             }
-            switch (alt107) {
+            switch (alt120) {
                 case 1 :
-                    // InternalChartDSL.g:12350:3: rule__XClosure__Group_1_0_0__0
+                    // InternalChartDSL.g:13360:3: rule__XClosure__Group_1_0_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1_0_0__0();
@@ -41699,14 +45088,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1"
-    // InternalChartDSL.g:12358:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
+    // InternalChartDSL.g:13368:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
     public final void rule__XClosure__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12362:1: ( rule__XClosure__Group_1_0__1__Impl )
-            // InternalChartDSL.g:12363:2: rule__XClosure__Group_1_0__1__Impl
+            // InternalChartDSL.g:13372:1: ( rule__XClosure__Group_1_0__1__Impl )
+            // InternalChartDSL.g:13373:2: rule__XClosure__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__1__Impl();
@@ -41732,23 +45121,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1__Impl"
-    // InternalChartDSL.g:12369:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
+    // InternalChartDSL.g:13379:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
     public final void rule__XClosure__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12373:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
-            // InternalChartDSL.g:12374:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalChartDSL.g:13383:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
+            // InternalChartDSL.g:13384:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
             {
-            // InternalChartDSL.g:12374:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
-            // InternalChartDSL.g:12375:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalChartDSL.g:13384:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalChartDSL.g:13385:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); 
             }
-            // InternalChartDSL.g:12376:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
-            // InternalChartDSL.g:12376:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
+            // InternalChartDSL.g:13386:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalChartDSL.g:13386:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExplicitSyntaxAssignment_1_0_1();
@@ -41783,16 +45172,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0"
-    // InternalChartDSL.g:12385:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
+    // InternalChartDSL.g:13395:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
     public final void rule__XClosure__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12389:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
-            // InternalChartDSL.g:12390:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
+            // InternalChartDSL.g:13399:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
+            // InternalChartDSL.g:13400:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XClosure__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -41821,23 +45210,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0__Impl"
-    // InternalChartDSL.g:12397:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
+    // InternalChartDSL.g:13407:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
     public final void rule__XClosure__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12401:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
-            // InternalChartDSL.g:12402:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalChartDSL.g:13411:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
+            // InternalChartDSL.g:13412:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
             {
-            // InternalChartDSL.g:12402:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
-            // InternalChartDSL.g:12403:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalChartDSL.g:13412:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalChartDSL.g:13413:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); 
             }
-            // InternalChartDSL.g:12404:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
-            // InternalChartDSL.g:12404:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
+            // InternalChartDSL.g:13414:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalChartDSL.g:13414:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0();
@@ -41872,14 +45261,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1"
-    // InternalChartDSL.g:12412:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
+    // InternalChartDSL.g:13422:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
     public final void rule__XClosure__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12416:1: ( rule__XClosure__Group_1_0_0__1__Impl )
-            // InternalChartDSL.g:12417:2: rule__XClosure__Group_1_0_0__1__Impl
+            // InternalChartDSL.g:13426:1: ( rule__XClosure__Group_1_0_0__1__Impl )
+            // InternalChartDSL.g:13427:2: rule__XClosure__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0__1__Impl();
@@ -41905,37 +45294,37 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1__Impl"
-    // InternalChartDSL.g:12423:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
+    // InternalChartDSL.g:13433:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
     public final void rule__XClosure__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12427:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
-            // InternalChartDSL.g:12428:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalChartDSL.g:13437:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
+            // InternalChartDSL.g:13438:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
             {
-            // InternalChartDSL.g:12428:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
-            // InternalChartDSL.g:12429:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            // InternalChartDSL.g:13438:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalChartDSL.g:13439:2: ( rule__XClosure__Group_1_0_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); 
             }
-            // InternalChartDSL.g:12430:2: ( rule__XClosure__Group_1_0_0_1__0 )*
-            loop108:
+            // InternalChartDSL.g:13440:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            loop121:
             do {
-                int alt108=2;
-                int LA108_0 = input.LA(1);
+                int alt121=2;
+                int LA121_0 = input.LA(1);
 
-                if ( (LA108_0==99) ) {
-                    alt108=1;
+                if ( (LA121_0==114) ) {
+                    alt121=1;
                 }
 
 
-                switch (alt108) {
+                switch (alt121) {
             	case 1 :
-            	    // InternalChartDSL.g:12430:3: rule__XClosure__Group_1_0_0_1__0
+            	    // InternalChartDSL.g:13440:3: rule__XClosure__Group_1_0_0_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XClosure__Group_1_0_0_1__0();
 
             	    state._fsp--;
@@ -41945,7 +45334,7 @@
             	    break;
 
             	default :
-            	    break loop108;
+            	    break loop121;
                 }
             } while (true);
 
@@ -41974,16 +45363,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0"
-    // InternalChartDSL.g:12439:1: rule__XClosure__Group_1_0_0_1__0 : rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 ;
+    // InternalChartDSL.g:13449:1: rule__XClosure__Group_1_0_0_1__0 : rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 ;
     public final void rule__XClosure__Group_1_0_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12443:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
-            // InternalChartDSL.g:12444:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
+            // InternalChartDSL.g:13453:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
+            // InternalChartDSL.g:13454:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XClosure__Group_1_0_0_1__0__Impl();
 
             state._fsp--;
@@ -42012,22 +45401,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0__Impl"
-    // InternalChartDSL.g:12451:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:13461:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
     public final void rule__XClosure__Group_1_0_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12455:1: ( ( ',' ) )
-            // InternalChartDSL.g:12456:1: ( ',' )
+            // InternalChartDSL.g:13465:1: ( ( ',' ) )
+            // InternalChartDSL.g:13466:1: ( ',' )
             {
-            // InternalChartDSL.g:12456:1: ( ',' )
-            // InternalChartDSL.g:12457:2: ','
+            // InternalChartDSL.g:13466:1: ( ',' )
+            // InternalChartDSL.g:13467:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
             }
@@ -42053,14 +45442,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1"
-    // InternalChartDSL.g:12466:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
+    // InternalChartDSL.g:13476:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
     public final void rule__XClosure__Group_1_0_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12470:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
-            // InternalChartDSL.g:12471:2: rule__XClosure__Group_1_0_0_1__1__Impl
+            // InternalChartDSL.g:13480:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
+            // InternalChartDSL.g:13481:2: rule__XClosure__Group_1_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0_1__1__Impl();
@@ -42086,23 +45475,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1__Impl"
-    // InternalChartDSL.g:12477:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
+    // InternalChartDSL.g:13487:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
     public final void rule__XClosure__Group_1_0_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12481:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
-            // InternalChartDSL.g:12482:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalChartDSL.g:13491:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
+            // InternalChartDSL.g:13492:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
             {
-            // InternalChartDSL.g:12482:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
-            // InternalChartDSL.g:12483:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalChartDSL.g:13492:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalChartDSL.g:13493:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); 
             }
-            // InternalChartDSL.g:12484:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
-            // InternalChartDSL.g:12484:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
+            // InternalChartDSL.g:13494:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalChartDSL.g:13494:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1();
@@ -42137,16 +45526,16 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0"
-    // InternalChartDSL.g:12493:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
+    // InternalChartDSL.g:13503:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
     public final void rule__XExpressionInClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12497:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
-            // InternalChartDSL.g:12498:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
+            // InternalChartDSL.g:13507:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
+            // InternalChartDSL.g:13508:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
             {
-            pushFollow(FOLLOW_102);
+            pushFollow(FOLLOW_107);
             rule__XExpressionInClosure__Group__0__Impl();
 
             state._fsp--;
@@ -42175,23 +45564,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0__Impl"
-    // InternalChartDSL.g:12505:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:13515:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
     public final void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12509:1: ( ( () ) )
-            // InternalChartDSL.g:12510:1: ( () )
+            // InternalChartDSL.g:13519:1: ( ( () ) )
+            // InternalChartDSL.g:13520:1: ( () )
             {
-            // InternalChartDSL.g:12510:1: ( () )
-            // InternalChartDSL.g:12511:2: ()
+            // InternalChartDSL.g:13520:1: ( () )
+            // InternalChartDSL.g:13521:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalChartDSL.g:12512:2: ()
-            // InternalChartDSL.g:12512:3: 
+            // InternalChartDSL.g:13522:2: ()
+            // InternalChartDSL.g:13522:3: 
             {
             }
 
@@ -42216,14 +45605,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1"
-    // InternalChartDSL.g:12520:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
+    // InternalChartDSL.g:13530:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
     public final void rule__XExpressionInClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12524:1: ( rule__XExpressionInClosure__Group__1__Impl )
-            // InternalChartDSL.g:12525:2: rule__XExpressionInClosure__Group__1__Impl
+            // InternalChartDSL.g:13534:1: ( rule__XExpressionInClosure__Group__1__Impl )
+            // InternalChartDSL.g:13535:2: rule__XExpressionInClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group__1__Impl();
@@ -42249,37 +45638,37 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1__Impl"
-    // InternalChartDSL.g:12531:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
+    // InternalChartDSL.g:13541:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
     public final void rule__XExpressionInClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12535:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
-            // InternalChartDSL.g:12536:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalChartDSL.g:13545:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
+            // InternalChartDSL.g:13546:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
             {
-            // InternalChartDSL.g:12536:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
-            // InternalChartDSL.g:12537:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            // InternalChartDSL.g:13546:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalChartDSL.g:13547:2: ( rule__XExpressionInClosure__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:12538:2: ( rule__XExpressionInClosure__Group_1__0 )*
-            loop109:
+            // InternalChartDSL.g:13548:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            loop122:
             do {
-                int alt109=2;
-                int LA109_0 = input.LA(1);
+                int alt122=2;
+                int LA122_0 = input.LA(1);
 
-                if ( ((LA109_0>=RULE_STRING && LA109_0<=RULE_DECIMAL)||LA109_0==27||(LA109_0>=34 && LA109_0<=35)||LA109_0==40||(LA109_0>=44 && LA109_0<=50)||LA109_0==72||LA109_0==97||(LA109_0>=101 && LA109_0<=102)||LA109_0==104||LA109_0==106||(LA109_0>=110 && LA109_0<=118)||LA109_0==120||(LA109_0>=153 && LA109_0<=154)) ) {
-                    alt109=1;
+                if ( ((LA122_0>=RULE_STRING && LA122_0<=RULE_DECIMAL)||LA122_0==27||(LA122_0>=34 && LA122_0<=35)||LA122_0==40||(LA122_0>=44 && LA122_0<=50)||LA122_0==79||LA122_0==112||(LA122_0>=116 && LA122_0<=117)||LA122_0==119||LA122_0==121||(LA122_0>=125 && LA122_0<=133)||LA122_0==135||(LA122_0>=170 && LA122_0<=171)) ) {
+                    alt122=1;
                 }
 
 
-                switch (alt109) {
+                switch (alt122) {
             	case 1 :
-            	    // InternalChartDSL.g:12538:3: rule__XExpressionInClosure__Group_1__0
+            	    // InternalChartDSL.g:13548:3: rule__XExpressionInClosure__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_105);
+            	    pushFollow(FOLLOW_110);
             	    rule__XExpressionInClosure__Group_1__0();
 
             	    state._fsp--;
@@ -42289,7 +45678,7 @@
             	    break;
 
             	default :
-            	    break loop109;
+            	    break loop122;
                 }
             } while (true);
 
@@ -42318,16 +45707,16 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0"
-    // InternalChartDSL.g:12547:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
+    // InternalChartDSL.g:13557:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
     public final void rule__XExpressionInClosure__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12551:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
-            // InternalChartDSL.g:12552:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
+            // InternalChartDSL.g:13561:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
+            // InternalChartDSL.g:13562:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_58);
             rule__XExpressionInClosure__Group_1__0__Impl();
 
             state._fsp--;
@@ -42356,23 +45745,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0__Impl"
-    // InternalChartDSL.g:12559:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
+    // InternalChartDSL.g:13569:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
     public final void rule__XExpressionInClosure__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12563:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
-            // InternalChartDSL.g:12564:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalChartDSL.g:13573:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
+            // InternalChartDSL.g:13574:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
             {
-            // InternalChartDSL.g:12564:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
-            // InternalChartDSL.g:12565:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalChartDSL.g:13574:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalChartDSL.g:13575:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); 
             }
-            // InternalChartDSL.g:12566:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
-            // InternalChartDSL.g:12566:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
+            // InternalChartDSL.g:13576:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalChartDSL.g:13576:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__ExpressionsAssignment_1_0();
@@ -42407,14 +45796,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1"
-    // InternalChartDSL.g:12574:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
+    // InternalChartDSL.g:13584:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
     public final void rule__XExpressionInClosure__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12578:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
-            // InternalChartDSL.g:12579:2: rule__XExpressionInClosure__Group_1__1__Impl
+            // InternalChartDSL.g:13588:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
+            // InternalChartDSL.g:13589:2: rule__XExpressionInClosure__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group_1__1__Impl();
@@ -42440,33 +45829,33 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1__Impl"
-    // InternalChartDSL.g:12585:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
+    // InternalChartDSL.g:13595:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
     public final void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12589:1: ( ( ( ';' )? ) )
-            // InternalChartDSL.g:12590:1: ( ( ';' )? )
+            // InternalChartDSL.g:13599:1: ( ( ( ';' )? ) )
+            // InternalChartDSL.g:13600:1: ( ( ';' )? )
             {
-            // InternalChartDSL.g:12590:1: ( ( ';' )? )
-            // InternalChartDSL.g:12591:2: ( ';' )?
+            // InternalChartDSL.g:13600:1: ( ( ';' )? )
+            // InternalChartDSL.g:13601:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); 
             }
-            // InternalChartDSL.g:12592:2: ( ';' )?
-            int alt110=2;
-            int LA110_0 = input.LA(1);
+            // InternalChartDSL.g:13602:2: ( ';' )?
+            int alt123=2;
+            int LA123_0 = input.LA(1);
 
-            if ( (LA110_0==95) ) {
-                alt110=1;
+            if ( (LA123_0==110) ) {
+                alt123=1;
             }
-            switch (alt110) {
+            switch (alt123) {
                 case 1 :
-                    // InternalChartDSL.g:12592:3: ';'
+                    // InternalChartDSL.g:13602:3: ';'
                     {
-                    match(input,95,FOLLOW_2); if (state.failed) return ;
+                    match(input,110,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -42498,16 +45887,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0"
-    // InternalChartDSL.g:12601:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
+    // InternalChartDSL.g:13611:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
     public final void rule__XShortClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12605:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
-            // InternalChartDSL.g:12606:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
+            // InternalChartDSL.g:13615:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
+            // InternalChartDSL.g:13616:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XShortClosure__Group__0__Impl();
 
             state._fsp--;
@@ -42536,23 +45925,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0__Impl"
-    // InternalChartDSL.g:12613:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
+    // InternalChartDSL.g:13623:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
     public final void rule__XShortClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12617:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
-            // InternalChartDSL.g:12618:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalChartDSL.g:13627:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
+            // InternalChartDSL.g:13628:1: ( ( rule__XShortClosure__Group_0__0 ) )
             {
-            // InternalChartDSL.g:12618:1: ( ( rule__XShortClosure__Group_0__0 ) )
-            // InternalChartDSL.g:12619:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalChartDSL.g:13628:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalChartDSL.g:13629:2: ( rule__XShortClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0()); 
             }
-            // InternalChartDSL.g:12620:2: ( rule__XShortClosure__Group_0__0 )
-            // InternalChartDSL.g:12620:3: rule__XShortClosure__Group_0__0
+            // InternalChartDSL.g:13630:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalChartDSL.g:13630:3: rule__XShortClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0();
@@ -42587,14 +45976,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1"
-    // InternalChartDSL.g:12628:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
+    // InternalChartDSL.g:13638:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
     public final void rule__XShortClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12632:1: ( rule__XShortClosure__Group__1__Impl )
-            // InternalChartDSL.g:12633:2: rule__XShortClosure__Group__1__Impl
+            // InternalChartDSL.g:13642:1: ( rule__XShortClosure__Group__1__Impl )
+            // InternalChartDSL.g:13643:2: rule__XShortClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group__1__Impl();
@@ -42620,23 +46009,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1__Impl"
-    // InternalChartDSL.g:12639:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
+    // InternalChartDSL.g:13649:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
     public final void rule__XShortClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12643:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
-            // InternalChartDSL.g:12644:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalChartDSL.g:13653:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
+            // InternalChartDSL.g:13654:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
             {
-            // InternalChartDSL.g:12644:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
-            // InternalChartDSL.g:12645:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalChartDSL.g:13654:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalChartDSL.g:13655:2: ( rule__XShortClosure__ExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); 
             }
-            // InternalChartDSL.g:12646:2: ( rule__XShortClosure__ExpressionAssignment_1 )
-            // InternalChartDSL.g:12646:3: rule__XShortClosure__ExpressionAssignment_1
+            // InternalChartDSL.g:13656:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalChartDSL.g:13656:3: rule__XShortClosure__ExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExpressionAssignment_1();
@@ -42671,14 +46060,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0"
-    // InternalChartDSL.g:12655:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
+    // InternalChartDSL.g:13665:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
     public final void rule__XShortClosure__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12659:1: ( rule__XShortClosure__Group_0__0__Impl )
-            // InternalChartDSL.g:12660:2: rule__XShortClosure__Group_0__0__Impl
+            // InternalChartDSL.g:13669:1: ( rule__XShortClosure__Group_0__0__Impl )
+            // InternalChartDSL.g:13670:2: rule__XShortClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0__Impl();
@@ -42704,23 +46093,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0__Impl"
-    // InternalChartDSL.g:12666:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
+    // InternalChartDSL.g:13676:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
     public final void rule__XShortClosure__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12670:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
-            // InternalChartDSL.g:12671:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalChartDSL.g:13680:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
+            // InternalChartDSL.g:13681:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
             {
-            // InternalChartDSL.g:12671:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
-            // InternalChartDSL.g:12672:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalChartDSL.g:13681:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalChartDSL.g:13682:2: ( rule__XShortClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); 
             }
-            // InternalChartDSL.g:12673:2: ( rule__XShortClosure__Group_0_0__0 )
-            // InternalChartDSL.g:12673:3: rule__XShortClosure__Group_0_0__0
+            // InternalChartDSL.g:13683:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalChartDSL.g:13683:3: rule__XShortClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__0();
@@ -42755,16 +46144,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0"
-    // InternalChartDSL.g:12682:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
+    // InternalChartDSL.g:13692:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
     public final void rule__XShortClosure__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12686:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
-            // InternalChartDSL.g:12687:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
+            // InternalChartDSL.g:13696:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
+            // InternalChartDSL.g:13697:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
             {
-            pushFollow(FOLLOW_104);
+            pushFollow(FOLLOW_109);
             rule__XShortClosure__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -42793,23 +46182,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0__Impl"
-    // InternalChartDSL.g:12694:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:13704:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XShortClosure__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12698:1: ( ( () ) )
-            // InternalChartDSL.g:12699:1: ( () )
+            // InternalChartDSL.g:13708:1: ( ( () ) )
+            // InternalChartDSL.g:13709:1: ( () )
             {
-            // InternalChartDSL.g:12699:1: ( () )
-            // InternalChartDSL.g:12700:2: ()
+            // InternalChartDSL.g:13709:1: ( () )
+            // InternalChartDSL.g:13710:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalChartDSL.g:12701:2: ()
-            // InternalChartDSL.g:12701:3: 
+            // InternalChartDSL.g:13711:2: ()
+            // InternalChartDSL.g:13711:3: 
             {
             }
 
@@ -42834,16 +46223,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1"
-    // InternalChartDSL.g:12709:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
+    // InternalChartDSL.g:13719:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
     public final void rule__XShortClosure__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12713:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
-            // InternalChartDSL.g:12714:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
+            // InternalChartDSL.g:13723:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
+            // InternalChartDSL.g:13724:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
             {
-            pushFollow(FOLLOW_104);
+            pushFollow(FOLLOW_109);
             rule__XShortClosure__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -42872,31 +46261,31 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1__Impl"
-    // InternalChartDSL.g:12721:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
+    // InternalChartDSL.g:13731:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
     public final void rule__XShortClosure__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12725:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
-            // InternalChartDSL.g:12726:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalChartDSL.g:13735:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
+            // InternalChartDSL.g:13736:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
             {
-            // InternalChartDSL.g:12726:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
-            // InternalChartDSL.g:12727:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            // InternalChartDSL.g:13736:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalChartDSL.g:13737:2: ( rule__XShortClosure__Group_0_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); 
             }
-            // InternalChartDSL.g:12728:2: ( rule__XShortClosure__Group_0_0_1__0 )?
-            int alt111=2;
-            int LA111_0 = input.LA(1);
+            // InternalChartDSL.g:13738:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            int alt124=2;
+            int LA124_0 = input.LA(1);
 
-            if ( (LA111_0==RULE_ID||LA111_0==31||LA111_0==97) ) {
-                alt111=1;
+            if ( (LA124_0==RULE_ID||LA124_0==31||LA124_0==112) ) {
+                alt124=1;
             }
-            switch (alt111) {
+            switch (alt124) {
                 case 1 :
-                    // InternalChartDSL.g:12728:3: rule__XShortClosure__Group_0_0_1__0
+                    // InternalChartDSL.g:13738:3: rule__XShortClosure__Group_0_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XShortClosure__Group_0_0_1__0();
@@ -42934,14 +46323,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2"
-    // InternalChartDSL.g:12736:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
+    // InternalChartDSL.g:13746:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
     public final void rule__XShortClosure__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12740:1: ( rule__XShortClosure__Group_0_0__2__Impl )
-            // InternalChartDSL.g:12741:2: rule__XShortClosure__Group_0_0__2__Impl
+            // InternalChartDSL.g:13750:1: ( rule__XShortClosure__Group_0_0__2__Impl )
+            // InternalChartDSL.g:13751:2: rule__XShortClosure__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__2__Impl();
@@ -42967,23 +46356,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2__Impl"
-    // InternalChartDSL.g:12747:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
+    // InternalChartDSL.g:13757:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
     public final void rule__XShortClosure__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12751:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
-            // InternalChartDSL.g:12752:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalChartDSL.g:13761:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
+            // InternalChartDSL.g:13762:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
             {
-            // InternalChartDSL.g:12752:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
-            // InternalChartDSL.g:12753:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalChartDSL.g:13762:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalChartDSL.g:13763:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); 
             }
-            // InternalChartDSL.g:12754:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
-            // InternalChartDSL.g:12754:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
+            // InternalChartDSL.g:13764:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalChartDSL.g:13764:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2();
@@ -43018,16 +46407,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0"
-    // InternalChartDSL.g:12763:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
+    // InternalChartDSL.g:13773:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
     public final void rule__XShortClosure__Group_0_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12767:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
-            // InternalChartDSL.g:12768:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
+            // InternalChartDSL.g:13777:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
+            // InternalChartDSL.g:13778:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XShortClosure__Group_0_0_1__0__Impl();
 
             state._fsp--;
@@ -43056,23 +46445,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0__Impl"
-    // InternalChartDSL.g:12775:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
+    // InternalChartDSL.g:13785:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
     public final void rule__XShortClosure__Group_0_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12779:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
-            // InternalChartDSL.g:12780:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalChartDSL.g:13789:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
+            // InternalChartDSL.g:13790:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
             {
-            // InternalChartDSL.g:12780:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
-            // InternalChartDSL.g:12781:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalChartDSL.g:13790:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalChartDSL.g:13791:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); 
             }
-            // InternalChartDSL.g:12782:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
-            // InternalChartDSL.g:12782:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
+            // InternalChartDSL.g:13792:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalChartDSL.g:13792:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0();
@@ -43107,14 +46496,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1"
-    // InternalChartDSL.g:12790:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
+    // InternalChartDSL.g:13800:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
     public final void rule__XShortClosure__Group_0_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12794:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
-            // InternalChartDSL.g:12795:2: rule__XShortClosure__Group_0_0_1__1__Impl
+            // InternalChartDSL.g:13804:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
+            // InternalChartDSL.g:13805:2: rule__XShortClosure__Group_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1__1__Impl();
@@ -43140,37 +46529,37 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1__Impl"
-    // InternalChartDSL.g:12801:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
+    // InternalChartDSL.g:13811:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
     public final void rule__XShortClosure__Group_0_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12805:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
-            // InternalChartDSL.g:12806:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalChartDSL.g:13815:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
+            // InternalChartDSL.g:13816:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
             {
-            // InternalChartDSL.g:12806:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
-            // InternalChartDSL.g:12807:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            // InternalChartDSL.g:13816:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalChartDSL.g:13817:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); 
             }
-            // InternalChartDSL.g:12808:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
-            loop112:
+            // InternalChartDSL.g:13818:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            loop125:
             do {
-                int alt112=2;
-                int LA112_0 = input.LA(1);
+                int alt125=2;
+                int LA125_0 = input.LA(1);
 
-                if ( (LA112_0==99) ) {
-                    alt112=1;
+                if ( (LA125_0==114) ) {
+                    alt125=1;
                 }
 
 
-                switch (alt112) {
+                switch (alt125) {
             	case 1 :
-            	    // InternalChartDSL.g:12808:3: rule__XShortClosure__Group_0_0_1_1__0
+            	    // InternalChartDSL.g:13818:3: rule__XShortClosure__Group_0_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XShortClosure__Group_0_0_1_1__0();
 
             	    state._fsp--;
@@ -43180,7 +46569,7 @@
             	    break;
 
             	default :
-            	    break loop112;
+            	    break loop125;
                 }
             } while (true);
 
@@ -43209,16 +46598,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0"
-    // InternalChartDSL.g:12817:1: rule__XShortClosure__Group_0_0_1_1__0 : rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 ;
+    // InternalChartDSL.g:13827:1: rule__XShortClosure__Group_0_0_1_1__0 : rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 ;
     public final void rule__XShortClosure__Group_0_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12821:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
-            // InternalChartDSL.g:12822:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
+            // InternalChartDSL.g:13831:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
+            // InternalChartDSL.g:13832:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XShortClosure__Group_0_0_1_1__0__Impl();
 
             state._fsp--;
@@ -43247,22 +46636,22 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0__Impl"
-    // InternalChartDSL.g:12829:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:13839:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XShortClosure__Group_0_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12833:1: ( ( ',' ) )
-            // InternalChartDSL.g:12834:1: ( ',' )
+            // InternalChartDSL.g:13843:1: ( ( ',' ) )
+            // InternalChartDSL.g:13844:1: ( ',' )
             {
-            // InternalChartDSL.g:12834:1: ( ',' )
-            // InternalChartDSL.g:12835:2: ','
+            // InternalChartDSL.g:13844:1: ( ',' )
+            // InternalChartDSL.g:13845:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
             }
@@ -43288,14 +46677,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1"
-    // InternalChartDSL.g:12844:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
+    // InternalChartDSL.g:13854:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
     public final void rule__XShortClosure__Group_0_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12848:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
-            // InternalChartDSL.g:12849:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
+            // InternalChartDSL.g:13858:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
+            // InternalChartDSL.g:13859:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1_1__1__Impl();
@@ -43321,23 +46710,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1__Impl"
-    // InternalChartDSL.g:12855:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
+    // InternalChartDSL.g:13865:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
     public final void rule__XShortClosure__Group_0_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12859:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
-            // InternalChartDSL.g:12860:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalChartDSL.g:13869:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
+            // InternalChartDSL.g:13870:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
             {
-            // InternalChartDSL.g:12860:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
-            // InternalChartDSL.g:12861:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalChartDSL.g:13870:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalChartDSL.g:13871:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); 
             }
-            // InternalChartDSL.g:12862:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
-            // InternalChartDSL.g:12862:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
+            // InternalChartDSL.g:13872:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalChartDSL.g:13872:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1();
@@ -43372,16 +46761,16 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0"
-    // InternalChartDSL.g:12871:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
+    // InternalChartDSL.g:13881:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
     public final void rule__XParenthesizedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12875:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
-            // InternalChartDSL.g:12876:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
+            // InternalChartDSL.g:13885:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
+            // InternalChartDSL.g:13886:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XParenthesizedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -43410,22 +46799,22 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0__Impl"
-    // InternalChartDSL.g:12883:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
+    // InternalChartDSL.g:13893:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
     public final void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12887:1: ( ( '(' ) )
-            // InternalChartDSL.g:12888:1: ( '(' )
+            // InternalChartDSL.g:13897:1: ( ( '(' ) )
+            // InternalChartDSL.g:13898:1: ( '(' )
             {
-            // InternalChartDSL.g:12888:1: ( '(' )
-            // InternalChartDSL.g:12889:2: '('
+            // InternalChartDSL.g:13898:1: ( '(' )
+            // InternalChartDSL.g:13899:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
             }
@@ -43451,16 +46840,16 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1"
-    // InternalChartDSL.g:12898:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
+    // InternalChartDSL.g:13908:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
     public final void rule__XParenthesizedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12902:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
-            // InternalChartDSL.g:12903:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
+            // InternalChartDSL.g:13912:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
+            // InternalChartDSL.g:13913:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__XParenthesizedExpression__Group__1__Impl();
 
             state._fsp--;
@@ -43489,17 +46878,17 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1__Impl"
-    // InternalChartDSL.g:12910:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
+    // InternalChartDSL.g:13920:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
     public final void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12914:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:12915:1: ( ruleXExpression )
+            // InternalChartDSL.g:13924:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:13925:1: ( ruleXExpression )
             {
-            // InternalChartDSL.g:12915:1: ( ruleXExpression )
-            // InternalChartDSL.g:12916:2: ruleXExpression
+            // InternalChartDSL.g:13925:1: ( ruleXExpression )
+            // InternalChartDSL.g:13926:2: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -43534,14 +46923,14 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2"
-    // InternalChartDSL.g:12925:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
+    // InternalChartDSL.g:13935:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
     public final void rule__XParenthesizedExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12929:1: ( rule__XParenthesizedExpression__Group__2__Impl )
-            // InternalChartDSL.g:12930:2: rule__XParenthesizedExpression__Group__2__Impl
+            // InternalChartDSL.g:13939:1: ( rule__XParenthesizedExpression__Group__2__Impl )
+            // InternalChartDSL.g:13940:2: rule__XParenthesizedExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XParenthesizedExpression__Group__2__Impl();
@@ -43567,22 +46956,22 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2__Impl"
-    // InternalChartDSL.g:12936:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalChartDSL.g:13946:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12940:1: ( ( ')' ) )
-            // InternalChartDSL.g:12941:1: ( ')' )
+            // InternalChartDSL.g:13950:1: ( ( ')' ) )
+            // InternalChartDSL.g:13951:1: ( ')' )
             {
-            // InternalChartDSL.g:12941:1: ( ')' )
-            // InternalChartDSL.g:12942:2: ')'
+            // InternalChartDSL.g:13951:1: ( ')' )
+            // InternalChartDSL.g:13952:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -43608,16 +46997,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0"
-    // InternalChartDSL.g:12952:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
+    // InternalChartDSL.g:13962:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
     public final void rule__XIfExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12956:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
-            // InternalChartDSL.g:12957:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
+            // InternalChartDSL.g:13966:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
+            // InternalChartDSL.g:13967:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
             {
-            pushFollow(FOLLOW_107);
+            pushFollow(FOLLOW_112);
             rule__XIfExpression__Group__0__Impl();
 
             state._fsp--;
@@ -43646,23 +47035,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0__Impl"
-    // InternalChartDSL.g:12964:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:13974:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
     public final void rule__XIfExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12968:1: ( ( () ) )
-            // InternalChartDSL.g:12969:1: ( () )
+            // InternalChartDSL.g:13978:1: ( ( () ) )
+            // InternalChartDSL.g:13979:1: ( () )
             {
-            // InternalChartDSL.g:12969:1: ( () )
-            // InternalChartDSL.g:12970:2: ()
+            // InternalChartDSL.g:13979:1: ( () )
+            // InternalChartDSL.g:13980:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); 
             }
-            // InternalChartDSL.g:12971:2: ()
-            // InternalChartDSL.g:12971:3: 
+            // InternalChartDSL.g:13981:2: ()
+            // InternalChartDSL.g:13981:3: 
             {
             }
 
@@ -43687,16 +47076,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1"
-    // InternalChartDSL.g:12979:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
+    // InternalChartDSL.g:13989:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
     public final void rule__XIfExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12983:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
-            // InternalChartDSL.g:12984:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
+            // InternalChartDSL.g:13993:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
+            // InternalChartDSL.g:13994:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_62);
             rule__XIfExpression__Group__1__Impl();
 
             state._fsp--;
@@ -43725,22 +47114,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1__Impl"
-    // InternalChartDSL.g:12991:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
+    // InternalChartDSL.g:14001:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
     public final void rule__XIfExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:12995:1: ( ( 'if' ) )
-            // InternalChartDSL.g:12996:1: ( 'if' )
+            // InternalChartDSL.g:14005:1: ( ( 'if' ) )
+            // InternalChartDSL.g:14006:1: ( 'if' )
             {
-            // InternalChartDSL.g:12996:1: ( 'if' )
-            // InternalChartDSL.g:12997:2: 'if'
+            // InternalChartDSL.g:14006:1: ( 'if' )
+            // InternalChartDSL.g:14007:2: 'if'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
             }
-            match(input,104,FOLLOW_2); if (state.failed) return ;
+            match(input,119,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
             }
@@ -43766,16 +47155,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2"
-    // InternalChartDSL.g:13006:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
+    // InternalChartDSL.g:14016:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
     public final void rule__XIfExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13010:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
-            // InternalChartDSL.g:13011:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
+            // InternalChartDSL.g:14020:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
+            // InternalChartDSL.g:14021:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XIfExpression__Group__2__Impl();
 
             state._fsp--;
@@ -43804,22 +47193,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2__Impl"
-    // InternalChartDSL.g:13018:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
+    // InternalChartDSL.g:14028:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XIfExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13022:1: ( ( '(' ) )
-            // InternalChartDSL.g:13023:1: ( '(' )
+            // InternalChartDSL.g:14032:1: ( ( '(' ) )
+            // InternalChartDSL.g:14033:1: ( '(' )
             {
-            // InternalChartDSL.g:13023:1: ( '(' )
-            // InternalChartDSL.g:13024:2: '('
+            // InternalChartDSL.g:14033:1: ( '(' )
+            // InternalChartDSL.g:14034:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -43845,16 +47234,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3"
-    // InternalChartDSL.g:13033:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
+    // InternalChartDSL.g:14043:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
     public final void rule__XIfExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13037:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
-            // InternalChartDSL.g:13038:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
+            // InternalChartDSL.g:14047:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
+            // InternalChartDSL.g:14048:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__XIfExpression__Group__3__Impl();
 
             state._fsp--;
@@ -43883,23 +47272,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3__Impl"
-    // InternalChartDSL.g:13045:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
+    // InternalChartDSL.g:14055:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
     public final void rule__XIfExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13049:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
-            // InternalChartDSL.g:13050:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalChartDSL.g:14059:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
+            // InternalChartDSL.g:14060:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
             {
-            // InternalChartDSL.g:13050:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
-            // InternalChartDSL.g:13051:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalChartDSL.g:14060:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalChartDSL.g:14061:2: ( rule__XIfExpression__IfAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); 
             }
-            // InternalChartDSL.g:13052:2: ( rule__XIfExpression__IfAssignment_3 )
-            // InternalChartDSL.g:13052:3: rule__XIfExpression__IfAssignment_3
+            // InternalChartDSL.g:14062:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalChartDSL.g:14062:3: rule__XIfExpression__IfAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__IfAssignment_3();
@@ -43934,16 +47323,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4"
-    // InternalChartDSL.g:13060:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
+    // InternalChartDSL.g:14070:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
     public final void rule__XIfExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13064:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
-            // InternalChartDSL.g:13065:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
+            // InternalChartDSL.g:14074:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
+            // InternalChartDSL.g:14075:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XIfExpression__Group__4__Impl();
 
             state._fsp--;
@@ -43972,22 +47361,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4__Impl"
-    // InternalChartDSL.g:13072:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
+    // InternalChartDSL.g:14082:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XIfExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13076:1: ( ( ')' ) )
-            // InternalChartDSL.g:13077:1: ( ')' )
+            // InternalChartDSL.g:14086:1: ( ( ')' ) )
+            // InternalChartDSL.g:14087:1: ( ')' )
             {
-            // InternalChartDSL.g:13077:1: ( ')' )
-            // InternalChartDSL.g:13078:2: ')'
+            // InternalChartDSL.g:14087:1: ( ')' )
+            // InternalChartDSL.g:14088:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
             }
@@ -44013,16 +47402,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5"
-    // InternalChartDSL.g:13087:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
+    // InternalChartDSL.g:14097:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
     public final void rule__XIfExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13091:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
-            // InternalChartDSL.g:13092:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
+            // InternalChartDSL.g:14101:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
+            // InternalChartDSL.g:14102:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
             {
-            pushFollow(FOLLOW_108);
+            pushFollow(FOLLOW_113);
             rule__XIfExpression__Group__5__Impl();
 
             state._fsp--;
@@ -44051,23 +47440,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5__Impl"
-    // InternalChartDSL.g:13099:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
+    // InternalChartDSL.g:14109:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
     public final void rule__XIfExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13103:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
-            // InternalChartDSL.g:13104:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalChartDSL.g:14113:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
+            // InternalChartDSL.g:14114:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
             {
-            // InternalChartDSL.g:13104:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
-            // InternalChartDSL.g:13105:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalChartDSL.g:14114:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalChartDSL.g:14115:2: ( rule__XIfExpression__ThenAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); 
             }
-            // InternalChartDSL.g:13106:2: ( rule__XIfExpression__ThenAssignment_5 )
-            // InternalChartDSL.g:13106:3: rule__XIfExpression__ThenAssignment_5
+            // InternalChartDSL.g:14116:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalChartDSL.g:14116:3: rule__XIfExpression__ThenAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ThenAssignment_5();
@@ -44102,14 +47491,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6"
-    // InternalChartDSL.g:13114:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
+    // InternalChartDSL.g:14124:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
     public final void rule__XIfExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13118:1: ( rule__XIfExpression__Group__6__Impl )
-            // InternalChartDSL.g:13119:2: rule__XIfExpression__Group__6__Impl
+            // InternalChartDSL.g:14128:1: ( rule__XIfExpression__Group__6__Impl )
+            // InternalChartDSL.g:14129:2: rule__XIfExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group__6__Impl();
@@ -44135,35 +47524,35 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6__Impl"
-    // InternalChartDSL.g:13125:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
+    // InternalChartDSL.g:14135:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
     public final void rule__XIfExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13129:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
-            // InternalChartDSL.g:13130:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalChartDSL.g:14139:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
+            // InternalChartDSL.g:14140:1: ( ( rule__XIfExpression__Group_6__0 )? )
             {
-            // InternalChartDSL.g:13130:1: ( ( rule__XIfExpression__Group_6__0 )? )
-            // InternalChartDSL.g:13131:2: ( rule__XIfExpression__Group_6__0 )?
+            // InternalChartDSL.g:14140:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalChartDSL.g:14141:2: ( rule__XIfExpression__Group_6__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getGroup_6()); 
             }
-            // InternalChartDSL.g:13132:2: ( rule__XIfExpression__Group_6__0 )?
-            int alt113=2;
-            int LA113_0 = input.LA(1);
+            // InternalChartDSL.g:14142:2: ( rule__XIfExpression__Group_6__0 )?
+            int alt126=2;
+            int LA126_0 = input.LA(1);
 
-            if ( (LA113_0==105) ) {
-                int LA113_1 = input.LA(2);
+            if ( (LA126_0==120) ) {
+                int LA126_1 = input.LA(2);
 
-                if ( (synpred175_InternalChartDSL()) ) {
-                    alt113=1;
+                if ( (synpred193_InternalChartDSL()) ) {
+                    alt126=1;
                 }
             }
-            switch (alt113) {
+            switch (alt126) {
                 case 1 :
-                    // InternalChartDSL.g:13132:3: rule__XIfExpression__Group_6__0
+                    // InternalChartDSL.g:14142:3: rule__XIfExpression__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XIfExpression__Group_6__0();
@@ -44201,16 +47590,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0"
-    // InternalChartDSL.g:13141:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
+    // InternalChartDSL.g:14151:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
     public final void rule__XIfExpression__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13145:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
-            // InternalChartDSL.g:13146:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
+            // InternalChartDSL.g:14155:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
+            // InternalChartDSL.g:14156:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XIfExpression__Group_6__0__Impl();
 
             state._fsp--;
@@ -44239,25 +47628,25 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0__Impl"
-    // InternalChartDSL.g:13153:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
+    // InternalChartDSL.g:14163:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
     public final void rule__XIfExpression__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13157:1: ( ( ( 'else' ) ) )
-            // InternalChartDSL.g:13158:1: ( ( 'else' ) )
+            // InternalChartDSL.g:14167:1: ( ( ( 'else' ) ) )
+            // InternalChartDSL.g:14168:1: ( ( 'else' ) )
             {
-            // InternalChartDSL.g:13158:1: ( ( 'else' ) )
-            // InternalChartDSL.g:13159:2: ( 'else' )
+            // InternalChartDSL.g:14168:1: ( ( 'else' ) )
+            // InternalChartDSL.g:14169:2: ( 'else' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); 
             }
-            // InternalChartDSL.g:13160:2: ( 'else' )
-            // InternalChartDSL.g:13160:3: 'else'
+            // InternalChartDSL.g:14170:2: ( 'else' )
+            // InternalChartDSL.g:14170:3: 'else'
             {
-            match(input,105,FOLLOW_2); if (state.failed) return ;
+            match(input,120,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -44286,14 +47675,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1"
-    // InternalChartDSL.g:13168:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
+    // InternalChartDSL.g:14178:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
     public final void rule__XIfExpression__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13172:1: ( rule__XIfExpression__Group_6__1__Impl )
-            // InternalChartDSL.g:13173:2: rule__XIfExpression__Group_6__1__Impl
+            // InternalChartDSL.g:14182:1: ( rule__XIfExpression__Group_6__1__Impl )
+            // InternalChartDSL.g:14183:2: rule__XIfExpression__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group_6__1__Impl();
@@ -44319,23 +47708,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1__Impl"
-    // InternalChartDSL.g:13179:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
+    // InternalChartDSL.g:14189:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
     public final void rule__XIfExpression__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13183:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
-            // InternalChartDSL.g:13184:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalChartDSL.g:14193:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
+            // InternalChartDSL.g:14194:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
             {
-            // InternalChartDSL.g:13184:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
-            // InternalChartDSL.g:13185:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalChartDSL.g:14194:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalChartDSL.g:14195:2: ( rule__XIfExpression__ElseAssignment_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); 
             }
-            // InternalChartDSL.g:13186:2: ( rule__XIfExpression__ElseAssignment_6_1 )
-            // InternalChartDSL.g:13186:3: rule__XIfExpression__ElseAssignment_6_1
+            // InternalChartDSL.g:14196:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalChartDSL.g:14196:3: rule__XIfExpression__ElseAssignment_6_1
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ElseAssignment_6_1();
@@ -44370,16 +47759,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0"
-    // InternalChartDSL.g:13195:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
+    // InternalChartDSL.g:14205:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
     public final void rule__XSwitchExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13199:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
-            // InternalChartDSL.g:13200:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
+            // InternalChartDSL.g:14209:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
+            // InternalChartDSL.g:14210:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
             {
-            pushFollow(FOLLOW_109);
+            pushFollow(FOLLOW_114);
             rule__XSwitchExpression__Group__0__Impl();
 
             state._fsp--;
@@ -44408,23 +47797,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0__Impl"
-    // InternalChartDSL.g:13207:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:14217:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
     public final void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13211:1: ( ( () ) )
-            // InternalChartDSL.g:13212:1: ( () )
+            // InternalChartDSL.g:14221:1: ( ( () ) )
+            // InternalChartDSL.g:14222:1: ( () )
             {
-            // InternalChartDSL.g:13212:1: ( () )
-            // InternalChartDSL.g:13213:2: ()
+            // InternalChartDSL.g:14222:1: ( () )
+            // InternalChartDSL.g:14223:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); 
             }
-            // InternalChartDSL.g:13214:2: ()
-            // InternalChartDSL.g:13214:3: 
+            // InternalChartDSL.g:14224:2: ()
+            // InternalChartDSL.g:14224:3: 
             {
             }
 
@@ -44449,16 +47838,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1"
-    // InternalChartDSL.g:13222:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
+    // InternalChartDSL.g:14232:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
     public final void rule__XSwitchExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13226:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
-            // InternalChartDSL.g:13227:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
+            // InternalChartDSL.g:14236:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
+            // InternalChartDSL.g:14237:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
             {
-            pushFollow(FOLLOW_110);
+            pushFollow(FOLLOW_115);
             rule__XSwitchExpression__Group__1__Impl();
 
             state._fsp--;
@@ -44487,22 +47876,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1__Impl"
-    // InternalChartDSL.g:13234:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
+    // InternalChartDSL.g:14244:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
     public final void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13238:1: ( ( 'switch' ) )
-            // InternalChartDSL.g:13239:1: ( 'switch' )
+            // InternalChartDSL.g:14248:1: ( ( 'switch' ) )
+            // InternalChartDSL.g:14249:1: ( 'switch' )
             {
-            // InternalChartDSL.g:13239:1: ( 'switch' )
-            // InternalChartDSL.g:13240:2: 'switch'
+            // InternalChartDSL.g:14249:1: ( 'switch' )
+            // InternalChartDSL.g:14250:2: 'switch'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
             }
-            match(input,106,FOLLOW_2); if (state.failed) return ;
+            match(input,121,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
             }
@@ -44528,16 +47917,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2"
-    // InternalChartDSL.g:13249:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
+    // InternalChartDSL.g:14259:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
     public final void rule__XSwitchExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13253:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
-            // InternalChartDSL.g:13254:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
+            // InternalChartDSL.g:14263:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
+            // InternalChartDSL.g:14264:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
             {
-            pushFollow(FOLLOW_8);
+            pushFollow(FOLLOW_9);
             rule__XSwitchExpression__Group__2__Impl();
 
             state._fsp--;
@@ -44566,23 +47955,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2__Impl"
-    // InternalChartDSL.g:13261:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
+    // InternalChartDSL.g:14271:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
     public final void rule__XSwitchExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13265:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
-            // InternalChartDSL.g:13266:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalChartDSL.g:14275:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
+            // InternalChartDSL.g:14276:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
             {
-            // InternalChartDSL.g:13266:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
-            // InternalChartDSL.g:13267:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalChartDSL.g:14276:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalChartDSL.g:14277:2: ( rule__XSwitchExpression__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); 
             }
-            // InternalChartDSL.g:13268:2: ( rule__XSwitchExpression__Alternatives_2 )
-            // InternalChartDSL.g:13268:3: rule__XSwitchExpression__Alternatives_2
+            // InternalChartDSL.g:14278:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalChartDSL.g:14278:3: rule__XSwitchExpression__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Alternatives_2();
@@ -44617,16 +48006,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3"
-    // InternalChartDSL.g:13276:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
+    // InternalChartDSL.g:14286:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
     public final void rule__XSwitchExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13280:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
-            // InternalChartDSL.g:13281:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
+            // InternalChartDSL.g:14290:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
+            // InternalChartDSL.g:14291:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
             {
-            pushFollow(FOLLOW_111);
+            pushFollow(FOLLOW_116);
             rule__XSwitchExpression__Group__3__Impl();
 
             state._fsp--;
@@ -44655,22 +48044,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3__Impl"
-    // InternalChartDSL.g:13288:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
+    // InternalChartDSL.g:14298:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
     public final void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13292:1: ( ( '{' ) )
-            // InternalChartDSL.g:13293:1: ( '{' )
+            // InternalChartDSL.g:14302:1: ( ( '{' ) )
+            // InternalChartDSL.g:14303:1: ( '{' )
             {
-            // InternalChartDSL.g:13293:1: ( '{' )
-            // InternalChartDSL.g:13294:2: '{'
+            // InternalChartDSL.g:14303:1: ( '{' )
+            // InternalChartDSL.g:14304:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
             }
-            match(input,72,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
             }
@@ -44696,16 +48085,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4"
-    // InternalChartDSL.g:13303:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
+    // InternalChartDSL.g:14313:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
     public final void rule__XSwitchExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13307:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
-            // InternalChartDSL.g:13308:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
+            // InternalChartDSL.g:14317:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
+            // InternalChartDSL.g:14318:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
             {
-            pushFollow(FOLLOW_111);
+            pushFollow(FOLLOW_116);
             rule__XSwitchExpression__Group__4__Impl();
 
             state._fsp--;
@@ -44734,37 +48123,37 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4__Impl"
-    // InternalChartDSL.g:13315:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
+    // InternalChartDSL.g:14325:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
     public final void rule__XSwitchExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13319:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
-            // InternalChartDSL.g:13320:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalChartDSL.g:14329:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
+            // InternalChartDSL.g:14330:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
             {
-            // InternalChartDSL.g:13320:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
-            // InternalChartDSL.g:13321:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            // InternalChartDSL.g:14330:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalChartDSL.g:14331:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); 
             }
-            // InternalChartDSL.g:13322:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
-            loop114:
+            // InternalChartDSL.g:14332:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            loop127:
             do {
-                int alt114=2;
-                int LA114_0 = input.LA(1);
+                int alt127=2;
+                int LA127_0 = input.LA(1);
 
-                if ( (LA114_0==RULE_ID||LA114_0==31||LA114_0==97||LA114_0==99||LA114_0==107||LA114_0==109) ) {
-                    alt114=1;
+                if ( (LA127_0==RULE_ID||LA127_0==31||LA127_0==112||LA127_0==114||LA127_0==122||LA127_0==124) ) {
+                    alt127=1;
                 }
 
 
-                switch (alt114) {
+                switch (alt127) {
             	case 1 :
-            	    // InternalChartDSL.g:13322:3: rule__XSwitchExpression__CasesAssignment_4
+            	    // InternalChartDSL.g:14332:3: rule__XSwitchExpression__CasesAssignment_4
             	    {
-            	    pushFollow(FOLLOW_112);
+            	    pushFollow(FOLLOW_117);
             	    rule__XSwitchExpression__CasesAssignment_4();
 
             	    state._fsp--;
@@ -44774,7 +48163,7 @@
             	    break;
 
             	default :
-            	    break loop114;
+            	    break loop127;
                 }
             } while (true);
 
@@ -44803,16 +48192,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5"
-    // InternalChartDSL.g:13330:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
+    // InternalChartDSL.g:14340:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
     public final void rule__XSwitchExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13334:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
-            // InternalChartDSL.g:13335:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
+            // InternalChartDSL.g:14344:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
+            // InternalChartDSL.g:14345:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
             {
-            pushFollow(FOLLOW_111);
+            pushFollow(FOLLOW_116);
             rule__XSwitchExpression__Group__5__Impl();
 
             state._fsp--;
@@ -44841,31 +48230,31 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5__Impl"
-    // InternalChartDSL.g:13342:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
+    // InternalChartDSL.g:14352:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
     public final void rule__XSwitchExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13346:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
-            // InternalChartDSL.g:13347:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalChartDSL.g:14356:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
+            // InternalChartDSL.g:14357:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
             {
-            // InternalChartDSL.g:13347:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
-            // InternalChartDSL.g:13348:2: ( rule__XSwitchExpression__Group_5__0 )?
+            // InternalChartDSL.g:14357:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalChartDSL.g:14358:2: ( rule__XSwitchExpression__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); 
             }
-            // InternalChartDSL.g:13349:2: ( rule__XSwitchExpression__Group_5__0 )?
-            int alt115=2;
-            int LA115_0 = input.LA(1);
+            // InternalChartDSL.g:14359:2: ( rule__XSwitchExpression__Group_5__0 )?
+            int alt128=2;
+            int LA128_0 = input.LA(1);
 
-            if ( (LA115_0==108) ) {
-                alt115=1;
+            if ( (LA128_0==123) ) {
+                alt128=1;
             }
-            switch (alt115) {
+            switch (alt128) {
                 case 1 :
-                    // InternalChartDSL.g:13349:3: rule__XSwitchExpression__Group_5__0
+                    // InternalChartDSL.g:14359:3: rule__XSwitchExpression__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_5__0();
@@ -44903,14 +48292,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6"
-    // InternalChartDSL.g:13357:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
+    // InternalChartDSL.g:14367:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
     public final void rule__XSwitchExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13361:1: ( rule__XSwitchExpression__Group__6__Impl )
-            // InternalChartDSL.g:13362:2: rule__XSwitchExpression__Group__6__Impl
+            // InternalChartDSL.g:14371:1: ( rule__XSwitchExpression__Group__6__Impl )
+            // InternalChartDSL.g:14372:2: rule__XSwitchExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group__6__Impl();
@@ -44936,22 +48325,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6__Impl"
-    // InternalChartDSL.g:13368:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
+    // InternalChartDSL.g:14378:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
     public final void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13372:1: ( ( '}' ) )
-            // InternalChartDSL.g:13373:1: ( '}' )
+            // InternalChartDSL.g:14382:1: ( ( '}' ) )
+            // InternalChartDSL.g:14383:1: ( '}' )
             {
-            // InternalChartDSL.g:13373:1: ( '}' )
-            // InternalChartDSL.g:13374:2: '}'
+            // InternalChartDSL.g:14383:1: ( '}' )
+            // InternalChartDSL.g:14384:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
             }
-            match(input,73,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
             }
@@ -44977,16 +48366,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0"
-    // InternalChartDSL.g:13384:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
+    // InternalChartDSL.g:14394:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
     public final void rule__XSwitchExpression__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13388:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
-            // InternalChartDSL.g:13389:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
+            // InternalChartDSL.g:14398:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
+            // InternalChartDSL.g:14399:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XSwitchExpression__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -45015,23 +48404,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0__Impl"
-    // InternalChartDSL.g:13396:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
+    // InternalChartDSL.g:14406:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13400:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
-            // InternalChartDSL.g:13401:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalChartDSL.g:14410:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
+            // InternalChartDSL.g:14411:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
             {
-            // InternalChartDSL.g:13401:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
-            // InternalChartDSL.g:13402:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalChartDSL.g:14411:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalChartDSL.g:14412:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); 
             }
-            // InternalChartDSL.g:13403:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
-            // InternalChartDSL.g:13403:3: rule__XSwitchExpression__Group_2_0_0__0
+            // InternalChartDSL.g:14413:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalChartDSL.g:14413:3: rule__XSwitchExpression__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0();
@@ -45066,16 +48455,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1"
-    // InternalChartDSL.g:13411:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
+    // InternalChartDSL.g:14421:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
     public final void rule__XSwitchExpression__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13415:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
-            // InternalChartDSL.g:13416:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
+            // InternalChartDSL.g:14425:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
+            // InternalChartDSL.g:14426:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__XSwitchExpression__Group_2_0__1__Impl();
 
             state._fsp--;
@@ -45104,23 +48493,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1__Impl"
-    // InternalChartDSL.g:13423:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
+    // InternalChartDSL.g:14433:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13427:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
-            // InternalChartDSL.g:13428:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalChartDSL.g:14437:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
+            // InternalChartDSL.g:14438:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
             {
-            // InternalChartDSL.g:13428:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
-            // InternalChartDSL.g:13429:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalChartDSL.g:14438:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalChartDSL.g:14439:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); 
             }
-            // InternalChartDSL.g:13430:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
-            // InternalChartDSL.g:13430:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
+            // InternalChartDSL.g:14440:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalChartDSL.g:14440:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_0_1();
@@ -45155,14 +48544,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2"
-    // InternalChartDSL.g:13438:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
+    // InternalChartDSL.g:14448:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
     public final void rule__XSwitchExpression__Group_2_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13442:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
-            // InternalChartDSL.g:13443:2: rule__XSwitchExpression__Group_2_0__2__Impl
+            // InternalChartDSL.g:14452:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
+            // InternalChartDSL.g:14453:2: rule__XSwitchExpression__Group_2_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0__2__Impl();
@@ -45188,22 +48577,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2__Impl"
-    // InternalChartDSL.g:13449:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
+    // InternalChartDSL.g:14459:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
     public final void rule__XSwitchExpression__Group_2_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13453:1: ( ( ')' ) )
-            // InternalChartDSL.g:13454:1: ( ')' )
+            // InternalChartDSL.g:14463:1: ( ( ')' ) )
+            // InternalChartDSL.g:14464:1: ( ')' )
             {
-            // InternalChartDSL.g:13454:1: ( ')' )
-            // InternalChartDSL.g:13455:2: ')'
+            // InternalChartDSL.g:14464:1: ( ')' )
+            // InternalChartDSL.g:14465:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
             }
@@ -45229,14 +48618,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0"
-    // InternalChartDSL.g:13465:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
+    // InternalChartDSL.g:14475:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
     public final void rule__XSwitchExpression__Group_2_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13469:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
-            // InternalChartDSL.g:13470:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
+            // InternalChartDSL.g:14479:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
+            // InternalChartDSL.g:14480:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0__Impl();
@@ -45262,23 +48651,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0__Impl"
-    // InternalChartDSL.g:13476:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
+    // InternalChartDSL.g:14486:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13480:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
-            // InternalChartDSL.g:13481:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalChartDSL.g:14490:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
+            // InternalChartDSL.g:14491:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
             {
-            // InternalChartDSL.g:13481:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
-            // InternalChartDSL.g:13482:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalChartDSL.g:14491:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalChartDSL.g:14492:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); 
             }
-            // InternalChartDSL.g:13483:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
-            // InternalChartDSL.g:13483:3: rule__XSwitchExpression__Group_2_0_0_0__0
+            // InternalChartDSL.g:14493:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalChartDSL.g:14493:3: rule__XSwitchExpression__Group_2_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__0();
@@ -45313,16 +48702,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0"
-    // InternalChartDSL.g:13492:1: rule__XSwitchExpression__Group_2_0_0_0__0 : rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 ;
+    // InternalChartDSL.g:14502:1: rule__XSwitchExpression__Group_2_0_0_0__0 : rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13496:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
-            // InternalChartDSL.g:13497:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
+            // InternalChartDSL.g:14506:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
+            // InternalChartDSL.g:14507:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XSwitchExpression__Group_2_0_0_0__0__Impl();
 
             state._fsp--;
@@ -45351,22 +48740,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"
-    // InternalChartDSL.g:13504:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
+    // InternalChartDSL.g:14514:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13508:1: ( ( '(' ) )
-            // InternalChartDSL.g:13509:1: ( '(' )
+            // InternalChartDSL.g:14518:1: ( ( '(' ) )
+            // InternalChartDSL.g:14519:1: ( '(' )
             {
-            // InternalChartDSL.g:13509:1: ( '(' )
-            // InternalChartDSL.g:13510:2: '('
+            // InternalChartDSL.g:14519:1: ( '(' )
+            // InternalChartDSL.g:14520:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
             }
@@ -45392,16 +48781,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1"
-    // InternalChartDSL.g:13519:1: rule__XSwitchExpression__Group_2_0_0_0__1 : rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 ;
+    // InternalChartDSL.g:14529:1: rule__XSwitchExpression__Group_2_0_0_0__1 : rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13523:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
-            // InternalChartDSL.g:13524:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
+            // InternalChartDSL.g:14533:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
+            // InternalChartDSL.g:14534:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
             {
-            pushFollow(FOLLOW_113);
+            pushFollow(FOLLOW_118);
             rule__XSwitchExpression__Group_2_0_0_0__1__Impl();
 
             state._fsp--;
@@ -45430,23 +48819,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"
-    // InternalChartDSL.g:13531:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
+    // InternalChartDSL.g:14541:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13535:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
-            // InternalChartDSL.g:13536:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalChartDSL.g:14545:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
+            // InternalChartDSL.g:14546:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
             {
-            // InternalChartDSL.g:13536:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
-            // InternalChartDSL.g:13537:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalChartDSL.g:14546:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalChartDSL.g:14547:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); 
             }
-            // InternalChartDSL.g:13538:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
-            // InternalChartDSL.g:13538:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
+            // InternalChartDSL.g:14548:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalChartDSL.g:14548:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1();
@@ -45481,14 +48870,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2"
-    // InternalChartDSL.g:13546:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
+    // InternalChartDSL.g:14556:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13550:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
-            // InternalChartDSL.g:13551:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
+            // InternalChartDSL.g:14560:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
+            // InternalChartDSL.g:14561:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__2__Impl();
@@ -45514,22 +48903,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2__Impl"
-    // InternalChartDSL.g:13557:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
+    // InternalChartDSL.g:14567:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13561:1: ( ( ':' ) )
-            // InternalChartDSL.g:13562:1: ( ':' )
+            // InternalChartDSL.g:14571:1: ( ( ':' ) )
+            // InternalChartDSL.g:14572:1: ( ':' )
             {
-            // InternalChartDSL.g:13562:1: ( ':' )
-            // InternalChartDSL.g:13563:2: ':'
+            // InternalChartDSL.g:14572:1: ( ':' )
+            // InternalChartDSL.g:14573:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
             }
-            match(input,107,FOLLOW_2); if (state.failed) return ;
+            match(input,122,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
             }
@@ -45555,16 +48944,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0"
-    // InternalChartDSL.g:13573:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
+    // InternalChartDSL.g:14583:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
     public final void rule__XSwitchExpression__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13577:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
-            // InternalChartDSL.g:13578:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
+            // InternalChartDSL.g:14587:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
+            // InternalChartDSL.g:14588:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
             {
-            pushFollow(FOLLOW_110);
+            pushFollow(FOLLOW_115);
             rule__XSwitchExpression__Group_2_1__0__Impl();
 
             state._fsp--;
@@ -45593,27 +48982,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0__Impl"
-    // InternalChartDSL.g:13585:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
+    // InternalChartDSL.g:14595:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
     public final void rule__XSwitchExpression__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13589:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
-            // InternalChartDSL.g:13590:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalChartDSL.g:14599:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
+            // InternalChartDSL.g:14600:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
             {
-            // InternalChartDSL.g:13590:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
-            // InternalChartDSL.g:13591:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            // InternalChartDSL.g:14600:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalChartDSL.g:14601:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); 
             }
-            // InternalChartDSL.g:13592:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
-            int alt116=2;
-            alt116 = dfa116.predict(input);
-            switch (alt116) {
+            // InternalChartDSL.g:14602:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            int alt129=2;
+            alt129 = dfa129.predict(input);
+            switch (alt129) {
                 case 1 :
-                    // InternalChartDSL.g:13592:3: rule__XSwitchExpression__Group_2_1_0__0
+                    // InternalChartDSL.g:14602:3: rule__XSwitchExpression__Group_2_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1_0__0();
@@ -45651,14 +49040,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1"
-    // InternalChartDSL.g:13600:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
+    // InternalChartDSL.g:14610:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
     public final void rule__XSwitchExpression__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13604:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
-            // InternalChartDSL.g:13605:2: rule__XSwitchExpression__Group_2_1__1__Impl
+            // InternalChartDSL.g:14614:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
+            // InternalChartDSL.g:14615:2: rule__XSwitchExpression__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1__1__Impl();
@@ -45684,23 +49073,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1__Impl"
-    // InternalChartDSL.g:13611:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
+    // InternalChartDSL.g:14621:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13615:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
-            // InternalChartDSL.g:13616:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalChartDSL.g:14625:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
+            // InternalChartDSL.g:14626:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
             {
-            // InternalChartDSL.g:13616:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
-            // InternalChartDSL.g:13617:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalChartDSL.g:14626:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalChartDSL.g:14627:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); 
             }
-            // InternalChartDSL.g:13618:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
-            // InternalChartDSL.g:13618:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
+            // InternalChartDSL.g:14628:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalChartDSL.g:14628:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_1_1();
@@ -45735,14 +49124,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0"
-    // InternalChartDSL.g:13627:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
+    // InternalChartDSL.g:14637:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
     public final void rule__XSwitchExpression__Group_2_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13631:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
-            // InternalChartDSL.g:13632:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
+            // InternalChartDSL.g:14641:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
+            // InternalChartDSL.g:14642:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0__0__Impl();
@@ -45768,23 +49157,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0__Impl"
-    // InternalChartDSL.g:13638:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
+    // InternalChartDSL.g:14648:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13642:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
-            // InternalChartDSL.g:13643:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalChartDSL.g:14652:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
+            // InternalChartDSL.g:14653:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
             {
-            // InternalChartDSL.g:13643:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
-            // InternalChartDSL.g:13644:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalChartDSL.g:14653:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalChartDSL.g:14654:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); 
             }
-            // InternalChartDSL.g:13645:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
-            // InternalChartDSL.g:13645:3: rule__XSwitchExpression__Group_2_1_0_0__0
+            // InternalChartDSL.g:14655:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalChartDSL.g:14655:3: rule__XSwitchExpression__Group_2_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__0();
@@ -45819,16 +49208,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0"
-    // InternalChartDSL.g:13654:1: rule__XSwitchExpression__Group_2_1_0_0__0 : rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 ;
+    // InternalChartDSL.g:14664:1: rule__XSwitchExpression__Group_2_1_0_0__0 : rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13658:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
-            // InternalChartDSL.g:13659:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
+            // InternalChartDSL.g:14668:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
+            // InternalChartDSL.g:14669:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
             {
-            pushFollow(FOLLOW_113);
+            pushFollow(FOLLOW_118);
             rule__XSwitchExpression__Group_2_1_0_0__0__Impl();
 
             state._fsp--;
@@ -45857,23 +49246,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"
-    // InternalChartDSL.g:13666:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
+    // InternalChartDSL.g:14676:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13670:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
-            // InternalChartDSL.g:13671:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalChartDSL.g:14680:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
+            // InternalChartDSL.g:14681:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
             {
-            // InternalChartDSL.g:13671:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
-            // InternalChartDSL.g:13672:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalChartDSL.g:14681:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalChartDSL.g:14682:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); 
             }
-            // InternalChartDSL.g:13673:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
-            // InternalChartDSL.g:13673:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
+            // InternalChartDSL.g:14683:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalChartDSL.g:14683:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0();
@@ -45908,14 +49297,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1"
-    // InternalChartDSL.g:13681:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
+    // InternalChartDSL.g:14691:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13685:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
-            // InternalChartDSL.g:13686:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
+            // InternalChartDSL.g:14695:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
+            // InternalChartDSL.g:14696:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__1__Impl();
@@ -45941,22 +49330,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"
-    // InternalChartDSL.g:13692:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
+    // InternalChartDSL.g:14702:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13696:1: ( ( ':' ) )
-            // InternalChartDSL.g:13697:1: ( ':' )
+            // InternalChartDSL.g:14706:1: ( ( ':' ) )
+            // InternalChartDSL.g:14707:1: ( ':' )
             {
-            // InternalChartDSL.g:13697:1: ( ':' )
-            // InternalChartDSL.g:13698:2: ':'
+            // InternalChartDSL.g:14707:1: ( ':' )
+            // InternalChartDSL.g:14708:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
             }
-            match(input,107,FOLLOW_2); if (state.failed) return ;
+            match(input,122,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
             }
@@ -45982,16 +49371,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0"
-    // InternalChartDSL.g:13708:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
+    // InternalChartDSL.g:14718:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
     public final void rule__XSwitchExpression__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13712:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
-            // InternalChartDSL.g:13713:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
+            // InternalChartDSL.g:14722:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
+            // InternalChartDSL.g:14723:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
             {
-            pushFollow(FOLLOW_113);
+            pushFollow(FOLLOW_118);
             rule__XSwitchExpression__Group_5__0__Impl();
 
             state._fsp--;
@@ -46020,22 +49409,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0__Impl"
-    // InternalChartDSL.g:13720:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
+    // InternalChartDSL.g:14730:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
     public final void rule__XSwitchExpression__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13724:1: ( ( 'default' ) )
-            // InternalChartDSL.g:13725:1: ( 'default' )
+            // InternalChartDSL.g:14734:1: ( ( 'default' ) )
+            // InternalChartDSL.g:14735:1: ( 'default' )
             {
-            // InternalChartDSL.g:13725:1: ( 'default' )
-            // InternalChartDSL.g:13726:2: 'default'
+            // InternalChartDSL.g:14735:1: ( 'default' )
+            // InternalChartDSL.g:14736:2: 'default'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
             }
-            match(input,108,FOLLOW_2); if (state.failed) return ;
+            match(input,123,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
             }
@@ -46061,16 +49450,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1"
-    // InternalChartDSL.g:13735:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
+    // InternalChartDSL.g:14745:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
     public final void rule__XSwitchExpression__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13739:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
-            // InternalChartDSL.g:13740:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
+            // InternalChartDSL.g:14749:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
+            // InternalChartDSL.g:14750:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XSwitchExpression__Group_5__1__Impl();
 
             state._fsp--;
@@ -46099,22 +49488,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1__Impl"
-    // InternalChartDSL.g:13747:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
+    // InternalChartDSL.g:14757:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13751:1: ( ( ':' ) )
-            // InternalChartDSL.g:13752:1: ( ':' )
+            // InternalChartDSL.g:14761:1: ( ( ':' ) )
+            // InternalChartDSL.g:14762:1: ( ':' )
             {
-            // InternalChartDSL.g:13752:1: ( ':' )
-            // InternalChartDSL.g:13753:2: ':'
+            // InternalChartDSL.g:14762:1: ( ':' )
+            // InternalChartDSL.g:14763:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
             }
-            match(input,107,FOLLOW_2); if (state.failed) return ;
+            match(input,122,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
             }
@@ -46140,14 +49529,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2"
-    // InternalChartDSL.g:13762:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
+    // InternalChartDSL.g:14772:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
     public final void rule__XSwitchExpression__Group_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13766:1: ( rule__XSwitchExpression__Group_5__2__Impl )
-            // InternalChartDSL.g:13767:2: rule__XSwitchExpression__Group_5__2__Impl
+            // InternalChartDSL.g:14776:1: ( rule__XSwitchExpression__Group_5__2__Impl )
+            // InternalChartDSL.g:14777:2: rule__XSwitchExpression__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_5__2__Impl();
@@ -46173,23 +49562,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2__Impl"
-    // InternalChartDSL.g:13773:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
+    // InternalChartDSL.g:14783:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
     public final void rule__XSwitchExpression__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13777:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
-            // InternalChartDSL.g:13778:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalChartDSL.g:14787:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
+            // InternalChartDSL.g:14788:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
             {
-            // InternalChartDSL.g:13778:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
-            // InternalChartDSL.g:13779:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalChartDSL.g:14788:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalChartDSL.g:14789:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); 
             }
-            // InternalChartDSL.g:13780:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
-            // InternalChartDSL.g:13780:3: rule__XSwitchExpression__DefaultAssignment_5_2
+            // InternalChartDSL.g:14790:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalChartDSL.g:14790:3: rule__XSwitchExpression__DefaultAssignment_5_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DefaultAssignment_5_2();
@@ -46224,16 +49613,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0"
-    // InternalChartDSL.g:13789:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
+    // InternalChartDSL.g:14799:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
     public final void rule__XCasePart__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13793:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
-            // InternalChartDSL.g:13794:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
+            // InternalChartDSL.g:14803:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
+            // InternalChartDSL.g:14804:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
             {
-            pushFollow(FOLLOW_114);
+            pushFollow(FOLLOW_119);
             rule__XCasePart__Group__0__Impl();
 
             state._fsp--;
@@ -46262,23 +49651,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0__Impl"
-    // InternalChartDSL.g:13801:1: rule__XCasePart__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:14811:1: rule__XCasePart__Group__0__Impl : ( () ) ;
     public final void rule__XCasePart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13805:1: ( ( () ) )
-            // InternalChartDSL.g:13806:1: ( () )
+            // InternalChartDSL.g:14815:1: ( ( () ) )
+            // InternalChartDSL.g:14816:1: ( () )
             {
-            // InternalChartDSL.g:13806:1: ( () )
-            // InternalChartDSL.g:13807:2: ()
+            // InternalChartDSL.g:14816:1: ( () )
+            // InternalChartDSL.g:14817:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); 
             }
-            // InternalChartDSL.g:13808:2: ()
-            // InternalChartDSL.g:13808:3: 
+            // InternalChartDSL.g:14818:2: ()
+            // InternalChartDSL.g:14818:3: 
             {
             }
 
@@ -46303,16 +49692,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1"
-    // InternalChartDSL.g:13816:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
+    // InternalChartDSL.g:14826:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
     public final void rule__XCasePart__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13820:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
-            // InternalChartDSL.g:13821:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
+            // InternalChartDSL.g:14830:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
+            // InternalChartDSL.g:14831:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
             {
-            pushFollow(FOLLOW_114);
+            pushFollow(FOLLOW_119);
             rule__XCasePart__Group__1__Impl();
 
             state._fsp--;
@@ -46341,31 +49730,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1__Impl"
-    // InternalChartDSL.g:13828:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
+    // InternalChartDSL.g:14838:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
     public final void rule__XCasePart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13832:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
-            // InternalChartDSL.g:13833:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalChartDSL.g:14842:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
+            // InternalChartDSL.g:14843:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
             {
-            // InternalChartDSL.g:13833:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
-            // InternalChartDSL.g:13834:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            // InternalChartDSL.g:14843:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalChartDSL.g:14844:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); 
             }
-            // InternalChartDSL.g:13835:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
-            int alt117=2;
-            int LA117_0 = input.LA(1);
+            // InternalChartDSL.g:14845:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            int alt130=2;
+            int LA130_0 = input.LA(1);
 
-            if ( (LA117_0==RULE_ID||LA117_0==31||LA117_0==97) ) {
-                alt117=1;
+            if ( (LA130_0==RULE_ID||LA130_0==31||LA130_0==112) ) {
+                alt130=1;
             }
-            switch (alt117) {
+            switch (alt130) {
                 case 1 :
-                    // InternalChartDSL.g:13835:3: rule__XCasePart__TypeGuardAssignment_1
+                    // InternalChartDSL.g:14845:3: rule__XCasePart__TypeGuardAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__TypeGuardAssignment_1();
@@ -46403,16 +49792,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2"
-    // InternalChartDSL.g:13843:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
+    // InternalChartDSL.g:14853:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
     public final void rule__XCasePart__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13847:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
-            // InternalChartDSL.g:13848:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
+            // InternalChartDSL.g:14857:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
+            // InternalChartDSL.g:14858:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
             {
-            pushFollow(FOLLOW_114);
+            pushFollow(FOLLOW_119);
             rule__XCasePart__Group__2__Impl();
 
             state._fsp--;
@@ -46441,31 +49830,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2__Impl"
-    // InternalChartDSL.g:13855:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
+    // InternalChartDSL.g:14865:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
     public final void rule__XCasePart__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13859:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
-            // InternalChartDSL.g:13860:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalChartDSL.g:14869:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
+            // InternalChartDSL.g:14870:1: ( ( rule__XCasePart__Group_2__0 )? )
             {
-            // InternalChartDSL.g:13860:1: ( ( rule__XCasePart__Group_2__0 )? )
-            // InternalChartDSL.g:13861:2: ( rule__XCasePart__Group_2__0 )?
+            // InternalChartDSL.g:14870:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalChartDSL.g:14871:2: ( rule__XCasePart__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getGroup_2()); 
             }
-            // InternalChartDSL.g:13862:2: ( rule__XCasePart__Group_2__0 )?
-            int alt118=2;
-            int LA118_0 = input.LA(1);
+            // InternalChartDSL.g:14872:2: ( rule__XCasePart__Group_2__0 )?
+            int alt131=2;
+            int LA131_0 = input.LA(1);
 
-            if ( (LA118_0==109) ) {
-                alt118=1;
+            if ( (LA131_0==124) ) {
+                alt131=1;
             }
-            switch (alt118) {
+            switch (alt131) {
                 case 1 :
-                    // InternalChartDSL.g:13862:3: rule__XCasePart__Group_2__0
+                    // InternalChartDSL.g:14872:3: rule__XCasePart__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_2__0();
@@ -46503,14 +49892,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3"
-    // InternalChartDSL.g:13870:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
+    // InternalChartDSL.g:14880:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
     public final void rule__XCasePart__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13874:1: ( rule__XCasePart__Group__3__Impl )
-            // InternalChartDSL.g:13875:2: rule__XCasePart__Group__3__Impl
+            // InternalChartDSL.g:14884:1: ( rule__XCasePart__Group__3__Impl )
+            // InternalChartDSL.g:14885:2: rule__XCasePart__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group__3__Impl();
@@ -46536,23 +49925,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3__Impl"
-    // InternalChartDSL.g:13881:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
+    // InternalChartDSL.g:14891:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
     public final void rule__XCasePart__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13885:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
-            // InternalChartDSL.g:13886:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalChartDSL.g:14895:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
+            // InternalChartDSL.g:14896:1: ( ( rule__XCasePart__Alternatives_3 ) )
             {
-            // InternalChartDSL.g:13886:1: ( ( rule__XCasePart__Alternatives_3 ) )
-            // InternalChartDSL.g:13887:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalChartDSL.g:14896:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalChartDSL.g:14897:2: ( rule__XCasePart__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getAlternatives_3()); 
             }
-            // InternalChartDSL.g:13888:2: ( rule__XCasePart__Alternatives_3 )
-            // InternalChartDSL.g:13888:3: rule__XCasePart__Alternatives_3
+            // InternalChartDSL.g:14898:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalChartDSL.g:14898:3: rule__XCasePart__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Alternatives_3();
@@ -46587,16 +49976,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0"
-    // InternalChartDSL.g:13897:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
+    // InternalChartDSL.g:14907:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
     public final void rule__XCasePart__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13901:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
-            // InternalChartDSL.g:13902:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
+            // InternalChartDSL.g:14911:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
+            // InternalChartDSL.g:14912:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XCasePart__Group_2__0__Impl();
 
             state._fsp--;
@@ -46625,22 +50014,22 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0__Impl"
-    // InternalChartDSL.g:13909:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
+    // InternalChartDSL.g:14919:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
     public final void rule__XCasePart__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13913:1: ( ( 'case' ) )
-            // InternalChartDSL.g:13914:1: ( 'case' )
+            // InternalChartDSL.g:14923:1: ( ( 'case' ) )
+            // InternalChartDSL.g:14924:1: ( 'case' )
             {
-            // InternalChartDSL.g:13914:1: ( 'case' )
-            // InternalChartDSL.g:13915:2: 'case'
+            // InternalChartDSL.g:14924:1: ( 'case' )
+            // InternalChartDSL.g:14925:2: 'case'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
             }
-            match(input,109,FOLLOW_2); if (state.failed) return ;
+            match(input,124,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
             }
@@ -46666,14 +50055,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1"
-    // InternalChartDSL.g:13924:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
+    // InternalChartDSL.g:14934:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
     public final void rule__XCasePart__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13928:1: ( rule__XCasePart__Group_2__1__Impl )
-            // InternalChartDSL.g:13929:2: rule__XCasePart__Group_2__1__Impl
+            // InternalChartDSL.g:14938:1: ( rule__XCasePart__Group_2__1__Impl )
+            // InternalChartDSL.g:14939:2: rule__XCasePart__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_2__1__Impl();
@@ -46699,23 +50088,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1__Impl"
-    // InternalChartDSL.g:13935:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
+    // InternalChartDSL.g:14945:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
     public final void rule__XCasePart__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13939:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
-            // InternalChartDSL.g:13940:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalChartDSL.g:14949:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
+            // InternalChartDSL.g:14950:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
             {
-            // InternalChartDSL.g:13940:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
-            // InternalChartDSL.g:13941:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalChartDSL.g:14950:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalChartDSL.g:14951:2: ( rule__XCasePart__CaseAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); 
             }
-            // InternalChartDSL.g:13942:2: ( rule__XCasePart__CaseAssignment_2_1 )
-            // InternalChartDSL.g:13942:3: rule__XCasePart__CaseAssignment_2_1
+            // InternalChartDSL.g:14952:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalChartDSL.g:14952:3: rule__XCasePart__CaseAssignment_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__CaseAssignment_2_1();
@@ -46750,16 +50139,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0"
-    // InternalChartDSL.g:13951:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
+    // InternalChartDSL.g:14961:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
     public final void rule__XCasePart__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13955:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
-            // InternalChartDSL.g:13956:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
+            // InternalChartDSL.g:14965:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
+            // InternalChartDSL.g:14966:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XCasePart__Group_3_0__0__Impl();
 
             state._fsp--;
@@ -46788,22 +50177,22 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0__Impl"
-    // InternalChartDSL.g:13963:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
+    // InternalChartDSL.g:14973:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
     public final void rule__XCasePart__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13967:1: ( ( ':' ) )
-            // InternalChartDSL.g:13968:1: ( ':' )
+            // InternalChartDSL.g:14977:1: ( ( ':' ) )
+            // InternalChartDSL.g:14978:1: ( ':' )
             {
-            // InternalChartDSL.g:13968:1: ( ':' )
-            // InternalChartDSL.g:13969:2: ':'
+            // InternalChartDSL.g:14978:1: ( ':' )
+            // InternalChartDSL.g:14979:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
             }
-            match(input,107,FOLLOW_2); if (state.failed) return ;
+            match(input,122,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
             }
@@ -46829,14 +50218,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1"
-    // InternalChartDSL.g:13978:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
+    // InternalChartDSL.g:14988:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
     public final void rule__XCasePart__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13982:1: ( rule__XCasePart__Group_3_0__1__Impl )
-            // InternalChartDSL.g:13983:2: rule__XCasePart__Group_3_0__1__Impl
+            // InternalChartDSL.g:14992:1: ( rule__XCasePart__Group_3_0__1__Impl )
+            // InternalChartDSL.g:14993:2: rule__XCasePart__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_3_0__1__Impl();
@@ -46862,23 +50251,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1__Impl"
-    // InternalChartDSL.g:13989:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
+    // InternalChartDSL.g:14999:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
     public final void rule__XCasePart__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:13993:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
-            // InternalChartDSL.g:13994:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalChartDSL.g:15003:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
+            // InternalChartDSL.g:15004:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
             {
-            // InternalChartDSL.g:13994:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
-            // InternalChartDSL.g:13995:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalChartDSL.g:15004:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalChartDSL.g:15005:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); 
             }
-            // InternalChartDSL.g:13996:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
-            // InternalChartDSL.g:13996:3: rule__XCasePart__ThenAssignment_3_0_1
+            // InternalChartDSL.g:15006:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalChartDSL.g:15006:3: rule__XCasePart__ThenAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__ThenAssignment_3_0_1();
@@ -46913,16 +50302,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0"
-    // InternalChartDSL.g:14005:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
+    // InternalChartDSL.g:15015:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
     public final void rule__XForLoopExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14009:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
-            // InternalChartDSL.g:14010:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
+            // InternalChartDSL.g:15019:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
+            // InternalChartDSL.g:15020:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XForLoopExpression__Group__0__Impl();
 
             state._fsp--;
@@ -46951,23 +50340,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0__Impl"
-    // InternalChartDSL.g:14017:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
+    // InternalChartDSL.g:15027:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
     public final void rule__XForLoopExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14021:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
-            // InternalChartDSL.g:14022:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalChartDSL.g:15031:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
+            // InternalChartDSL.g:15032:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
             {
-            // InternalChartDSL.g:14022:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
-            // InternalChartDSL.g:14023:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalChartDSL.g:15032:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalChartDSL.g:15033:2: ( rule__XForLoopExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); 
             }
-            // InternalChartDSL.g:14024:2: ( rule__XForLoopExpression__Group_0__0 )
-            // InternalChartDSL.g:14024:3: rule__XForLoopExpression__Group_0__0
+            // InternalChartDSL.g:15034:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalChartDSL.g:15034:3: rule__XForLoopExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0();
@@ -47002,16 +50391,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1"
-    // InternalChartDSL.g:14032:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
+    // InternalChartDSL.g:15042:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
     public final void rule__XForLoopExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14036:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
-            // InternalChartDSL.g:14037:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
+            // InternalChartDSL.g:15046:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
+            // InternalChartDSL.g:15047:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__XForLoopExpression__Group__1__Impl();
 
             state._fsp--;
@@ -47040,23 +50429,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1__Impl"
-    // InternalChartDSL.g:14044:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
+    // InternalChartDSL.g:15054:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
     public final void rule__XForLoopExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14048:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
-            // InternalChartDSL.g:14049:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalChartDSL.g:15058:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
+            // InternalChartDSL.g:15059:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
             {
-            // InternalChartDSL.g:14049:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
-            // InternalChartDSL.g:14050:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalChartDSL.g:15059:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalChartDSL.g:15060:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); 
             }
-            // InternalChartDSL.g:14051:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
-            // InternalChartDSL.g:14051:3: rule__XForLoopExpression__ForExpressionAssignment_1
+            // InternalChartDSL.g:15061:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalChartDSL.g:15061:3: rule__XForLoopExpression__ForExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__ForExpressionAssignment_1();
@@ -47091,16 +50480,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2"
-    // InternalChartDSL.g:14059:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
+    // InternalChartDSL.g:15069:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
     public final void rule__XForLoopExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14063:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
-            // InternalChartDSL.g:14064:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
+            // InternalChartDSL.g:15073:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
+            // InternalChartDSL.g:15074:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XForLoopExpression__Group__2__Impl();
 
             state._fsp--;
@@ -47129,22 +50518,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2__Impl"
-    // InternalChartDSL.g:14071:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
+    // InternalChartDSL.g:15081:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14075:1: ( ( ')' ) )
-            // InternalChartDSL.g:14076:1: ( ')' )
+            // InternalChartDSL.g:15085:1: ( ( ')' ) )
+            // InternalChartDSL.g:15086:1: ( ')' )
             {
-            // InternalChartDSL.g:14076:1: ( ')' )
-            // InternalChartDSL.g:14077:2: ')'
+            // InternalChartDSL.g:15086:1: ( ')' )
+            // InternalChartDSL.g:15087:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -47170,14 +50559,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3"
-    // InternalChartDSL.g:14086:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
+    // InternalChartDSL.g:15096:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
     public final void rule__XForLoopExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14090:1: ( rule__XForLoopExpression__Group__3__Impl )
-            // InternalChartDSL.g:14091:2: rule__XForLoopExpression__Group__3__Impl
+            // InternalChartDSL.g:15100:1: ( rule__XForLoopExpression__Group__3__Impl )
+            // InternalChartDSL.g:15101:2: rule__XForLoopExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group__3__Impl();
@@ -47203,23 +50592,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3__Impl"
-    // InternalChartDSL.g:14097:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
+    // InternalChartDSL.g:15107:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
     public final void rule__XForLoopExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14101:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
-            // InternalChartDSL.g:14102:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalChartDSL.g:15111:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
+            // InternalChartDSL.g:15112:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
             {
-            // InternalChartDSL.g:14102:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
-            // InternalChartDSL.g:14103:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalChartDSL.g:15112:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalChartDSL.g:15113:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); 
             }
-            // InternalChartDSL.g:14104:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
-            // InternalChartDSL.g:14104:3: rule__XForLoopExpression__EachExpressionAssignment_3
+            // InternalChartDSL.g:15114:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalChartDSL.g:15114:3: rule__XForLoopExpression__EachExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__EachExpressionAssignment_3();
@@ -47254,14 +50643,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0"
-    // InternalChartDSL.g:14113:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
+    // InternalChartDSL.g:15123:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
     public final void rule__XForLoopExpression__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14117:1: ( rule__XForLoopExpression__Group_0__0__Impl )
-            // InternalChartDSL.g:14118:2: rule__XForLoopExpression__Group_0__0__Impl
+            // InternalChartDSL.g:15127:1: ( rule__XForLoopExpression__Group_0__0__Impl )
+            // InternalChartDSL.g:15128:2: rule__XForLoopExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0__Impl();
@@ -47287,23 +50676,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0__Impl"
-    // InternalChartDSL.g:14124:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
+    // InternalChartDSL.g:15134:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
     public final void rule__XForLoopExpression__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14128:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
-            // InternalChartDSL.g:14129:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalChartDSL.g:15138:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
+            // InternalChartDSL.g:15139:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
             {
-            // InternalChartDSL.g:14129:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
-            // InternalChartDSL.g:14130:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalChartDSL.g:15139:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalChartDSL.g:15140:2: ( rule__XForLoopExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); 
             }
-            // InternalChartDSL.g:14131:2: ( rule__XForLoopExpression__Group_0_0__0 )
-            // InternalChartDSL.g:14131:3: rule__XForLoopExpression__Group_0_0__0
+            // InternalChartDSL.g:15141:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalChartDSL.g:15141:3: rule__XForLoopExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__0();
@@ -47338,16 +50727,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0"
-    // InternalChartDSL.g:14140:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
+    // InternalChartDSL.g:15150:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
     public final void rule__XForLoopExpression__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14144:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
-            // InternalChartDSL.g:14145:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
+            // InternalChartDSL.g:15154:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
+            // InternalChartDSL.g:15155:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
             {
-            pushFollow(FOLLOW_115);
+            pushFollow(FOLLOW_120);
             rule__XForLoopExpression__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -47376,23 +50765,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0__Impl"
-    // InternalChartDSL.g:14152:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:15162:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XForLoopExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14156:1: ( ( () ) )
-            // InternalChartDSL.g:14157:1: ( () )
+            // InternalChartDSL.g:15166:1: ( ( () ) )
+            // InternalChartDSL.g:15167:1: ( () )
             {
-            // InternalChartDSL.g:14157:1: ( () )
-            // InternalChartDSL.g:14158:2: ()
+            // InternalChartDSL.g:15167:1: ( () )
+            // InternalChartDSL.g:15168:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); 
             }
-            // InternalChartDSL.g:14159:2: ()
-            // InternalChartDSL.g:14159:3: 
+            // InternalChartDSL.g:15169:2: ()
+            // InternalChartDSL.g:15169:3: 
             {
             }
 
@@ -47417,16 +50806,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1"
-    // InternalChartDSL.g:14167:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
+    // InternalChartDSL.g:15177:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
     public final void rule__XForLoopExpression__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14171:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
-            // InternalChartDSL.g:14172:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
+            // InternalChartDSL.g:15181:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
+            // InternalChartDSL.g:15182:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_62);
             rule__XForLoopExpression__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -47455,22 +50844,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1__Impl"
-    // InternalChartDSL.g:14179:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
+    // InternalChartDSL.g:15189:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
     public final void rule__XForLoopExpression__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14183:1: ( ( 'for' ) )
-            // InternalChartDSL.g:14184:1: ( 'for' )
+            // InternalChartDSL.g:15193:1: ( ( 'for' ) )
+            // InternalChartDSL.g:15194:1: ( 'for' )
             {
-            // InternalChartDSL.g:14184:1: ( 'for' )
-            // InternalChartDSL.g:14185:2: 'for'
+            // InternalChartDSL.g:15194:1: ( 'for' )
+            // InternalChartDSL.g:15195:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
             }
-            match(input,110,FOLLOW_2); if (state.failed) return ;
+            match(input,125,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
             }
@@ -47496,16 +50885,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2"
-    // InternalChartDSL.g:14194:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
+    // InternalChartDSL.g:15204:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
     public final void rule__XForLoopExpression__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14198:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
-            // InternalChartDSL.g:14199:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
+            // InternalChartDSL.g:15208:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
+            // InternalChartDSL.g:15209:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XForLoopExpression__Group_0_0__2__Impl();
 
             state._fsp--;
@@ -47534,22 +50923,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2__Impl"
-    // InternalChartDSL.g:14206:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalChartDSL.g:15216:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
     public final void rule__XForLoopExpression__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14210:1: ( ( '(' ) )
-            // InternalChartDSL.g:14211:1: ( '(' )
+            // InternalChartDSL.g:15220:1: ( ( '(' ) )
+            // InternalChartDSL.g:15221:1: ( '(' )
             {
-            // InternalChartDSL.g:14211:1: ( '(' )
-            // InternalChartDSL.g:14212:2: '('
+            // InternalChartDSL.g:15221:1: ( '(' )
+            // InternalChartDSL.g:15222:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
@@ -47575,16 +50964,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3"
-    // InternalChartDSL.g:14221:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
+    // InternalChartDSL.g:15231:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
     public final void rule__XForLoopExpression__Group_0_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14225:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
-            // InternalChartDSL.g:14226:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
+            // InternalChartDSL.g:15235:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
+            // InternalChartDSL.g:15236:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
             {
-            pushFollow(FOLLOW_113);
+            pushFollow(FOLLOW_118);
             rule__XForLoopExpression__Group_0_0__3__Impl();
 
             state._fsp--;
@@ -47613,23 +51002,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3__Impl"
-    // InternalChartDSL.g:14233:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
+    // InternalChartDSL.g:15243:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
     public final void rule__XForLoopExpression__Group_0_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14237:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
-            // InternalChartDSL.g:14238:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalChartDSL.g:15247:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
+            // InternalChartDSL.g:15248:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
             {
-            // InternalChartDSL.g:14238:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
-            // InternalChartDSL.g:14239:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalChartDSL.g:15248:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalChartDSL.g:15249:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); 
             }
-            // InternalChartDSL.g:14240:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
-            // InternalChartDSL.g:14240:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
+            // InternalChartDSL.g:15250:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalChartDSL.g:15250:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__DeclaredParamAssignment_0_0_3();
@@ -47664,14 +51053,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4"
-    // InternalChartDSL.g:14248:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
+    // InternalChartDSL.g:15258:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
     public final void rule__XForLoopExpression__Group_0_0__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14252:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
-            // InternalChartDSL.g:14253:2: rule__XForLoopExpression__Group_0_0__4__Impl
+            // InternalChartDSL.g:15262:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
+            // InternalChartDSL.g:15263:2: rule__XForLoopExpression__Group_0_0__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__4__Impl();
@@ -47697,22 +51086,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4__Impl"
-    // InternalChartDSL.g:14259:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
+    // InternalChartDSL.g:15269:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
     public final void rule__XForLoopExpression__Group_0_0__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14263:1: ( ( ':' ) )
-            // InternalChartDSL.g:14264:1: ( ':' )
+            // InternalChartDSL.g:15273:1: ( ( ':' ) )
+            // InternalChartDSL.g:15274:1: ( ':' )
             {
-            // InternalChartDSL.g:14264:1: ( ':' )
-            // InternalChartDSL.g:14265:2: ':'
+            // InternalChartDSL.g:15274:1: ( ':' )
+            // InternalChartDSL.g:15275:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
             }
-            match(input,107,FOLLOW_2); if (state.failed) return ;
+            match(input,122,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
             }
@@ -47738,16 +51127,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0"
-    // InternalChartDSL.g:14275:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
+    // InternalChartDSL.g:15285:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
     public final void rule__XBasicForLoopExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14279:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
-            // InternalChartDSL.g:14280:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
+            // InternalChartDSL.g:15289:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
+            // InternalChartDSL.g:15290:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
             {
-            pushFollow(FOLLOW_115);
+            pushFollow(FOLLOW_120);
             rule__XBasicForLoopExpression__Group__0__Impl();
 
             state._fsp--;
@@ -47776,23 +51165,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0__Impl"
-    // InternalChartDSL.g:14287:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:15297:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBasicForLoopExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14291:1: ( ( () ) )
-            // InternalChartDSL.g:14292:1: ( () )
+            // InternalChartDSL.g:15301:1: ( ( () ) )
+            // InternalChartDSL.g:15302:1: ( () )
             {
-            // InternalChartDSL.g:14292:1: ( () )
-            // InternalChartDSL.g:14293:2: ()
+            // InternalChartDSL.g:15302:1: ( () )
+            // InternalChartDSL.g:15303:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); 
             }
-            // InternalChartDSL.g:14294:2: ()
-            // InternalChartDSL.g:14294:3: 
+            // InternalChartDSL.g:15304:2: ()
+            // InternalChartDSL.g:15304:3: 
             {
             }
 
@@ -47817,16 +51206,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1"
-    // InternalChartDSL.g:14302:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
+    // InternalChartDSL.g:15312:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
     public final void rule__XBasicForLoopExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14306:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
-            // InternalChartDSL.g:14307:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
+            // InternalChartDSL.g:15316:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
+            // InternalChartDSL.g:15317:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_62);
             rule__XBasicForLoopExpression__Group__1__Impl();
 
             state._fsp--;
@@ -47855,22 +51244,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1__Impl"
-    // InternalChartDSL.g:14314:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
+    // InternalChartDSL.g:15324:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
     public final void rule__XBasicForLoopExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14318:1: ( ( 'for' ) )
-            // InternalChartDSL.g:14319:1: ( 'for' )
+            // InternalChartDSL.g:15328:1: ( ( 'for' ) )
+            // InternalChartDSL.g:15329:1: ( 'for' )
             {
-            // InternalChartDSL.g:14319:1: ( 'for' )
-            // InternalChartDSL.g:14320:2: 'for'
+            // InternalChartDSL.g:15329:1: ( 'for' )
+            // InternalChartDSL.g:15330:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
             }
-            match(input,110,FOLLOW_2); if (state.failed) return ;
+            match(input,125,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
             }
@@ -47896,16 +51285,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2"
-    // InternalChartDSL.g:14329:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
+    // InternalChartDSL.g:15339:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
     public final void rule__XBasicForLoopExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14333:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
-            // InternalChartDSL.g:14334:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
+            // InternalChartDSL.g:15343:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
+            // InternalChartDSL.g:15344:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
             {
-            pushFollow(FOLLOW_116);
+            pushFollow(FOLLOW_121);
             rule__XBasicForLoopExpression__Group__2__Impl();
 
             state._fsp--;
@@ -47934,22 +51323,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2__Impl"
-    // InternalChartDSL.g:14341:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
+    // InternalChartDSL.g:15351:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XBasicForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14345:1: ( ( '(' ) )
-            // InternalChartDSL.g:14346:1: ( '(' )
+            // InternalChartDSL.g:15355:1: ( ( '(' ) )
+            // InternalChartDSL.g:15356:1: ( '(' )
             {
-            // InternalChartDSL.g:14346:1: ( '(' )
-            // InternalChartDSL.g:14347:2: '('
+            // InternalChartDSL.g:15356:1: ( '(' )
+            // InternalChartDSL.g:15357:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -47975,16 +51364,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3"
-    // InternalChartDSL.g:14356:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
+    // InternalChartDSL.g:15366:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
     public final void rule__XBasicForLoopExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14360:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
-            // InternalChartDSL.g:14361:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
+            // InternalChartDSL.g:15370:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
+            // InternalChartDSL.g:15371:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
             {
-            pushFollow(FOLLOW_116);
+            pushFollow(FOLLOW_121);
             rule__XBasicForLoopExpression__Group__3__Impl();
 
             state._fsp--;
@@ -48013,31 +51402,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3__Impl"
-    // InternalChartDSL.g:14368:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
+    // InternalChartDSL.g:15378:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14372:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
-            // InternalChartDSL.g:14373:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalChartDSL.g:15382:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
+            // InternalChartDSL.g:15383:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
             {
-            // InternalChartDSL.g:14373:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
-            // InternalChartDSL.g:14374:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            // InternalChartDSL.g:15383:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalChartDSL.g:15384:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); 
             }
-            // InternalChartDSL.g:14375:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
-            int alt119=2;
-            int LA119_0 = input.LA(1);
+            // InternalChartDSL.g:15385:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            int alt132=2;
+            int LA132_0 = input.LA(1);
 
-            if ( ((LA119_0>=RULE_STRING && LA119_0<=RULE_DECIMAL)||LA119_0==27||(LA119_0>=34 && LA119_0<=35)||LA119_0==40||(LA119_0>=44 && LA119_0<=50)||LA119_0==72||LA119_0==97||(LA119_0>=101 && LA119_0<=102)||LA119_0==104||LA119_0==106||(LA119_0>=110 && LA119_0<=118)||LA119_0==120||(LA119_0>=153 && LA119_0<=154)) ) {
-                alt119=1;
+            if ( ((LA132_0>=RULE_STRING && LA132_0<=RULE_DECIMAL)||LA132_0==27||(LA132_0>=34 && LA132_0<=35)||LA132_0==40||(LA132_0>=44 && LA132_0<=50)||LA132_0==79||LA132_0==112||(LA132_0>=116 && LA132_0<=117)||LA132_0==119||LA132_0==121||(LA132_0>=125 && LA132_0<=133)||LA132_0==135||(LA132_0>=170 && LA132_0<=171)) ) {
+                alt132=1;
             }
-            switch (alt119) {
+            switch (alt132) {
                 case 1 :
-                    // InternalChartDSL.g:14375:3: rule__XBasicForLoopExpression__Group_3__0
+                    // InternalChartDSL.g:15385:3: rule__XBasicForLoopExpression__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_3__0();
@@ -48075,16 +51464,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4"
-    // InternalChartDSL.g:14383:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
+    // InternalChartDSL.g:15393:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
     public final void rule__XBasicForLoopExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14387:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
-            // InternalChartDSL.g:14388:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
+            // InternalChartDSL.g:15397:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
+            // InternalChartDSL.g:15398:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
             {
-            pushFollow(FOLLOW_117);
+            pushFollow(FOLLOW_122);
             rule__XBasicForLoopExpression__Group__4__Impl();
 
             state._fsp--;
@@ -48113,22 +51502,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4__Impl"
-    // InternalChartDSL.g:14395:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
+    // InternalChartDSL.g:15405:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14399:1: ( ( ';' ) )
-            // InternalChartDSL.g:14400:1: ( ';' )
+            // InternalChartDSL.g:15409:1: ( ( ';' ) )
+            // InternalChartDSL.g:15410:1: ( ';' )
             {
-            // InternalChartDSL.g:14400:1: ( ';' )
-            // InternalChartDSL.g:14401:2: ';'
+            // InternalChartDSL.g:15410:1: ( ';' )
+            // InternalChartDSL.g:15411:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
             }
-            match(input,95,FOLLOW_2); if (state.failed) return ;
+            match(input,110,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
             }
@@ -48154,16 +51543,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5"
-    // InternalChartDSL.g:14410:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
+    // InternalChartDSL.g:15420:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
     public final void rule__XBasicForLoopExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14414:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
-            // InternalChartDSL.g:14415:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
+            // InternalChartDSL.g:15424:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
+            // InternalChartDSL.g:15425:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
             {
-            pushFollow(FOLLOW_117);
+            pushFollow(FOLLOW_122);
             rule__XBasicForLoopExpression__Group__5__Impl();
 
             state._fsp--;
@@ -48192,31 +51581,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5__Impl"
-    // InternalChartDSL.g:14422:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
+    // InternalChartDSL.g:15432:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14426:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
-            // InternalChartDSL.g:14427:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalChartDSL.g:15436:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
+            // InternalChartDSL.g:15437:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
             {
-            // InternalChartDSL.g:14427:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
-            // InternalChartDSL.g:14428:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            // InternalChartDSL.g:15437:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalChartDSL.g:15438:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); 
             }
-            // InternalChartDSL.g:14429:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
-            int alt120=2;
-            int LA120_0 = input.LA(1);
+            // InternalChartDSL.g:15439:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            int alt133=2;
+            int LA133_0 = input.LA(1);
 
-            if ( ((LA120_0>=RULE_STRING && LA120_0<=RULE_DECIMAL)||LA120_0==27||(LA120_0>=34 && LA120_0<=35)||LA120_0==40||(LA120_0>=45 && LA120_0<=50)||LA120_0==72||LA120_0==97||(LA120_0>=101 && LA120_0<=102)||LA120_0==104||LA120_0==106||(LA120_0>=110 && LA120_0<=118)||LA120_0==120||LA120_0==154) ) {
-                alt120=1;
+            if ( ((LA133_0>=RULE_STRING && LA133_0<=RULE_DECIMAL)||LA133_0==27||(LA133_0>=34 && LA133_0<=35)||LA133_0==40||(LA133_0>=45 && LA133_0<=50)||LA133_0==79||LA133_0==112||(LA133_0>=116 && LA133_0<=117)||LA133_0==119||LA133_0==121||(LA133_0>=125 && LA133_0<=133)||LA133_0==135||LA133_0==171) ) {
+                alt133=1;
             }
-            switch (alt120) {
+            switch (alt133) {
                 case 1 :
-                    // InternalChartDSL.g:14429:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
+                    // InternalChartDSL.g:15439:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__ExpressionAssignment_5();
@@ -48254,16 +51643,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6"
-    // InternalChartDSL.g:14437:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
+    // InternalChartDSL.g:15447:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
     public final void rule__XBasicForLoopExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14441:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
-            // InternalChartDSL.g:14442:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
+            // InternalChartDSL.g:15451:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
+            // InternalChartDSL.g:15452:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
             {
-            pushFollow(FOLLOW_58);
+            pushFollow(FOLLOW_63);
             rule__XBasicForLoopExpression__Group__6__Impl();
 
             state._fsp--;
@@ -48292,22 +51681,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6__Impl"
-    // InternalChartDSL.g:14449:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
+    // InternalChartDSL.g:15459:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14453:1: ( ( ';' ) )
-            // InternalChartDSL.g:14454:1: ( ';' )
+            // InternalChartDSL.g:15463:1: ( ( ';' ) )
+            // InternalChartDSL.g:15464:1: ( ';' )
             {
-            // InternalChartDSL.g:14454:1: ( ';' )
-            // InternalChartDSL.g:14455:2: ';'
+            // InternalChartDSL.g:15464:1: ( ';' )
+            // InternalChartDSL.g:15465:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
             }
-            match(input,95,FOLLOW_2); if (state.failed) return ;
+            match(input,110,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
             }
@@ -48333,16 +51722,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7"
-    // InternalChartDSL.g:14464:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
+    // InternalChartDSL.g:15474:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
     public final void rule__XBasicForLoopExpression__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14468:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
-            // InternalChartDSL.g:14469:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
+            // InternalChartDSL.g:15478:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
+            // InternalChartDSL.g:15479:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
             {
-            pushFollow(FOLLOW_58);
+            pushFollow(FOLLOW_63);
             rule__XBasicForLoopExpression__Group__7__Impl();
 
             state._fsp--;
@@ -48371,31 +51760,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7__Impl"
-    // InternalChartDSL.g:14476:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
+    // InternalChartDSL.g:15486:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14480:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
-            // InternalChartDSL.g:14481:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalChartDSL.g:15490:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
+            // InternalChartDSL.g:15491:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
             {
-            // InternalChartDSL.g:14481:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
-            // InternalChartDSL.g:14482:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            // InternalChartDSL.g:15491:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalChartDSL.g:15492:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); 
             }
-            // InternalChartDSL.g:14483:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
-            int alt121=2;
-            int LA121_0 = input.LA(1);
+            // InternalChartDSL.g:15493:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            int alt134=2;
+            int LA134_0 = input.LA(1);
 
-            if ( ((LA121_0>=RULE_STRING && LA121_0<=RULE_DECIMAL)||LA121_0==27||(LA121_0>=34 && LA121_0<=35)||LA121_0==40||(LA121_0>=45 && LA121_0<=50)||LA121_0==72||LA121_0==97||(LA121_0>=101 && LA121_0<=102)||LA121_0==104||LA121_0==106||(LA121_0>=110 && LA121_0<=118)||LA121_0==120||LA121_0==154) ) {
-                alt121=1;
+            if ( ((LA134_0>=RULE_STRING && LA134_0<=RULE_DECIMAL)||LA134_0==27||(LA134_0>=34 && LA134_0<=35)||LA134_0==40||(LA134_0>=45 && LA134_0<=50)||LA134_0==79||LA134_0==112||(LA134_0>=116 && LA134_0<=117)||LA134_0==119||LA134_0==121||(LA134_0>=125 && LA134_0<=133)||LA134_0==135||LA134_0==171) ) {
+                alt134=1;
             }
-            switch (alt121) {
+            switch (alt134) {
                 case 1 :
-                    // InternalChartDSL.g:14483:3: rule__XBasicForLoopExpression__Group_7__0
+                    // InternalChartDSL.g:15493:3: rule__XBasicForLoopExpression__Group_7__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_7__0();
@@ -48433,16 +51822,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8"
-    // InternalChartDSL.g:14491:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
+    // InternalChartDSL.g:15501:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
     public final void rule__XBasicForLoopExpression__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14495:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
-            // InternalChartDSL.g:14496:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
+            // InternalChartDSL.g:15505:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
+            // InternalChartDSL.g:15506:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XBasicForLoopExpression__Group__8__Impl();
 
             state._fsp--;
@@ -48471,22 +51860,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8__Impl"
-    // InternalChartDSL.g:14503:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
+    // InternalChartDSL.g:15513:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
     public final void rule__XBasicForLoopExpression__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14507:1: ( ( ')' ) )
-            // InternalChartDSL.g:14508:1: ( ')' )
+            // InternalChartDSL.g:15517:1: ( ( ')' ) )
+            // InternalChartDSL.g:15518:1: ( ')' )
             {
-            // InternalChartDSL.g:14508:1: ( ')' )
-            // InternalChartDSL.g:14509:2: ')'
+            // InternalChartDSL.g:15518:1: ( ')' )
+            // InternalChartDSL.g:15519:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
             }
@@ -48512,14 +51901,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9"
-    // InternalChartDSL.g:14518:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
+    // InternalChartDSL.g:15528:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
     public final void rule__XBasicForLoopExpression__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14522:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
-            // InternalChartDSL.g:14523:2: rule__XBasicForLoopExpression__Group__9__Impl
+            // InternalChartDSL.g:15532:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
+            // InternalChartDSL.g:15533:2: rule__XBasicForLoopExpression__Group__9__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group__9__Impl();
@@ -48545,23 +51934,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9__Impl"
-    // InternalChartDSL.g:14529:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
+    // InternalChartDSL.g:15539:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
     public final void rule__XBasicForLoopExpression__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14533:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
-            // InternalChartDSL.g:14534:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalChartDSL.g:15543:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
+            // InternalChartDSL.g:15544:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
             {
-            // InternalChartDSL.g:14534:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
-            // InternalChartDSL.g:14535:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalChartDSL.g:15544:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalChartDSL.g:15545:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); 
             }
-            // InternalChartDSL.g:14536:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
-            // InternalChartDSL.g:14536:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
+            // InternalChartDSL.g:15546:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalChartDSL.g:15546:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__EachExpressionAssignment_9();
@@ -48596,16 +51985,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0"
-    // InternalChartDSL.g:14545:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
+    // InternalChartDSL.g:15555:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
     public final void rule__XBasicForLoopExpression__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14549:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
-            // InternalChartDSL.g:14550:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
+            // InternalChartDSL.g:15559:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
+            // InternalChartDSL.g:15560:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XBasicForLoopExpression__Group_3__0__Impl();
 
             state._fsp--;
@@ -48634,23 +52023,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0__Impl"
-    // InternalChartDSL.g:14557:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
+    // InternalChartDSL.g:15567:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14561:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
-            // InternalChartDSL.g:14562:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalChartDSL.g:15571:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
+            // InternalChartDSL.g:15572:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
             {
-            // InternalChartDSL.g:14562:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
-            // InternalChartDSL.g:14563:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalChartDSL.g:15572:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalChartDSL.g:15573:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); 
             }
-            // InternalChartDSL.g:14564:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
-            // InternalChartDSL.g:14564:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
+            // InternalChartDSL.g:15574:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalChartDSL.g:15574:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0();
@@ -48685,14 +52074,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1"
-    // InternalChartDSL.g:14572:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
+    // InternalChartDSL.g:15582:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14576:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
-            // InternalChartDSL.g:14577:2: rule__XBasicForLoopExpression__Group_3__1__Impl
+            // InternalChartDSL.g:15586:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
+            // InternalChartDSL.g:15587:2: rule__XBasicForLoopExpression__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3__1__Impl();
@@ -48718,37 +52107,37 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1__Impl"
-    // InternalChartDSL.g:14583:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
+    // InternalChartDSL.g:15593:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
     public final void rule__XBasicForLoopExpression__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14587:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
-            // InternalChartDSL.g:14588:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalChartDSL.g:15597:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
+            // InternalChartDSL.g:15598:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
             {
-            // InternalChartDSL.g:14588:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
-            // InternalChartDSL.g:14589:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            // InternalChartDSL.g:15598:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalChartDSL.g:15599:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); 
             }
-            // InternalChartDSL.g:14590:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
-            loop122:
+            // InternalChartDSL.g:15600:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            loop135:
             do {
-                int alt122=2;
-                int LA122_0 = input.LA(1);
+                int alt135=2;
+                int LA135_0 = input.LA(1);
 
-                if ( (LA122_0==99) ) {
-                    alt122=1;
+                if ( (LA135_0==114) ) {
+                    alt135=1;
                 }
 
 
-                switch (alt122) {
+                switch (alt135) {
             	case 1 :
-            	    // InternalChartDSL.g:14590:3: rule__XBasicForLoopExpression__Group_3_1__0
+            	    // InternalChartDSL.g:15600:3: rule__XBasicForLoopExpression__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XBasicForLoopExpression__Group_3_1__0();
 
             	    state._fsp--;
@@ -48758,7 +52147,7 @@
             	    break;
 
             	default :
-            	    break loop122;
+            	    break loop135;
                 }
             } while (true);
 
@@ -48787,16 +52176,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0"
-    // InternalChartDSL.g:14599:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
+    // InternalChartDSL.g:15609:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
     public final void rule__XBasicForLoopExpression__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14603:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
-            // InternalChartDSL.g:14604:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
+            // InternalChartDSL.g:15613:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
+            // InternalChartDSL.g:15614:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
             {
-            pushFollow(FOLLOW_118);
+            pushFollow(FOLLOW_123);
             rule__XBasicForLoopExpression__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -48825,22 +52214,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0__Impl"
-    // InternalChartDSL.g:14611:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:15621:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XBasicForLoopExpression__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14615:1: ( ( ',' ) )
-            // InternalChartDSL.g:14616:1: ( ',' )
+            // InternalChartDSL.g:15625:1: ( ( ',' ) )
+            // InternalChartDSL.g:15626:1: ( ',' )
             {
-            // InternalChartDSL.g:14616:1: ( ',' )
-            // InternalChartDSL.g:14617:2: ','
+            // InternalChartDSL.g:15626:1: ( ',' )
+            // InternalChartDSL.g:15627:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
             }
@@ -48866,14 +52255,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1"
-    // InternalChartDSL.g:14626:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
+    // InternalChartDSL.g:15636:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14630:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
-            // InternalChartDSL.g:14631:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
+            // InternalChartDSL.g:15640:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
+            // InternalChartDSL.g:15641:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3_1__1__Impl();
@@ -48899,23 +52288,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1__Impl"
-    // InternalChartDSL.g:14637:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
+    // InternalChartDSL.g:15647:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14641:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
-            // InternalChartDSL.g:14642:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalChartDSL.g:15651:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
+            // InternalChartDSL.g:15652:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
             {
-            // InternalChartDSL.g:14642:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
-            // InternalChartDSL.g:14643:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalChartDSL.g:15652:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalChartDSL.g:15653:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); 
             }
-            // InternalChartDSL.g:14644:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
-            // InternalChartDSL.g:14644:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
+            // InternalChartDSL.g:15654:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalChartDSL.g:15654:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1();
@@ -48950,16 +52339,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0"
-    // InternalChartDSL.g:14653:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
+    // InternalChartDSL.g:15663:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
     public final void rule__XBasicForLoopExpression__Group_7__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14657:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
-            // InternalChartDSL.g:14658:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
+            // InternalChartDSL.g:15667:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
+            // InternalChartDSL.g:15668:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XBasicForLoopExpression__Group_7__0__Impl();
 
             state._fsp--;
@@ -48988,23 +52377,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0__Impl"
-    // InternalChartDSL.g:14665:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
+    // InternalChartDSL.g:15675:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_7__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14669:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
-            // InternalChartDSL.g:14670:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalChartDSL.g:15679:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
+            // InternalChartDSL.g:15680:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
             {
-            // InternalChartDSL.g:14670:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
-            // InternalChartDSL.g:14671:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalChartDSL.g:15680:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalChartDSL.g:15681:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); 
             }
-            // InternalChartDSL.g:14672:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
-            // InternalChartDSL.g:14672:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
+            // InternalChartDSL.g:15682:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalChartDSL.g:15682:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0();
@@ -49039,14 +52428,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1"
-    // InternalChartDSL.g:14680:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
+    // InternalChartDSL.g:15690:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_7__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14684:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
-            // InternalChartDSL.g:14685:2: rule__XBasicForLoopExpression__Group_7__1__Impl
+            // InternalChartDSL.g:15694:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
+            // InternalChartDSL.g:15695:2: rule__XBasicForLoopExpression__Group_7__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7__1__Impl();
@@ -49072,37 +52461,37 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1__Impl"
-    // InternalChartDSL.g:14691:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
+    // InternalChartDSL.g:15701:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
     public final void rule__XBasicForLoopExpression__Group_7__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14695:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
-            // InternalChartDSL.g:14696:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalChartDSL.g:15705:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
+            // InternalChartDSL.g:15706:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
             {
-            // InternalChartDSL.g:14696:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
-            // InternalChartDSL.g:14697:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            // InternalChartDSL.g:15706:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalChartDSL.g:15707:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); 
             }
-            // InternalChartDSL.g:14698:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
-            loop123:
+            // InternalChartDSL.g:15708:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            loop136:
             do {
-                int alt123=2;
-                int LA123_0 = input.LA(1);
+                int alt136=2;
+                int LA136_0 = input.LA(1);
 
-                if ( (LA123_0==99) ) {
-                    alt123=1;
+                if ( (LA136_0==114) ) {
+                    alt136=1;
                 }
 
 
-                switch (alt123) {
+                switch (alt136) {
             	case 1 :
-            	    // InternalChartDSL.g:14698:3: rule__XBasicForLoopExpression__Group_7_1__0
+            	    // InternalChartDSL.g:15708:3: rule__XBasicForLoopExpression__Group_7_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XBasicForLoopExpression__Group_7_1__0();
 
             	    state._fsp--;
@@ -49112,7 +52501,7 @@
             	    break;
 
             	default :
-            	    break loop123;
+            	    break loop136;
                 }
             } while (true);
 
@@ -49141,16 +52530,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0"
-    // InternalChartDSL.g:14707:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
+    // InternalChartDSL.g:15717:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
     public final void rule__XBasicForLoopExpression__Group_7_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14711:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
-            // InternalChartDSL.g:14712:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
+            // InternalChartDSL.g:15721:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
+            // InternalChartDSL.g:15722:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XBasicForLoopExpression__Group_7_1__0__Impl();
 
             state._fsp--;
@@ -49179,22 +52568,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0__Impl"
-    // InternalChartDSL.g:14719:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:15729:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
     public final void rule__XBasicForLoopExpression__Group_7_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14723:1: ( ( ',' ) )
-            // InternalChartDSL.g:14724:1: ( ',' )
+            // InternalChartDSL.g:15733:1: ( ( ',' ) )
+            // InternalChartDSL.g:15734:1: ( ',' )
             {
-            // InternalChartDSL.g:14724:1: ( ',' )
-            // InternalChartDSL.g:14725:2: ','
+            // InternalChartDSL.g:15734:1: ( ',' )
+            // InternalChartDSL.g:15735:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
             }
@@ -49220,14 +52609,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1"
-    // InternalChartDSL.g:14734:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
+    // InternalChartDSL.g:15744:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_7_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14738:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
-            // InternalChartDSL.g:14739:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
+            // InternalChartDSL.g:15748:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
+            // InternalChartDSL.g:15749:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7_1__1__Impl();
@@ -49253,23 +52642,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1__Impl"
-    // InternalChartDSL.g:14745:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
+    // InternalChartDSL.g:15755:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_7_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14749:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
-            // InternalChartDSL.g:14750:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalChartDSL.g:15759:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
+            // InternalChartDSL.g:15760:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
             {
-            // InternalChartDSL.g:14750:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
-            // InternalChartDSL.g:14751:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalChartDSL.g:15760:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalChartDSL.g:15761:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); 
             }
-            // InternalChartDSL.g:14752:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
-            // InternalChartDSL.g:14752:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
+            // InternalChartDSL.g:15762:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalChartDSL.g:15762:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1();
@@ -49304,16 +52693,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0"
-    // InternalChartDSL.g:14761:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
+    // InternalChartDSL.g:15771:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
     public final void rule__XWhileExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14765:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
-            // InternalChartDSL.g:14766:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
+            // InternalChartDSL.g:15775:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
+            // InternalChartDSL.g:15776:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
             {
-            pushFollow(FOLLOW_119);
+            pushFollow(FOLLOW_124);
             rule__XWhileExpression__Group__0__Impl();
 
             state._fsp--;
@@ -49342,23 +52731,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0__Impl"
-    // InternalChartDSL.g:14773:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:15783:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14777:1: ( ( () ) )
-            // InternalChartDSL.g:14778:1: ( () )
+            // InternalChartDSL.g:15787:1: ( ( () ) )
+            // InternalChartDSL.g:15788:1: ( () )
             {
-            // InternalChartDSL.g:14778:1: ( () )
-            // InternalChartDSL.g:14779:2: ()
+            // InternalChartDSL.g:15788:1: ( () )
+            // InternalChartDSL.g:15789:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); 
             }
-            // InternalChartDSL.g:14780:2: ()
-            // InternalChartDSL.g:14780:3: 
+            // InternalChartDSL.g:15790:2: ()
+            // InternalChartDSL.g:15790:3: 
             {
             }
 
@@ -49383,16 +52772,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1"
-    // InternalChartDSL.g:14788:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
+    // InternalChartDSL.g:15798:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
     public final void rule__XWhileExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14792:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
-            // InternalChartDSL.g:14793:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
+            // InternalChartDSL.g:15802:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
+            // InternalChartDSL.g:15803:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_62);
             rule__XWhileExpression__Group__1__Impl();
 
             state._fsp--;
@@ -49421,22 +52810,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1__Impl"
-    // InternalChartDSL.g:14800:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
+    // InternalChartDSL.g:15810:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
     public final void rule__XWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14804:1: ( ( 'while' ) )
-            // InternalChartDSL.g:14805:1: ( 'while' )
+            // InternalChartDSL.g:15814:1: ( ( 'while' ) )
+            // InternalChartDSL.g:15815:1: ( 'while' )
             {
-            // InternalChartDSL.g:14805:1: ( 'while' )
-            // InternalChartDSL.g:14806:2: 'while'
+            // InternalChartDSL.g:15815:1: ( 'while' )
+            // InternalChartDSL.g:15816:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
             }
-            match(input,111,FOLLOW_2); if (state.failed) return ;
+            match(input,126,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
             }
@@ -49462,16 +52851,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2"
-    // InternalChartDSL.g:14815:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
+    // InternalChartDSL.g:15825:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
     public final void rule__XWhileExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14819:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
-            // InternalChartDSL.g:14820:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
+            // InternalChartDSL.g:15829:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
+            // InternalChartDSL.g:15830:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XWhileExpression__Group__2__Impl();
 
             state._fsp--;
@@ -49500,22 +52889,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2__Impl"
-    // InternalChartDSL.g:14827:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
+    // InternalChartDSL.g:15837:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XWhileExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14831:1: ( ( '(' ) )
-            // InternalChartDSL.g:14832:1: ( '(' )
+            // InternalChartDSL.g:15841:1: ( ( '(' ) )
+            // InternalChartDSL.g:15842:1: ( '(' )
             {
-            // InternalChartDSL.g:14832:1: ( '(' )
-            // InternalChartDSL.g:14833:2: '('
+            // InternalChartDSL.g:15842:1: ( '(' )
+            // InternalChartDSL.g:15843:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -49541,16 +52930,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3"
-    // InternalChartDSL.g:14842:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
+    // InternalChartDSL.g:15852:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
     public final void rule__XWhileExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14846:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
-            // InternalChartDSL.g:14847:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
+            // InternalChartDSL.g:15856:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
+            // InternalChartDSL.g:15857:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__XWhileExpression__Group__3__Impl();
 
             state._fsp--;
@@ -49579,23 +52968,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3__Impl"
-    // InternalChartDSL.g:14854:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
+    // InternalChartDSL.g:15864:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
     public final void rule__XWhileExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14858:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
-            // InternalChartDSL.g:14859:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalChartDSL.g:15868:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
+            // InternalChartDSL.g:15869:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
             {
-            // InternalChartDSL.g:14859:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
-            // InternalChartDSL.g:14860:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalChartDSL.g:15869:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalChartDSL.g:15870:2: ( rule__XWhileExpression__PredicateAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); 
             }
-            // InternalChartDSL.g:14861:2: ( rule__XWhileExpression__PredicateAssignment_3 )
-            // InternalChartDSL.g:14861:3: rule__XWhileExpression__PredicateAssignment_3
+            // InternalChartDSL.g:15871:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalChartDSL.g:15871:3: rule__XWhileExpression__PredicateAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__PredicateAssignment_3();
@@ -49630,16 +53019,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4"
-    // InternalChartDSL.g:14869:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
+    // InternalChartDSL.g:15879:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
     public final void rule__XWhileExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14873:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
-            // InternalChartDSL.g:14874:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
+            // InternalChartDSL.g:15883:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
+            // InternalChartDSL.g:15884:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XWhileExpression__Group__4__Impl();
 
             state._fsp--;
@@ -49668,22 +53057,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4__Impl"
-    // InternalChartDSL.g:14881:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
+    // InternalChartDSL.g:15891:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14885:1: ( ( ')' ) )
-            // InternalChartDSL.g:14886:1: ( ')' )
+            // InternalChartDSL.g:15895:1: ( ( ')' ) )
+            // InternalChartDSL.g:15896:1: ( ')' )
             {
-            // InternalChartDSL.g:14886:1: ( ')' )
-            // InternalChartDSL.g:14887:2: ')'
+            // InternalChartDSL.g:15896:1: ( ')' )
+            // InternalChartDSL.g:15897:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
             }
@@ -49709,14 +53098,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5"
-    // InternalChartDSL.g:14896:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
+    // InternalChartDSL.g:15906:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
     public final void rule__XWhileExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14900:1: ( rule__XWhileExpression__Group__5__Impl )
-            // InternalChartDSL.g:14901:2: rule__XWhileExpression__Group__5__Impl
+            // InternalChartDSL.g:15910:1: ( rule__XWhileExpression__Group__5__Impl )
+            // InternalChartDSL.g:15911:2: rule__XWhileExpression__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__Group__5__Impl();
@@ -49742,23 +53131,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5__Impl"
-    // InternalChartDSL.g:14907:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
+    // InternalChartDSL.g:15917:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
     public final void rule__XWhileExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14911:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
-            // InternalChartDSL.g:14912:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalChartDSL.g:15921:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
+            // InternalChartDSL.g:15922:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
             {
-            // InternalChartDSL.g:14912:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
-            // InternalChartDSL.g:14913:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalChartDSL.g:15922:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalChartDSL.g:15923:2: ( rule__XWhileExpression__BodyAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); 
             }
-            // InternalChartDSL.g:14914:2: ( rule__XWhileExpression__BodyAssignment_5 )
-            // InternalChartDSL.g:14914:3: rule__XWhileExpression__BodyAssignment_5
+            // InternalChartDSL.g:15924:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalChartDSL.g:15924:3: rule__XWhileExpression__BodyAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__BodyAssignment_5();
@@ -49793,16 +53182,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0"
-    // InternalChartDSL.g:14923:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
+    // InternalChartDSL.g:15933:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
     public final void rule__XDoWhileExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14927:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
-            // InternalChartDSL.g:14928:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
+            // InternalChartDSL.g:15937:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
+            // InternalChartDSL.g:15938:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
             {
-            pushFollow(FOLLOW_120);
+            pushFollow(FOLLOW_125);
             rule__XDoWhileExpression__Group__0__Impl();
 
             state._fsp--;
@@ -49831,23 +53220,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0__Impl"
-    // InternalChartDSL.g:14935:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:15945:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14939:1: ( ( () ) )
-            // InternalChartDSL.g:14940:1: ( () )
+            // InternalChartDSL.g:15949:1: ( ( () ) )
+            // InternalChartDSL.g:15950:1: ( () )
             {
-            // InternalChartDSL.g:14940:1: ( () )
-            // InternalChartDSL.g:14941:2: ()
+            // InternalChartDSL.g:15950:1: ( () )
+            // InternalChartDSL.g:15951:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); 
             }
-            // InternalChartDSL.g:14942:2: ()
-            // InternalChartDSL.g:14942:3: 
+            // InternalChartDSL.g:15952:2: ()
+            // InternalChartDSL.g:15952:3: 
             {
             }
 
@@ -49872,16 +53261,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1"
-    // InternalChartDSL.g:14950:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
+    // InternalChartDSL.g:15960:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
     public final void rule__XDoWhileExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14954:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
-            // InternalChartDSL.g:14955:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
+            // InternalChartDSL.g:15964:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
+            // InternalChartDSL.g:15965:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XDoWhileExpression__Group__1__Impl();
 
             state._fsp--;
@@ -49910,22 +53299,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1__Impl"
-    // InternalChartDSL.g:14962:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
+    // InternalChartDSL.g:15972:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
     public final void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14966:1: ( ( 'do' ) )
-            // InternalChartDSL.g:14967:1: ( 'do' )
+            // InternalChartDSL.g:15976:1: ( ( 'do' ) )
+            // InternalChartDSL.g:15977:1: ( 'do' )
             {
-            // InternalChartDSL.g:14967:1: ( 'do' )
-            // InternalChartDSL.g:14968:2: 'do'
+            // InternalChartDSL.g:15977:1: ( 'do' )
+            // InternalChartDSL.g:15978:2: 'do'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
             }
-            match(input,112,FOLLOW_2); if (state.failed) return ;
+            match(input,127,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
             }
@@ -49951,16 +53340,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2"
-    // InternalChartDSL.g:14977:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
+    // InternalChartDSL.g:15987:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
     public final void rule__XDoWhileExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14981:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
-            // InternalChartDSL.g:14982:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
+            // InternalChartDSL.g:15991:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
+            // InternalChartDSL.g:15992:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
             {
-            pushFollow(FOLLOW_119);
+            pushFollow(FOLLOW_124);
             rule__XDoWhileExpression__Group__2__Impl();
 
             state._fsp--;
@@ -49989,23 +53378,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2__Impl"
-    // InternalChartDSL.g:14989:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
+    // InternalChartDSL.g:15999:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
     public final void rule__XDoWhileExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:14993:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
-            // InternalChartDSL.g:14994:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalChartDSL.g:16003:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
+            // InternalChartDSL.g:16004:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
             {
-            // InternalChartDSL.g:14994:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
-            // InternalChartDSL.g:14995:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalChartDSL.g:16004:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalChartDSL.g:16005:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); 
             }
-            // InternalChartDSL.g:14996:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
-            // InternalChartDSL.g:14996:3: rule__XDoWhileExpression__BodyAssignment_2
+            // InternalChartDSL.g:16006:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalChartDSL.g:16006:3: rule__XDoWhileExpression__BodyAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__BodyAssignment_2();
@@ -50040,16 +53429,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3"
-    // InternalChartDSL.g:15004:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
+    // InternalChartDSL.g:16014:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
     public final void rule__XDoWhileExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15008:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
-            // InternalChartDSL.g:15009:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
+            // InternalChartDSL.g:16018:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
+            // InternalChartDSL.g:16019:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_62);
             rule__XDoWhileExpression__Group__3__Impl();
 
             state._fsp--;
@@ -50078,22 +53467,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3__Impl"
-    // InternalChartDSL.g:15016:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
+    // InternalChartDSL.g:16026:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
     public final void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15020:1: ( ( 'while' ) )
-            // InternalChartDSL.g:15021:1: ( 'while' )
+            // InternalChartDSL.g:16030:1: ( ( 'while' ) )
+            // InternalChartDSL.g:16031:1: ( 'while' )
             {
-            // InternalChartDSL.g:15021:1: ( 'while' )
-            // InternalChartDSL.g:15022:2: 'while'
+            // InternalChartDSL.g:16031:1: ( 'while' )
+            // InternalChartDSL.g:16032:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
             }
-            match(input,111,FOLLOW_2); if (state.failed) return ;
+            match(input,126,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
             }
@@ -50119,16 +53508,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4"
-    // InternalChartDSL.g:15031:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
+    // InternalChartDSL.g:16041:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
     public final void rule__XDoWhileExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15035:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
-            // InternalChartDSL.g:15036:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
+            // InternalChartDSL.g:16045:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
+            // InternalChartDSL.g:16046:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XDoWhileExpression__Group__4__Impl();
 
             state._fsp--;
@@ -50157,22 +53546,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4__Impl"
-    // InternalChartDSL.g:15043:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
+    // InternalChartDSL.g:16053:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
     public final void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15047:1: ( ( '(' ) )
-            // InternalChartDSL.g:15048:1: ( '(' )
+            // InternalChartDSL.g:16057:1: ( ( '(' ) )
+            // InternalChartDSL.g:16058:1: ( '(' )
             {
-            // InternalChartDSL.g:15048:1: ( '(' )
-            // InternalChartDSL.g:15049:2: '('
+            // InternalChartDSL.g:16058:1: ( '(' )
+            // InternalChartDSL.g:16059:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
             }
@@ -50198,16 +53587,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5"
-    // InternalChartDSL.g:15058:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
+    // InternalChartDSL.g:16068:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
     public final void rule__XDoWhileExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15062:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
-            // InternalChartDSL.g:15063:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
+            // InternalChartDSL.g:16072:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
+            // InternalChartDSL.g:16073:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__XDoWhileExpression__Group__5__Impl();
 
             state._fsp--;
@@ -50236,23 +53625,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5__Impl"
-    // InternalChartDSL.g:15070:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
+    // InternalChartDSL.g:16080:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
     public final void rule__XDoWhileExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15074:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
-            // InternalChartDSL.g:15075:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalChartDSL.g:16084:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
+            // InternalChartDSL.g:16085:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
             {
-            // InternalChartDSL.g:15075:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
-            // InternalChartDSL.g:15076:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalChartDSL.g:16085:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalChartDSL.g:16086:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); 
             }
-            // InternalChartDSL.g:15077:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
-            // InternalChartDSL.g:15077:3: rule__XDoWhileExpression__PredicateAssignment_5
+            // InternalChartDSL.g:16087:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalChartDSL.g:16087:3: rule__XDoWhileExpression__PredicateAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__PredicateAssignment_5();
@@ -50287,14 +53676,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6"
-    // InternalChartDSL.g:15085:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
+    // InternalChartDSL.g:16095:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
     public final void rule__XDoWhileExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15089:1: ( rule__XDoWhileExpression__Group__6__Impl )
-            // InternalChartDSL.g:15090:2: rule__XDoWhileExpression__Group__6__Impl
+            // InternalChartDSL.g:16099:1: ( rule__XDoWhileExpression__Group__6__Impl )
+            // InternalChartDSL.g:16100:2: rule__XDoWhileExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__Group__6__Impl();
@@ -50320,22 +53709,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6__Impl"
-    // InternalChartDSL.g:15096:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
+    // InternalChartDSL.g:16106:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
     public final void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15100:1: ( ( ')' ) )
-            // InternalChartDSL.g:15101:1: ( ')' )
+            // InternalChartDSL.g:16110:1: ( ( ')' ) )
+            // InternalChartDSL.g:16111:1: ( ')' )
             {
-            // InternalChartDSL.g:15101:1: ( ')' )
-            // InternalChartDSL.g:15102:2: ')'
+            // InternalChartDSL.g:16111:1: ( ')' )
+            // InternalChartDSL.g:16112:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
             }
@@ -50361,16 +53750,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0"
-    // InternalChartDSL.g:15112:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
+    // InternalChartDSL.g:16122:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
     public final void rule__XBlockExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15116:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
-            // InternalChartDSL.g:15117:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
+            // InternalChartDSL.g:16126:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
+            // InternalChartDSL.g:16127:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
             {
-            pushFollow(FOLLOW_8);
+            pushFollow(FOLLOW_9);
             rule__XBlockExpression__Group__0__Impl();
 
             state._fsp--;
@@ -50399,23 +53788,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0__Impl"
-    // InternalChartDSL.g:15124:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:16134:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBlockExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15128:1: ( ( () ) )
-            // InternalChartDSL.g:15129:1: ( () )
+            // InternalChartDSL.g:16138:1: ( ( () ) )
+            // InternalChartDSL.g:16139:1: ( () )
             {
-            // InternalChartDSL.g:15129:1: ( () )
-            // InternalChartDSL.g:15130:2: ()
+            // InternalChartDSL.g:16139:1: ( () )
+            // InternalChartDSL.g:16140:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalChartDSL.g:15131:2: ()
-            // InternalChartDSL.g:15131:3: 
+            // InternalChartDSL.g:16141:2: ()
+            // InternalChartDSL.g:16141:3: 
             {
             }
 
@@ -50440,16 +53829,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1"
-    // InternalChartDSL.g:15139:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
+    // InternalChartDSL.g:16149:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
     public final void rule__XBlockExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15143:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
-            // InternalChartDSL.g:15144:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
+            // InternalChartDSL.g:16153:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
+            // InternalChartDSL.g:16154:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
             {
-            pushFollow(FOLLOW_121);
+            pushFollow(FOLLOW_126);
             rule__XBlockExpression__Group__1__Impl();
 
             state._fsp--;
@@ -50478,22 +53867,22 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1__Impl"
-    // InternalChartDSL.g:15151:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
+    // InternalChartDSL.g:16161:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
     public final void rule__XBlockExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15155:1: ( ( '{' ) )
-            // InternalChartDSL.g:15156:1: ( '{' )
+            // InternalChartDSL.g:16165:1: ( ( '{' ) )
+            // InternalChartDSL.g:16166:1: ( '{' )
             {
-            // InternalChartDSL.g:15156:1: ( '{' )
-            // InternalChartDSL.g:15157:2: '{'
+            // InternalChartDSL.g:16166:1: ( '{' )
+            // InternalChartDSL.g:16167:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
             }
-            match(input,72,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
             }
@@ -50519,16 +53908,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2"
-    // InternalChartDSL.g:15166:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
+    // InternalChartDSL.g:16176:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
     public final void rule__XBlockExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15170:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
-            // InternalChartDSL.g:15171:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
+            // InternalChartDSL.g:16180:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
+            // InternalChartDSL.g:16181:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
             {
-            pushFollow(FOLLOW_121);
+            pushFollow(FOLLOW_126);
             rule__XBlockExpression__Group__2__Impl();
 
             state._fsp--;
@@ -50557,37 +53946,37 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2__Impl"
-    // InternalChartDSL.g:15178:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
+    // InternalChartDSL.g:16188:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
     public final void rule__XBlockExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15182:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
-            // InternalChartDSL.g:15183:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalChartDSL.g:16192:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
+            // InternalChartDSL.g:16193:1: ( ( rule__XBlockExpression__Group_2__0 )* )
             {
-            // InternalChartDSL.g:15183:1: ( ( rule__XBlockExpression__Group_2__0 )* )
-            // InternalChartDSL.g:15184:2: ( rule__XBlockExpression__Group_2__0 )*
+            // InternalChartDSL.g:16193:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalChartDSL.g:16194:2: ( rule__XBlockExpression__Group_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); 
             }
-            // InternalChartDSL.g:15185:2: ( rule__XBlockExpression__Group_2__0 )*
-            loop124:
+            // InternalChartDSL.g:16195:2: ( rule__XBlockExpression__Group_2__0 )*
+            loop137:
             do {
-                int alt124=2;
-                int LA124_0 = input.LA(1);
+                int alt137=2;
+                int LA137_0 = input.LA(1);
 
-                if ( ((LA124_0>=RULE_STRING && LA124_0<=RULE_DECIMAL)||LA124_0==27||(LA124_0>=34 && LA124_0<=35)||LA124_0==40||(LA124_0>=44 && LA124_0<=50)||LA124_0==72||LA124_0==97||(LA124_0>=101 && LA124_0<=102)||LA124_0==104||LA124_0==106||(LA124_0>=110 && LA124_0<=118)||LA124_0==120||(LA124_0>=153 && LA124_0<=154)) ) {
-                    alt124=1;
+                if ( ((LA137_0>=RULE_STRING && LA137_0<=RULE_DECIMAL)||LA137_0==27||(LA137_0>=34 && LA137_0<=35)||LA137_0==40||(LA137_0>=44 && LA137_0<=50)||LA137_0==79||LA137_0==112||(LA137_0>=116 && LA137_0<=117)||LA137_0==119||LA137_0==121||(LA137_0>=125 && LA137_0<=133)||LA137_0==135||(LA137_0>=170 && LA137_0<=171)) ) {
+                    alt137=1;
                 }
 
 
-                switch (alt124) {
+                switch (alt137) {
             	case 1 :
-            	    // InternalChartDSL.g:15185:3: rule__XBlockExpression__Group_2__0
+            	    // InternalChartDSL.g:16195:3: rule__XBlockExpression__Group_2__0
             	    {
-            	    pushFollow(FOLLOW_105);
+            	    pushFollow(FOLLOW_110);
             	    rule__XBlockExpression__Group_2__0();
 
             	    state._fsp--;
@@ -50597,7 +53986,7 @@
             	    break;
 
             	default :
-            	    break loop124;
+            	    break loop137;
                 }
             } while (true);
 
@@ -50626,14 +54015,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3"
-    // InternalChartDSL.g:15193:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
+    // InternalChartDSL.g:16203:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
     public final void rule__XBlockExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15197:1: ( rule__XBlockExpression__Group__3__Impl )
-            // InternalChartDSL.g:15198:2: rule__XBlockExpression__Group__3__Impl
+            // InternalChartDSL.g:16207:1: ( rule__XBlockExpression__Group__3__Impl )
+            // InternalChartDSL.g:16208:2: rule__XBlockExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group__3__Impl();
@@ -50659,22 +54048,22 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3__Impl"
-    // InternalChartDSL.g:15204:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
+    // InternalChartDSL.g:16214:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
     public final void rule__XBlockExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15208:1: ( ( '}' ) )
-            // InternalChartDSL.g:15209:1: ( '}' )
+            // InternalChartDSL.g:16218:1: ( ( '}' ) )
+            // InternalChartDSL.g:16219:1: ( '}' )
             {
-            // InternalChartDSL.g:15209:1: ( '}' )
-            // InternalChartDSL.g:15210:2: '}'
+            // InternalChartDSL.g:16219:1: ( '}' )
+            // InternalChartDSL.g:16220:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
             }
-            match(input,73,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
             }
@@ -50700,16 +54089,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0"
-    // InternalChartDSL.g:15220:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
+    // InternalChartDSL.g:16230:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
     public final void rule__XBlockExpression__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15224:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
-            // InternalChartDSL.g:15225:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
+            // InternalChartDSL.g:16234:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
+            // InternalChartDSL.g:16235:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_58);
             rule__XBlockExpression__Group_2__0__Impl();
 
             state._fsp--;
@@ -50738,23 +54127,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0__Impl"
-    // InternalChartDSL.g:15232:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
+    // InternalChartDSL.g:16242:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
     public final void rule__XBlockExpression__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15236:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
-            // InternalChartDSL.g:15237:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalChartDSL.g:16246:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
+            // InternalChartDSL.g:16247:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
             {
-            // InternalChartDSL.g:15237:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
-            // InternalChartDSL.g:15238:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalChartDSL.g:16247:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalChartDSL.g:16248:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); 
             }
-            // InternalChartDSL.g:15239:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
-            // InternalChartDSL.g:15239:3: rule__XBlockExpression__ExpressionsAssignment_2_0
+            // InternalChartDSL.g:16249:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalChartDSL.g:16249:3: rule__XBlockExpression__ExpressionsAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__ExpressionsAssignment_2_0();
@@ -50789,14 +54178,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1"
-    // InternalChartDSL.g:15247:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
+    // InternalChartDSL.g:16257:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
     public final void rule__XBlockExpression__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15251:1: ( rule__XBlockExpression__Group_2__1__Impl )
-            // InternalChartDSL.g:15252:2: rule__XBlockExpression__Group_2__1__Impl
+            // InternalChartDSL.g:16261:1: ( rule__XBlockExpression__Group_2__1__Impl )
+            // InternalChartDSL.g:16262:2: rule__XBlockExpression__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group_2__1__Impl();
@@ -50822,33 +54211,33 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1__Impl"
-    // InternalChartDSL.g:15258:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
+    // InternalChartDSL.g:16268:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
     public final void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15262:1: ( ( ( ';' )? ) )
-            // InternalChartDSL.g:15263:1: ( ( ';' )? )
+            // InternalChartDSL.g:16272:1: ( ( ( ';' )? ) )
+            // InternalChartDSL.g:16273:1: ( ( ';' )? )
             {
-            // InternalChartDSL.g:15263:1: ( ( ';' )? )
-            // InternalChartDSL.g:15264:2: ( ';' )?
+            // InternalChartDSL.g:16273:1: ( ( ';' )? )
+            // InternalChartDSL.g:16274:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); 
             }
-            // InternalChartDSL.g:15265:2: ( ';' )?
-            int alt125=2;
-            int LA125_0 = input.LA(1);
+            // InternalChartDSL.g:16275:2: ( ';' )?
+            int alt138=2;
+            int LA138_0 = input.LA(1);
 
-            if ( (LA125_0==95) ) {
-                alt125=1;
+            if ( (LA138_0==110) ) {
+                alt138=1;
             }
-            switch (alt125) {
+            switch (alt138) {
                 case 1 :
-                    // InternalChartDSL.g:15265:3: ';'
+                    // InternalChartDSL.g:16275:3: ';'
                     {
-                    match(input,95,FOLLOW_2); if (state.failed) return ;
+                    match(input,110,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -50880,16 +54269,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0"
-    // InternalChartDSL.g:15274:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
+    // InternalChartDSL.g:16284:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
     public final void rule__XVariableDeclaration__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15278:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
-            // InternalChartDSL.g:15279:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
+            // InternalChartDSL.g:16288:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
+            // InternalChartDSL.g:16289:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
             {
-            pushFollow(FOLLOW_122);
+            pushFollow(FOLLOW_127);
             rule__XVariableDeclaration__Group__0__Impl();
 
             state._fsp--;
@@ -50918,23 +54307,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0__Impl"
-    // InternalChartDSL.g:15286:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:16296:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15290:1: ( ( () ) )
-            // InternalChartDSL.g:15291:1: ( () )
+            // InternalChartDSL.g:16300:1: ( ( () ) )
+            // InternalChartDSL.g:16301:1: ( () )
             {
-            // InternalChartDSL.g:15291:1: ( () )
-            // InternalChartDSL.g:15292:2: ()
+            // InternalChartDSL.g:16301:1: ( () )
+            // InternalChartDSL.g:16302:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); 
             }
-            // InternalChartDSL.g:15293:2: ()
-            // InternalChartDSL.g:15293:3: 
+            // InternalChartDSL.g:16303:2: ()
+            // InternalChartDSL.g:16303:3: 
             {
             }
 
@@ -50959,16 +54348,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1"
-    // InternalChartDSL.g:15301:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
+    // InternalChartDSL.g:16311:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
     public final void rule__XVariableDeclaration__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15305:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
-            // InternalChartDSL.g:15306:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
+            // InternalChartDSL.g:16315:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
+            // InternalChartDSL.g:16316:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XVariableDeclaration__Group__1__Impl();
 
             state._fsp--;
@@ -50997,23 +54386,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1__Impl"
-    // InternalChartDSL.g:15313:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
+    // InternalChartDSL.g:16323:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
     public final void rule__XVariableDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15317:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
-            // InternalChartDSL.g:15318:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalChartDSL.g:16327:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
+            // InternalChartDSL.g:16328:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
             {
-            // InternalChartDSL.g:15318:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
-            // InternalChartDSL.g:15319:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalChartDSL.g:16328:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalChartDSL.g:16329:2: ( rule__XVariableDeclaration__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); 
             }
-            // InternalChartDSL.g:15320:2: ( rule__XVariableDeclaration__Alternatives_1 )
-            // InternalChartDSL.g:15320:3: rule__XVariableDeclaration__Alternatives_1
+            // InternalChartDSL.g:16330:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalChartDSL.g:16330:3: rule__XVariableDeclaration__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_1();
@@ -51048,16 +54437,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2"
-    // InternalChartDSL.g:15328:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
+    // InternalChartDSL.g:16338:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
     public final void rule__XVariableDeclaration__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15332:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
-            // InternalChartDSL.g:15333:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
+            // InternalChartDSL.g:16342:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
+            // InternalChartDSL.g:16343:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_67);
             rule__XVariableDeclaration__Group__2__Impl();
 
             state._fsp--;
@@ -51086,23 +54475,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2__Impl"
-    // InternalChartDSL.g:15340:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
+    // InternalChartDSL.g:16350:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
     public final void rule__XVariableDeclaration__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15344:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
-            // InternalChartDSL.g:15345:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalChartDSL.g:16354:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
+            // InternalChartDSL.g:16355:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
             {
-            // InternalChartDSL.g:15345:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
-            // InternalChartDSL.g:15346:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalChartDSL.g:16355:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalChartDSL.g:16356:2: ( rule__XVariableDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalChartDSL.g:15347:2: ( rule__XVariableDeclaration__Alternatives_2 )
-            // InternalChartDSL.g:15347:3: rule__XVariableDeclaration__Alternatives_2
+            // InternalChartDSL.g:16357:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalChartDSL.g:16357:3: rule__XVariableDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_2();
@@ -51137,14 +54526,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3"
-    // InternalChartDSL.g:15355:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
+    // InternalChartDSL.g:16365:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
     public final void rule__XVariableDeclaration__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15359:1: ( rule__XVariableDeclaration__Group__3__Impl )
-            // InternalChartDSL.g:15360:2: rule__XVariableDeclaration__Group__3__Impl
+            // InternalChartDSL.g:16369:1: ( rule__XVariableDeclaration__Group__3__Impl )
+            // InternalChartDSL.g:16370:2: rule__XVariableDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group__3__Impl();
@@ -51170,31 +54559,31 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3__Impl"
-    // InternalChartDSL.g:15366:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
+    // InternalChartDSL.g:16376:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
     public final void rule__XVariableDeclaration__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15370:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
-            // InternalChartDSL.g:15371:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalChartDSL.g:16380:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
+            // InternalChartDSL.g:16381:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
             {
-            // InternalChartDSL.g:15371:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
-            // InternalChartDSL.g:15372:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            // InternalChartDSL.g:16381:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalChartDSL.g:16382:2: ( rule__XVariableDeclaration__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); 
             }
-            // InternalChartDSL.g:15373:2: ( rule__XVariableDeclaration__Group_3__0 )?
-            int alt126=2;
-            int LA126_0 = input.LA(1);
+            // InternalChartDSL.g:16383:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            int alt139=2;
+            int LA139_0 = input.LA(1);
 
-            if ( (LA126_0==13) ) {
-                alt126=1;
+            if ( (LA139_0==13) ) {
+                alt139=1;
             }
-            switch (alt126) {
+            switch (alt139) {
                 case 1 :
-                    // InternalChartDSL.g:15373:3: rule__XVariableDeclaration__Group_3__0
+                    // InternalChartDSL.g:16383:3: rule__XVariableDeclaration__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_3__0();
@@ -51232,14 +54621,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0"
-    // InternalChartDSL.g:15382:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
+    // InternalChartDSL.g:16392:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
     public final void rule__XVariableDeclaration__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15386:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
-            // InternalChartDSL.g:15387:2: rule__XVariableDeclaration__Group_2_0__0__Impl
+            // InternalChartDSL.g:16396:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
+            // InternalChartDSL.g:16397:2: rule__XVariableDeclaration__Group_2_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0__0__Impl();
@@ -51265,23 +54654,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0__Impl"
-    // InternalChartDSL.g:15393:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
+    // InternalChartDSL.g:16403:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15397:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
-            // InternalChartDSL.g:15398:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalChartDSL.g:16407:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
+            // InternalChartDSL.g:16408:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
             {
-            // InternalChartDSL.g:15398:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
-            // InternalChartDSL.g:15399:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalChartDSL.g:16408:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalChartDSL.g:16409:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); 
             }
-            // InternalChartDSL.g:15400:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
-            // InternalChartDSL.g:15400:3: rule__XVariableDeclaration__Group_2_0_0__0
+            // InternalChartDSL.g:16410:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalChartDSL.g:16410:3: rule__XVariableDeclaration__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__0();
@@ -51316,14 +54705,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0"
-    // InternalChartDSL.g:15409:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
+    // InternalChartDSL.g:16419:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
     public final void rule__XVariableDeclaration__Group_2_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15413:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
-            // InternalChartDSL.g:15414:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
+            // InternalChartDSL.g:16423:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
+            // InternalChartDSL.g:16424:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
             {
             pushFollow(FOLLOW_7);
             rule__XVariableDeclaration__Group_2_0_0__0__Impl();
@@ -51354,23 +54743,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0__Impl"
-    // InternalChartDSL.g:15421:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
+    // InternalChartDSL.g:16431:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15425:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
-            // InternalChartDSL.g:15426:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalChartDSL.g:16435:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
+            // InternalChartDSL.g:16436:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
             {
-            // InternalChartDSL.g:15426:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
-            // InternalChartDSL.g:15427:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalChartDSL.g:16436:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalChartDSL.g:16437:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); 
             }
-            // InternalChartDSL.g:15428:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
-            // InternalChartDSL.g:15428:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
+            // InternalChartDSL.g:16438:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalChartDSL.g:16438:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__TypeAssignment_2_0_0_0();
@@ -51405,14 +54794,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1"
-    // InternalChartDSL.g:15436:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
+    // InternalChartDSL.g:16446:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
     public final void rule__XVariableDeclaration__Group_2_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15440:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
-            // InternalChartDSL.g:15441:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
+            // InternalChartDSL.g:16450:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
+            // InternalChartDSL.g:16451:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__1__Impl();
@@ -51438,23 +54827,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1__Impl"
-    // InternalChartDSL.g:15447:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
+    // InternalChartDSL.g:16457:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15451:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
-            // InternalChartDSL.g:15452:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalChartDSL.g:16461:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
+            // InternalChartDSL.g:16462:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
             {
-            // InternalChartDSL.g:15452:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
-            // InternalChartDSL.g:15453:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalChartDSL.g:16462:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalChartDSL.g:16463:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); 
             }
-            // InternalChartDSL.g:15454:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
-            // InternalChartDSL.g:15454:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
+            // InternalChartDSL.g:16464:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalChartDSL.g:16464:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__NameAssignment_2_0_0_1();
@@ -51489,16 +54878,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0"
-    // InternalChartDSL.g:15463:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
+    // InternalChartDSL.g:16473:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
     public final void rule__XVariableDeclaration__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15467:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
-            // InternalChartDSL.g:15468:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
+            // InternalChartDSL.g:16477:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
+            // InternalChartDSL.g:16478:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XVariableDeclaration__Group_3__0__Impl();
 
             state._fsp--;
@@ -51527,17 +54916,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0__Impl"
-    // InternalChartDSL.g:15475:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
+    // InternalChartDSL.g:16485:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
     public final void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15479:1: ( ( '=' ) )
-            // InternalChartDSL.g:15480:1: ( '=' )
+            // InternalChartDSL.g:16489:1: ( ( '=' ) )
+            // InternalChartDSL.g:16490:1: ( '=' )
             {
-            // InternalChartDSL.g:15480:1: ( '=' )
-            // InternalChartDSL.g:15481:2: '='
+            // InternalChartDSL.g:16490:1: ( '=' )
+            // InternalChartDSL.g:16491:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); 
@@ -51568,14 +54957,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1"
-    // InternalChartDSL.g:15490:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
+    // InternalChartDSL.g:16500:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
     public final void rule__XVariableDeclaration__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15494:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
-            // InternalChartDSL.g:15495:2: rule__XVariableDeclaration__Group_3__1__Impl
+            // InternalChartDSL.g:16504:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
+            // InternalChartDSL.g:16505:2: rule__XVariableDeclaration__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_3__1__Impl();
@@ -51601,23 +54990,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1__Impl"
-    // InternalChartDSL.g:15501:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
+    // InternalChartDSL.g:16511:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
     public final void rule__XVariableDeclaration__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15505:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
-            // InternalChartDSL.g:15506:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalChartDSL.g:16515:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
+            // InternalChartDSL.g:16516:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
             {
-            // InternalChartDSL.g:15506:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
-            // InternalChartDSL.g:15507:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalChartDSL.g:16516:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalChartDSL.g:16517:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); 
             }
-            // InternalChartDSL.g:15508:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
-            // InternalChartDSL.g:15508:3: rule__XVariableDeclaration__RightAssignment_3_1
+            // InternalChartDSL.g:16518:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalChartDSL.g:16518:3: rule__XVariableDeclaration__RightAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__RightAssignment_3_1();
@@ -51652,16 +55041,16 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0"
-    // InternalChartDSL.g:15517:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
+    // InternalChartDSL.g:16527:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
     public final void rule__JvmFormalParameter__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15521:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
-            // InternalChartDSL.g:15522:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
+            // InternalChartDSL.g:16531:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
+            // InternalChartDSL.g:16532:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__JvmFormalParameter__Group__0__Impl();
 
             state._fsp--;
@@ -51690,38 +55079,38 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0__Impl"
-    // InternalChartDSL.g:15529:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
+    // InternalChartDSL.g:16539:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
     public final void rule__JvmFormalParameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15533:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
-            // InternalChartDSL.g:15534:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalChartDSL.g:16543:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
+            // InternalChartDSL.g:16544:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
             {
-            // InternalChartDSL.g:15534:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
-            // InternalChartDSL.g:15535:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            // InternalChartDSL.g:16544:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalChartDSL.g:16545:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalChartDSL.g:15536:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
-            int alt127=2;
-            int LA127_0 = input.LA(1);
+            // InternalChartDSL.g:16546:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            int alt140=2;
+            int LA140_0 = input.LA(1);
 
-            if ( (LA127_0==RULE_ID) ) {
-                int LA127_1 = input.LA(2);
+            if ( (LA140_0==RULE_ID) ) {
+                int LA140_1 = input.LA(2);
 
-                if ( (LA127_1==RULE_ID||LA127_1==27||LA127_1==43||LA127_1==102) ) {
-                    alt127=1;
+                if ( (LA140_1==RULE_ID||LA140_1==27||LA140_1==43||LA140_1==117) ) {
+                    alt140=1;
                 }
             }
-            else if ( (LA127_0==31||LA127_0==97) ) {
-                alt127=1;
+            else if ( (LA140_0==31||LA140_0==112) ) {
+                alt140=1;
             }
-            switch (alt127) {
+            switch (alt140) {
                 case 1 :
-                    // InternalChartDSL.g:15536:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
+                    // InternalChartDSL.g:16546:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmFormalParameter__ParameterTypeAssignment_0();
@@ -51759,14 +55148,14 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1"
-    // InternalChartDSL.g:15544:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
+    // InternalChartDSL.g:16554:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
     public final void rule__JvmFormalParameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15548:1: ( rule__JvmFormalParameter__Group__1__Impl )
-            // InternalChartDSL.g:15549:2: rule__JvmFormalParameter__Group__1__Impl
+            // InternalChartDSL.g:16558:1: ( rule__JvmFormalParameter__Group__1__Impl )
+            // InternalChartDSL.g:16559:2: rule__JvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__Group__1__Impl();
@@ -51792,23 +55181,23 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1__Impl"
-    // InternalChartDSL.g:15555:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalChartDSL.g:16565:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
     public final void rule__JvmFormalParameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15559:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalChartDSL.g:15560:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalChartDSL.g:16569:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalChartDSL.g:16570:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalChartDSL.g:15560:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
-            // InternalChartDSL.g:15561:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalChartDSL.g:16570:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalChartDSL.g:16571:2: ( rule__JvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalChartDSL.g:15562:2: ( rule__JvmFormalParameter__NameAssignment_1 )
-            // InternalChartDSL.g:15562:3: rule__JvmFormalParameter__NameAssignment_1
+            // InternalChartDSL.g:16572:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalChartDSL.g:16572:3: rule__JvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__NameAssignment_1();
@@ -51843,14 +55232,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0"
-    // InternalChartDSL.g:15571:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
+    // InternalChartDSL.g:16581:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
     public final void rule__FullJvmFormalParameter__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15575:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
-            // InternalChartDSL.g:15576:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
+            // InternalChartDSL.g:16585:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
+            // InternalChartDSL.g:16586:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__FullJvmFormalParameter__Group__0__Impl();
@@ -51881,23 +55270,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0__Impl"
-    // InternalChartDSL.g:15583:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
+    // InternalChartDSL.g:16593:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
     public final void rule__FullJvmFormalParameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15587:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
-            // InternalChartDSL.g:15588:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalChartDSL.g:16597:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
+            // InternalChartDSL.g:16598:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
             {
-            // InternalChartDSL.g:15588:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
-            // InternalChartDSL.g:15589:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalChartDSL.g:16598:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalChartDSL.g:16599:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalChartDSL.g:15590:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
-            // InternalChartDSL.g:15590:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
+            // InternalChartDSL.g:16600:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalChartDSL.g:16600:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__ParameterTypeAssignment_0();
@@ -51932,14 +55321,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1"
-    // InternalChartDSL.g:15598:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
+    // InternalChartDSL.g:16608:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
     public final void rule__FullJvmFormalParameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15602:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
-            // InternalChartDSL.g:15603:2: rule__FullJvmFormalParameter__Group__1__Impl
+            // InternalChartDSL.g:16612:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
+            // InternalChartDSL.g:16613:2: rule__FullJvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__Group__1__Impl();
@@ -51965,23 +55354,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1__Impl"
-    // InternalChartDSL.g:15609:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalChartDSL.g:16619:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
     public final void rule__FullJvmFormalParameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15613:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalChartDSL.g:15614:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalChartDSL.g:16623:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalChartDSL.g:16624:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalChartDSL.g:15614:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
-            // InternalChartDSL.g:15615:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalChartDSL.g:16624:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalChartDSL.g:16625:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalChartDSL.g:15616:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
-            // InternalChartDSL.g:15616:3: rule__FullJvmFormalParameter__NameAssignment_1
+            // InternalChartDSL.g:16626:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalChartDSL.g:16626:3: rule__FullJvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__NameAssignment_1();
@@ -52016,16 +55405,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0"
-    // InternalChartDSL.g:15625:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
+    // InternalChartDSL.g:16635:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
     public final void rule__XFeatureCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15629:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
-            // InternalChartDSL.g:15630:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
+            // InternalChartDSL.g:16639:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
+            // InternalChartDSL.g:16640:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
             {
-            pushFollow(FOLLOW_96);
+            pushFollow(FOLLOW_101);
             rule__XFeatureCall__Group__0__Impl();
 
             state._fsp--;
@@ -52054,23 +55443,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0__Impl"
-    // InternalChartDSL.g:15637:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:16647:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
     public final void rule__XFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15641:1: ( ( () ) )
-            // InternalChartDSL.g:15642:1: ( () )
+            // InternalChartDSL.g:16651:1: ( ( () ) )
+            // InternalChartDSL.g:16652:1: ( () )
             {
-            // InternalChartDSL.g:15642:1: ( () )
-            // InternalChartDSL.g:15643:2: ()
+            // InternalChartDSL.g:16652:1: ( () )
+            // InternalChartDSL.g:16653:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); 
             }
-            // InternalChartDSL.g:15644:2: ()
-            // InternalChartDSL.g:15644:3: 
+            // InternalChartDSL.g:16654:2: ()
+            // InternalChartDSL.g:16654:3: 
             {
             }
 
@@ -52095,16 +55484,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1"
-    // InternalChartDSL.g:15652:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
+    // InternalChartDSL.g:16662:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
     public final void rule__XFeatureCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15656:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
-            // InternalChartDSL.g:15657:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
+            // InternalChartDSL.g:16666:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
+            // InternalChartDSL.g:16667:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
             {
-            pushFollow(FOLLOW_96);
+            pushFollow(FOLLOW_101);
             rule__XFeatureCall__Group__1__Impl();
 
             state._fsp--;
@@ -52133,31 +55522,31 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1__Impl"
-    // InternalChartDSL.g:15664:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
+    // InternalChartDSL.g:16674:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
     public final void rule__XFeatureCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15668:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
-            // InternalChartDSL.g:15669:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalChartDSL.g:16678:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
+            // InternalChartDSL.g:16679:1: ( ( rule__XFeatureCall__Group_1__0 )? )
             {
-            // InternalChartDSL.g:15669:1: ( ( rule__XFeatureCall__Group_1__0 )? )
-            // InternalChartDSL.g:15670:2: ( rule__XFeatureCall__Group_1__0 )?
+            // InternalChartDSL.g:16679:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalChartDSL.g:16680:2: ( rule__XFeatureCall__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:15671:2: ( rule__XFeatureCall__Group_1__0 )?
-            int alt128=2;
-            int LA128_0 = input.LA(1);
+            // InternalChartDSL.g:16681:2: ( rule__XFeatureCall__Group_1__0 )?
+            int alt141=2;
+            int LA141_0 = input.LA(1);
 
-            if ( (LA128_0==27) ) {
-                alt128=1;
+            if ( (LA141_0==27) ) {
+                alt141=1;
             }
-            switch (alt128) {
+            switch (alt141) {
                 case 1 :
-                    // InternalChartDSL.g:15671:3: rule__XFeatureCall__Group_1__0
+                    // InternalChartDSL.g:16681:3: rule__XFeatureCall__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_1__0();
@@ -52195,16 +55584,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2"
-    // InternalChartDSL.g:15679:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
+    // InternalChartDSL.g:16689:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
     public final void rule__XFeatureCall__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15683:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
-            // InternalChartDSL.g:15684:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
+            // InternalChartDSL.g:16693:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
+            // InternalChartDSL.g:16694:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
             {
-            pushFollow(FOLLOW_97);
+            pushFollow(FOLLOW_102);
             rule__XFeatureCall__Group__2__Impl();
 
             state._fsp--;
@@ -52233,23 +55622,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2__Impl"
-    // InternalChartDSL.g:15691:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
+    // InternalChartDSL.g:16701:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
     public final void rule__XFeatureCall__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15695:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
-            // InternalChartDSL.g:15696:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalChartDSL.g:16705:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
+            // InternalChartDSL.g:16706:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
             {
-            // InternalChartDSL.g:15696:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
-            // InternalChartDSL.g:15697:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalChartDSL.g:16706:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalChartDSL.g:16707:2: ( rule__XFeatureCall__FeatureAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); 
             }
-            // InternalChartDSL.g:15698:2: ( rule__XFeatureCall__FeatureAssignment_2 )
-            // InternalChartDSL.g:15698:3: rule__XFeatureCall__FeatureAssignment_2
+            // InternalChartDSL.g:16708:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalChartDSL.g:16708:3: rule__XFeatureCall__FeatureAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureAssignment_2();
@@ -52284,16 +55673,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3"
-    // InternalChartDSL.g:15706:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
+    // InternalChartDSL.g:16716:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
     public final void rule__XFeatureCall__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15710:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
-            // InternalChartDSL.g:15711:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
+            // InternalChartDSL.g:16720:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
+            // InternalChartDSL.g:16721:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
             {
-            pushFollow(FOLLOW_97);
+            pushFollow(FOLLOW_102);
             rule__XFeatureCall__Group__3__Impl();
 
             state._fsp--;
@@ -52322,27 +55711,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3__Impl"
-    // InternalChartDSL.g:15718:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
+    // InternalChartDSL.g:16728:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
     public final void rule__XFeatureCall__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15722:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
-            // InternalChartDSL.g:15723:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalChartDSL.g:16732:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
+            // InternalChartDSL.g:16733:1: ( ( rule__XFeatureCall__Group_3__0 )? )
             {
-            // InternalChartDSL.g:15723:1: ( ( rule__XFeatureCall__Group_3__0 )? )
-            // InternalChartDSL.g:15724:2: ( rule__XFeatureCall__Group_3__0 )?
+            // InternalChartDSL.g:16733:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalChartDSL.g:16734:2: ( rule__XFeatureCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3()); 
             }
-            // InternalChartDSL.g:15725:2: ( rule__XFeatureCall__Group_3__0 )?
-            int alt129=2;
-            alt129 = dfa129.predict(input);
-            switch (alt129) {
+            // InternalChartDSL.g:16735:2: ( rule__XFeatureCall__Group_3__0 )?
+            int alt142=2;
+            alt142 = dfa142.predict(input);
+            switch (alt142) {
                 case 1 :
-                    // InternalChartDSL.g:15725:3: rule__XFeatureCall__Group_3__0
+                    // InternalChartDSL.g:16735:3: rule__XFeatureCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3__0();
@@ -52380,14 +55769,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4"
-    // InternalChartDSL.g:15733:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
+    // InternalChartDSL.g:16743:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
     public final void rule__XFeatureCall__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15737:1: ( rule__XFeatureCall__Group__4__Impl )
-            // InternalChartDSL.g:15738:2: rule__XFeatureCall__Group__4__Impl
+            // InternalChartDSL.g:16747:1: ( rule__XFeatureCall__Group__4__Impl )
+            // InternalChartDSL.g:16748:2: rule__XFeatureCall__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group__4__Impl();
@@ -52413,27 +55802,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4__Impl"
-    // InternalChartDSL.g:15744:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
+    // InternalChartDSL.g:16754:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
     public final void rule__XFeatureCall__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15748:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
-            // InternalChartDSL.g:15749:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalChartDSL.g:16758:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
+            // InternalChartDSL.g:16759:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
             {
-            // InternalChartDSL.g:15749:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
-            // InternalChartDSL.g:15750:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            // InternalChartDSL.g:16759:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalChartDSL.g:16760:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); 
             }
-            // InternalChartDSL.g:15751:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
-            int alt130=2;
-            alt130 = dfa130.predict(input);
-            switch (alt130) {
+            // InternalChartDSL.g:16761:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            int alt143=2;
+            alt143 = dfa143.predict(input);
+            switch (alt143) {
                 case 1 :
-                    // InternalChartDSL.g:15751:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+                    // InternalChartDSL.g:16761:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -52471,16 +55860,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0"
-    // InternalChartDSL.g:15760:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
+    // InternalChartDSL.g:16770:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
     public final void rule__XFeatureCall__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15764:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
-            // InternalChartDSL.g:15765:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
+            // InternalChartDSL.g:16774:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
+            // InternalChartDSL.g:16775:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_103);
             rule__XFeatureCall__Group_1__0__Impl();
 
             state._fsp--;
@@ -52509,17 +55898,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0__Impl"
-    // InternalChartDSL.g:15772:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
+    // InternalChartDSL.g:16782:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
     public final void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15776:1: ( ( '<' ) )
-            // InternalChartDSL.g:15777:1: ( '<' )
+            // InternalChartDSL.g:16786:1: ( ( '<' ) )
+            // InternalChartDSL.g:16787:1: ( '<' )
             {
-            // InternalChartDSL.g:15777:1: ( '<' )
-            // InternalChartDSL.g:15778:2: '<'
+            // InternalChartDSL.g:16787:1: ( '<' )
+            // InternalChartDSL.g:16788:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
@@ -52550,16 +55939,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1"
-    // InternalChartDSL.g:15787:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
+    // InternalChartDSL.g:16797:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
     public final void rule__XFeatureCall__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15791:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
-            // InternalChartDSL.g:15792:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
+            // InternalChartDSL.g:16801:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
+            // InternalChartDSL.g:16802:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_104);
             rule__XFeatureCall__Group_1__1__Impl();
 
             state._fsp--;
@@ -52588,23 +55977,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1__Impl"
-    // InternalChartDSL.g:15799:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
+    // InternalChartDSL.g:16809:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
     public final void rule__XFeatureCall__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15803:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
-            // InternalChartDSL.g:15804:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalChartDSL.g:16813:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
+            // InternalChartDSL.g:16814:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
             {
-            // InternalChartDSL.g:15804:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
-            // InternalChartDSL.g:15805:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalChartDSL.g:16814:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalChartDSL.g:16815:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); 
             }
-            // InternalChartDSL.g:15806:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
-            // InternalChartDSL.g:15806:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
+            // InternalChartDSL.g:16816:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalChartDSL.g:16816:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_1();
@@ -52639,16 +56028,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2"
-    // InternalChartDSL.g:15814:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
+    // InternalChartDSL.g:16824:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
     public final void rule__XFeatureCall__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15818:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
-            // InternalChartDSL.g:15819:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
+            // InternalChartDSL.g:16828:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
+            // InternalChartDSL.g:16829:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_104);
             rule__XFeatureCall__Group_1__2__Impl();
 
             state._fsp--;
@@ -52677,37 +56066,37 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2__Impl"
-    // InternalChartDSL.g:15826:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
+    // InternalChartDSL.g:16836:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
     public final void rule__XFeatureCall__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15830:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
-            // InternalChartDSL.g:15831:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalChartDSL.g:16840:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
+            // InternalChartDSL.g:16841:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
             {
-            // InternalChartDSL.g:15831:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
-            // InternalChartDSL.g:15832:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            // InternalChartDSL.g:16841:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalChartDSL.g:16842:2: ( rule__XFeatureCall__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); 
             }
-            // InternalChartDSL.g:15833:2: ( rule__XFeatureCall__Group_1_2__0 )*
-            loop131:
+            // InternalChartDSL.g:16843:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            loop144:
             do {
-                int alt131=2;
-                int LA131_0 = input.LA(1);
+                int alt144=2;
+                int LA144_0 = input.LA(1);
 
-                if ( (LA131_0==99) ) {
-                    alt131=1;
+                if ( (LA144_0==114) ) {
+                    alt144=1;
                 }
 
 
-                switch (alt131) {
+                switch (alt144) {
             	case 1 :
-            	    // InternalChartDSL.g:15833:3: rule__XFeatureCall__Group_1_2__0
+            	    // InternalChartDSL.g:16843:3: rule__XFeatureCall__Group_1_2__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XFeatureCall__Group_1_2__0();
 
             	    state._fsp--;
@@ -52717,7 +56106,7 @@
             	    break;
 
             	default :
-            	    break loop131;
+            	    break loop144;
                 }
             } while (true);
 
@@ -52746,14 +56135,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3"
-    // InternalChartDSL.g:15841:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
+    // InternalChartDSL.g:16851:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
     public final void rule__XFeatureCall__Group_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15845:1: ( rule__XFeatureCall__Group_1__3__Impl )
-            // InternalChartDSL.g:15846:2: rule__XFeatureCall__Group_1__3__Impl
+            // InternalChartDSL.g:16855:1: ( rule__XFeatureCall__Group_1__3__Impl )
+            // InternalChartDSL.g:16856:2: rule__XFeatureCall__Group_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1__3__Impl();
@@ -52779,17 +56168,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3__Impl"
-    // InternalChartDSL.g:15852:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
+    // InternalChartDSL.g:16862:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
     public final void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15856:1: ( ( '>' ) )
-            // InternalChartDSL.g:15857:1: ( '>' )
+            // InternalChartDSL.g:16866:1: ( ( '>' ) )
+            // InternalChartDSL.g:16867:1: ( '>' )
             {
-            // InternalChartDSL.g:15857:1: ( '>' )
-            // InternalChartDSL.g:15858:2: '>'
+            // InternalChartDSL.g:16867:1: ( '>' )
+            // InternalChartDSL.g:16868:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
@@ -52820,16 +56209,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0"
-    // InternalChartDSL.g:15868:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
+    // InternalChartDSL.g:16878:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
     public final void rule__XFeatureCall__Group_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15872:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
-            // InternalChartDSL.g:15873:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
+            // InternalChartDSL.g:16882:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
+            // InternalChartDSL.g:16883:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_103);
             rule__XFeatureCall__Group_1_2__0__Impl();
 
             state._fsp--;
@@ -52858,22 +56247,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0__Impl"
-    // InternalChartDSL.g:15880:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:16890:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
     public final void rule__XFeatureCall__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15884:1: ( ( ',' ) )
-            // InternalChartDSL.g:15885:1: ( ',' )
+            // InternalChartDSL.g:16894:1: ( ( ',' ) )
+            // InternalChartDSL.g:16895:1: ( ',' )
             {
-            // InternalChartDSL.g:15885:1: ( ',' )
-            // InternalChartDSL.g:15886:2: ','
+            // InternalChartDSL.g:16895:1: ( ',' )
+            // InternalChartDSL.g:16896:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
             }
@@ -52899,14 +56288,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1"
-    // InternalChartDSL.g:15895:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
+    // InternalChartDSL.g:16905:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
     public final void rule__XFeatureCall__Group_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15899:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
-            // InternalChartDSL.g:15900:2: rule__XFeatureCall__Group_1_2__1__Impl
+            // InternalChartDSL.g:16909:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
+            // InternalChartDSL.g:16910:2: rule__XFeatureCall__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1_2__1__Impl();
@@ -52932,23 +56321,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1__Impl"
-    // InternalChartDSL.g:15906:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
+    // InternalChartDSL.g:16916:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
     public final void rule__XFeatureCall__Group_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15910:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
-            // InternalChartDSL.g:15911:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalChartDSL.g:16920:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
+            // InternalChartDSL.g:16921:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
             {
-            // InternalChartDSL.g:15911:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
-            // InternalChartDSL.g:15912:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalChartDSL.g:16921:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalChartDSL.g:16922:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); 
             }
-            // InternalChartDSL.g:15913:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
-            // InternalChartDSL.g:15913:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
+            // InternalChartDSL.g:16923:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalChartDSL.g:16923:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_2_1();
@@ -52983,16 +56372,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0"
-    // InternalChartDSL.g:15922:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
+    // InternalChartDSL.g:16932:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
     public final void rule__XFeatureCall__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15926:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
-            // InternalChartDSL.g:15927:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
+            // InternalChartDSL.g:16936:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
+            // InternalChartDSL.g:16937:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
             {
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_105);
             rule__XFeatureCall__Group_3__0__Impl();
 
             state._fsp--;
@@ -53021,23 +56410,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0__Impl"
-    // InternalChartDSL.g:15934:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
+    // InternalChartDSL.g:16944:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
     public final void rule__XFeatureCall__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15938:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
-            // InternalChartDSL.g:15939:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalChartDSL.g:16948:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
+            // InternalChartDSL.g:16949:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
             {
-            // InternalChartDSL.g:15939:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
-            // InternalChartDSL.g:15940:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalChartDSL.g:16949:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalChartDSL.g:16950:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); 
             }
-            // InternalChartDSL.g:15941:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
-            // InternalChartDSL.g:15941:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
+            // InternalChartDSL.g:16951:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalChartDSL.g:16951:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__ExplicitOperationCallAssignment_3_0();
@@ -53072,16 +56461,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1"
-    // InternalChartDSL.g:15949:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
+    // InternalChartDSL.g:16959:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
     public final void rule__XFeatureCall__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15953:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
-            // InternalChartDSL.g:15954:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
+            // InternalChartDSL.g:16963:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
+            // InternalChartDSL.g:16964:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
             {
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_105);
             rule__XFeatureCall__Group_3__1__Impl();
 
             state._fsp--;
@@ -53110,31 +56499,31 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1__Impl"
-    // InternalChartDSL.g:15961:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
+    // InternalChartDSL.g:16971:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
     public final void rule__XFeatureCall__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15965:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
-            // InternalChartDSL.g:15966:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalChartDSL.g:16975:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
+            // InternalChartDSL.g:16976:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
             {
-            // InternalChartDSL.g:15966:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
-            // InternalChartDSL.g:15967:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            // InternalChartDSL.g:16976:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalChartDSL.g:16977:2: ( rule__XFeatureCall__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); 
             }
-            // InternalChartDSL.g:15968:2: ( rule__XFeatureCall__Alternatives_3_1 )?
-            int alt132=2;
-            int LA132_0 = input.LA(1);
+            // InternalChartDSL.g:16978:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            int alt145=2;
+            int LA145_0 = input.LA(1);
 
-            if ( ((LA132_0>=RULE_STRING && LA132_0<=RULE_DECIMAL)||LA132_0==27||LA132_0==31||(LA132_0>=34 && LA132_0<=35)||LA132_0==40||(LA132_0>=45 && LA132_0<=50)||LA132_0==72||LA132_0==97||(LA132_0>=101 && LA132_0<=102)||LA132_0==104||LA132_0==106||(LA132_0>=110 && LA132_0<=118)||LA132_0==120||LA132_0==152||LA132_0==154) ) {
-                alt132=1;
+            if ( ((LA145_0>=RULE_STRING && LA145_0<=RULE_DECIMAL)||LA145_0==27||LA145_0==31||(LA145_0>=34 && LA145_0<=35)||LA145_0==40||(LA145_0>=45 && LA145_0<=50)||LA145_0==79||LA145_0==112||(LA145_0>=116 && LA145_0<=117)||LA145_0==119||LA145_0==121||(LA145_0>=125 && LA145_0<=133)||LA145_0==135||LA145_0==169||LA145_0==171) ) {
+                alt145=1;
             }
-            switch (alt132) {
+            switch (alt145) {
                 case 1 :
-                    // InternalChartDSL.g:15968:3: rule__XFeatureCall__Alternatives_3_1
+                    // InternalChartDSL.g:16978:3: rule__XFeatureCall__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Alternatives_3_1();
@@ -53172,14 +56561,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2"
-    // InternalChartDSL.g:15976:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
+    // InternalChartDSL.g:16986:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
     public final void rule__XFeatureCall__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15980:1: ( rule__XFeatureCall__Group_3__2__Impl )
-            // InternalChartDSL.g:15981:2: rule__XFeatureCall__Group_3__2__Impl
+            // InternalChartDSL.g:16990:1: ( rule__XFeatureCall__Group_3__2__Impl )
+            // InternalChartDSL.g:16991:2: rule__XFeatureCall__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3__2__Impl();
@@ -53205,22 +56594,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2__Impl"
-    // InternalChartDSL.g:15987:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
+    // InternalChartDSL.g:16997:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:15991:1: ( ( ')' ) )
-            // InternalChartDSL.g:15992:1: ( ')' )
+            // InternalChartDSL.g:17001:1: ( ( ')' ) )
+            // InternalChartDSL.g:17002:1: ( ')' )
             {
-            // InternalChartDSL.g:15992:1: ( ')' )
-            // InternalChartDSL.g:15993:2: ')'
+            // InternalChartDSL.g:17002:1: ( ')' )
+            // InternalChartDSL.g:17003:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
             }
@@ -53246,16 +56635,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0"
-    // InternalChartDSL.g:16003:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
+    // InternalChartDSL.g:17013:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
     public final void rule__XFeatureCall__Group_3_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16007:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
-            // InternalChartDSL.g:16008:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
+            // InternalChartDSL.g:17017:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
+            // InternalChartDSL.g:17018:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XFeatureCall__Group_3_1_1__0__Impl();
 
             state._fsp--;
@@ -53284,23 +56673,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0__Impl"
-    // InternalChartDSL.g:16015:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
+    // InternalChartDSL.g:17025:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
     public final void rule__XFeatureCall__Group_3_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16019:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
-            // InternalChartDSL.g:16020:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalChartDSL.g:17029:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
+            // InternalChartDSL.g:17030:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
             {
-            // InternalChartDSL.g:16020:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
-            // InternalChartDSL.g:16021:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalChartDSL.g:17030:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalChartDSL.g:17031:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); 
             }
-            // InternalChartDSL.g:16022:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
-            // InternalChartDSL.g:16022:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
+            // InternalChartDSL.g:17032:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalChartDSL.g:17032:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0();
@@ -53335,14 +56724,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1"
-    // InternalChartDSL.g:16030:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
+    // InternalChartDSL.g:17040:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
     public final void rule__XFeatureCall__Group_3_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16034:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
-            // InternalChartDSL.g:16035:2: rule__XFeatureCall__Group_3_1_1__1__Impl
+            // InternalChartDSL.g:17044:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
+            // InternalChartDSL.g:17045:2: rule__XFeatureCall__Group_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1__1__Impl();
@@ -53368,37 +56757,37 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1__Impl"
-    // InternalChartDSL.g:16041:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
+    // InternalChartDSL.g:17051:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
     public final void rule__XFeatureCall__Group_3_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16045:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
-            // InternalChartDSL.g:16046:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalChartDSL.g:17055:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
+            // InternalChartDSL.g:17056:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
             {
-            // InternalChartDSL.g:16046:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
-            // InternalChartDSL.g:16047:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            // InternalChartDSL.g:17056:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalChartDSL.g:17057:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); 
             }
-            // InternalChartDSL.g:16048:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
-            loop133:
+            // InternalChartDSL.g:17058:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            loop146:
             do {
-                int alt133=2;
-                int LA133_0 = input.LA(1);
+                int alt146=2;
+                int LA146_0 = input.LA(1);
 
-                if ( (LA133_0==99) ) {
-                    alt133=1;
+                if ( (LA146_0==114) ) {
+                    alt146=1;
                 }
 
 
-                switch (alt133) {
+                switch (alt146) {
             	case 1 :
-            	    // InternalChartDSL.g:16048:3: rule__XFeatureCall__Group_3_1_1_1__0
+            	    // InternalChartDSL.g:17058:3: rule__XFeatureCall__Group_3_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XFeatureCall__Group_3_1_1_1__0();
 
             	    state._fsp--;
@@ -53408,7 +56797,7 @@
             	    break;
 
             	default :
-            	    break loop133;
+            	    break loop146;
                 }
             } while (true);
 
@@ -53437,16 +56826,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0"
-    // InternalChartDSL.g:16057:1: rule__XFeatureCall__Group_3_1_1_1__0 : rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 ;
+    // InternalChartDSL.g:17067:1: rule__XFeatureCall__Group_3_1_1_1__0 : rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 ;
     public final void rule__XFeatureCall__Group_3_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16061:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
-            // InternalChartDSL.g:16062:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
+            // InternalChartDSL.g:17071:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
+            // InternalChartDSL.g:17072:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XFeatureCall__Group_3_1_1_1__0__Impl();
 
             state._fsp--;
@@ -53475,22 +56864,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0__Impl"
-    // InternalChartDSL.g:16069:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:17079:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XFeatureCall__Group_3_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16073:1: ( ( ',' ) )
-            // InternalChartDSL.g:16074:1: ( ',' )
+            // InternalChartDSL.g:17083:1: ( ( ',' ) )
+            // InternalChartDSL.g:17084:1: ( ',' )
             {
-            // InternalChartDSL.g:16074:1: ( ',' )
-            // InternalChartDSL.g:16075:2: ','
+            // InternalChartDSL.g:17084:1: ( ',' )
+            // InternalChartDSL.g:17085:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
             }
@@ -53516,14 +56905,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1"
-    // InternalChartDSL.g:16084:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
+    // InternalChartDSL.g:17094:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
     public final void rule__XFeatureCall__Group_3_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16088:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
-            // InternalChartDSL.g:16089:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
+            // InternalChartDSL.g:17098:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
+            // InternalChartDSL.g:17099:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1_1__1__Impl();
@@ -53549,23 +56938,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1__Impl"
-    // InternalChartDSL.g:16095:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
+    // InternalChartDSL.g:17105:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
     public final void rule__XFeatureCall__Group_3_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16099:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
-            // InternalChartDSL.g:16100:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalChartDSL.g:17109:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
+            // InternalChartDSL.g:17110:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
             {
-            // InternalChartDSL.g:16100:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
-            // InternalChartDSL.g:16101:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalChartDSL.g:17110:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalChartDSL.g:17111:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); 
             }
-            // InternalChartDSL.g:16102:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
-            // InternalChartDSL.g:16102:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
+            // InternalChartDSL.g:17112:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalChartDSL.g:17112:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1();
@@ -53600,16 +56989,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0"
-    // InternalChartDSL.g:16111:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
+    // InternalChartDSL.g:17121:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
     public final void rule__XConstructorCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16115:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
-            // InternalChartDSL.g:16116:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
+            // InternalChartDSL.g:17125:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
+            // InternalChartDSL.g:17126:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
             {
-            pushFollow(FOLLOW_123);
+            pushFollow(FOLLOW_128);
             rule__XConstructorCall__Group__0__Impl();
 
             state._fsp--;
@@ -53638,23 +57027,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0__Impl"
-    // InternalChartDSL.g:16123:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:17133:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
     public final void rule__XConstructorCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16127:1: ( ( () ) )
-            // InternalChartDSL.g:16128:1: ( () )
+            // InternalChartDSL.g:17137:1: ( ( () ) )
+            // InternalChartDSL.g:17138:1: ( () )
             {
-            // InternalChartDSL.g:16128:1: ( () )
-            // InternalChartDSL.g:16129:2: ()
+            // InternalChartDSL.g:17138:1: ( () )
+            // InternalChartDSL.g:17139:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); 
             }
-            // InternalChartDSL.g:16130:2: ()
-            // InternalChartDSL.g:16130:3: 
+            // InternalChartDSL.g:17140:2: ()
+            // InternalChartDSL.g:17140:3: 
             {
             }
 
@@ -53679,14 +57068,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1"
-    // InternalChartDSL.g:16138:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
+    // InternalChartDSL.g:17148:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
     public final void rule__XConstructorCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16142:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
-            // InternalChartDSL.g:16143:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
+            // InternalChartDSL.g:17152:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
+            // InternalChartDSL.g:17153:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__XConstructorCall__Group__1__Impl();
@@ -53717,22 +57106,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1__Impl"
-    // InternalChartDSL.g:16150:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
+    // InternalChartDSL.g:17160:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
     public final void rule__XConstructorCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16154:1: ( ( 'new' ) )
-            // InternalChartDSL.g:16155:1: ( 'new' )
+            // InternalChartDSL.g:17164:1: ( ( 'new' ) )
+            // InternalChartDSL.g:17165:1: ( 'new' )
             {
-            // InternalChartDSL.g:16155:1: ( 'new' )
-            // InternalChartDSL.g:16156:2: 'new'
+            // InternalChartDSL.g:17165:1: ( 'new' )
+            // InternalChartDSL.g:17166:2: 'new'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
             }
-            match(input,113,FOLLOW_2); if (state.failed) return ;
+            match(input,128,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
             }
@@ -53758,16 +57147,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2"
-    // InternalChartDSL.g:16165:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
+    // InternalChartDSL.g:17175:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
     public final void rule__XConstructorCall__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16169:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
-            // InternalChartDSL.g:16170:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
+            // InternalChartDSL.g:17179:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
+            // InternalChartDSL.g:17180:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
             {
-            pushFollow(FOLLOW_124);
+            pushFollow(FOLLOW_129);
             rule__XConstructorCall__Group__2__Impl();
 
             state._fsp--;
@@ -53796,23 +57185,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2__Impl"
-    // InternalChartDSL.g:16177:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
+    // InternalChartDSL.g:17187:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
     public final void rule__XConstructorCall__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16181:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
-            // InternalChartDSL.g:16182:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalChartDSL.g:17191:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
+            // InternalChartDSL.g:17192:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
             {
-            // InternalChartDSL.g:16182:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
-            // InternalChartDSL.g:16183:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalChartDSL.g:17192:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalChartDSL.g:17193:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); 
             }
-            // InternalChartDSL.g:16184:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
-            // InternalChartDSL.g:16184:3: rule__XConstructorCall__ConstructorAssignment_2
+            // InternalChartDSL.g:17194:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalChartDSL.g:17194:3: rule__XConstructorCall__ConstructorAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ConstructorAssignment_2();
@@ -53847,16 +57236,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3"
-    // InternalChartDSL.g:16192:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
+    // InternalChartDSL.g:17202:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
     public final void rule__XConstructorCall__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16196:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
-            // InternalChartDSL.g:16197:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
+            // InternalChartDSL.g:17206:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
+            // InternalChartDSL.g:17207:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
             {
-            pushFollow(FOLLOW_124);
+            pushFollow(FOLLOW_129);
             rule__XConstructorCall__Group__3__Impl();
 
             state._fsp--;
@@ -53885,27 +57274,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3__Impl"
-    // InternalChartDSL.g:16204:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
+    // InternalChartDSL.g:17214:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
     public final void rule__XConstructorCall__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16208:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
-            // InternalChartDSL.g:16209:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalChartDSL.g:17218:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
+            // InternalChartDSL.g:17219:1: ( ( rule__XConstructorCall__Group_3__0 )? )
             {
-            // InternalChartDSL.g:16209:1: ( ( rule__XConstructorCall__Group_3__0 )? )
-            // InternalChartDSL.g:16210:2: ( rule__XConstructorCall__Group_3__0 )?
+            // InternalChartDSL.g:17219:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalChartDSL.g:17220:2: ( rule__XConstructorCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3()); 
             }
-            // InternalChartDSL.g:16211:2: ( rule__XConstructorCall__Group_3__0 )?
-            int alt134=2;
-            alt134 = dfa134.predict(input);
-            switch (alt134) {
+            // InternalChartDSL.g:17221:2: ( rule__XConstructorCall__Group_3__0 )?
+            int alt147=2;
+            alt147 = dfa147.predict(input);
+            switch (alt147) {
                 case 1 :
-                    // InternalChartDSL.g:16211:3: rule__XConstructorCall__Group_3__0
+                    // InternalChartDSL.g:17221:3: rule__XConstructorCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_3__0();
@@ -53943,16 +57332,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4"
-    // InternalChartDSL.g:16219:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
+    // InternalChartDSL.g:17229:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
     public final void rule__XConstructorCall__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16223:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
-            // InternalChartDSL.g:16224:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
+            // InternalChartDSL.g:17233:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
+            // InternalChartDSL.g:17234:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
             {
-            pushFollow(FOLLOW_124);
+            pushFollow(FOLLOW_129);
             rule__XConstructorCall__Group__4__Impl();
 
             state._fsp--;
@@ -53981,27 +57370,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4__Impl"
-    // InternalChartDSL.g:16231:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
+    // InternalChartDSL.g:17241:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
     public final void rule__XConstructorCall__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16235:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
-            // InternalChartDSL.g:16236:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalChartDSL.g:17245:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
+            // InternalChartDSL.g:17246:1: ( ( rule__XConstructorCall__Group_4__0 )? )
             {
-            // InternalChartDSL.g:16236:1: ( ( rule__XConstructorCall__Group_4__0 )? )
-            // InternalChartDSL.g:16237:2: ( rule__XConstructorCall__Group_4__0 )?
+            // InternalChartDSL.g:17246:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalChartDSL.g:17247:2: ( rule__XConstructorCall__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4()); 
             }
-            // InternalChartDSL.g:16238:2: ( rule__XConstructorCall__Group_4__0 )?
-            int alt135=2;
-            alt135 = dfa135.predict(input);
-            switch (alt135) {
+            // InternalChartDSL.g:17248:2: ( rule__XConstructorCall__Group_4__0 )?
+            int alt148=2;
+            alt148 = dfa148.predict(input);
+            switch (alt148) {
                 case 1 :
-                    // InternalChartDSL.g:16238:3: rule__XConstructorCall__Group_4__0
+                    // InternalChartDSL.g:17248:3: rule__XConstructorCall__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4__0();
@@ -54039,14 +57428,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5"
-    // InternalChartDSL.g:16246:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
+    // InternalChartDSL.g:17256:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
     public final void rule__XConstructorCall__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16250:1: ( rule__XConstructorCall__Group__5__Impl )
-            // InternalChartDSL.g:16251:2: rule__XConstructorCall__Group__5__Impl
+            // InternalChartDSL.g:17260:1: ( rule__XConstructorCall__Group__5__Impl )
+            // InternalChartDSL.g:17261:2: rule__XConstructorCall__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group__5__Impl();
@@ -54072,27 +57461,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5__Impl"
-    // InternalChartDSL.g:16257:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
+    // InternalChartDSL.g:17267:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
     public final void rule__XConstructorCall__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16261:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
-            // InternalChartDSL.g:16262:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalChartDSL.g:17271:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
+            // InternalChartDSL.g:17272:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
             {
-            // InternalChartDSL.g:16262:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
-            // InternalChartDSL.g:16263:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            // InternalChartDSL.g:17272:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalChartDSL.g:17273:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); 
             }
-            // InternalChartDSL.g:16264:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
-            int alt136=2;
-            alt136 = dfa136.predict(input);
-            switch (alt136) {
+            // InternalChartDSL.g:17274:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            int alt149=2;
+            alt149 = dfa149.predict(input);
+            switch (alt149) {
                 case 1 :
-                    // InternalChartDSL.g:16264:3: rule__XConstructorCall__ArgumentsAssignment_5
+                    // InternalChartDSL.g:17274:3: rule__XConstructorCall__ArgumentsAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_5();
@@ -54130,16 +57519,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0"
-    // InternalChartDSL.g:16273:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
+    // InternalChartDSL.g:17283:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
     public final void rule__XConstructorCall__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16277:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
-            // InternalChartDSL.g:16278:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
+            // InternalChartDSL.g:17287:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
+            // InternalChartDSL.g:17288:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_103);
             rule__XConstructorCall__Group_3__0__Impl();
 
             state._fsp--;
@@ -54168,23 +57557,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0__Impl"
-    // InternalChartDSL.g:16285:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
+    // InternalChartDSL.g:17295:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
     public final void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16289:1: ( ( ( '<' ) ) )
-            // InternalChartDSL.g:16290:1: ( ( '<' ) )
+            // InternalChartDSL.g:17299:1: ( ( ( '<' ) ) )
+            // InternalChartDSL.g:17300:1: ( ( '<' ) )
             {
-            // InternalChartDSL.g:16290:1: ( ( '<' ) )
-            // InternalChartDSL.g:16291:2: ( '<' )
+            // InternalChartDSL.g:17300:1: ( ( '<' ) )
+            // InternalChartDSL.g:17301:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); 
             }
-            // InternalChartDSL.g:16292:2: ( '<' )
-            // InternalChartDSL.g:16292:3: '<'
+            // InternalChartDSL.g:17302:2: ( '<' )
+            // InternalChartDSL.g:17302:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -54215,16 +57604,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1"
-    // InternalChartDSL.g:16300:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
+    // InternalChartDSL.g:17310:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
     public final void rule__XConstructorCall__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16304:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
-            // InternalChartDSL.g:16305:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
+            // InternalChartDSL.g:17314:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
+            // InternalChartDSL.g:17315:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_104);
             rule__XConstructorCall__Group_3__1__Impl();
 
             state._fsp--;
@@ -54253,23 +57642,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1__Impl"
-    // InternalChartDSL.g:16312:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
+    // InternalChartDSL.g:17322:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
     public final void rule__XConstructorCall__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16316:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
-            // InternalChartDSL.g:16317:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalChartDSL.g:17326:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
+            // InternalChartDSL.g:17327:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
             {
-            // InternalChartDSL.g:16317:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
-            // InternalChartDSL.g:16318:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalChartDSL.g:17327:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalChartDSL.g:17328:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); 
             }
-            // InternalChartDSL.g:16319:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
-            // InternalChartDSL.g:16319:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
+            // InternalChartDSL.g:17329:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalChartDSL.g:17329:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_1();
@@ -54304,16 +57693,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2"
-    // InternalChartDSL.g:16327:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
+    // InternalChartDSL.g:17337:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
     public final void rule__XConstructorCall__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16331:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
-            // InternalChartDSL.g:16332:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
+            // InternalChartDSL.g:17341:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
+            // InternalChartDSL.g:17342:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_104);
             rule__XConstructorCall__Group_3__2__Impl();
 
             state._fsp--;
@@ -54342,37 +57731,37 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2__Impl"
-    // InternalChartDSL.g:16339:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
+    // InternalChartDSL.g:17349:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
     public final void rule__XConstructorCall__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16343:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
-            // InternalChartDSL.g:16344:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalChartDSL.g:17353:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
+            // InternalChartDSL.g:17354:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
             {
-            // InternalChartDSL.g:16344:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
-            // InternalChartDSL.g:16345:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            // InternalChartDSL.g:17354:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalChartDSL.g:17355:2: ( rule__XConstructorCall__Group_3_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); 
             }
-            // InternalChartDSL.g:16346:2: ( rule__XConstructorCall__Group_3_2__0 )*
-            loop137:
+            // InternalChartDSL.g:17356:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            loop150:
             do {
-                int alt137=2;
-                int LA137_0 = input.LA(1);
+                int alt150=2;
+                int LA150_0 = input.LA(1);
 
-                if ( (LA137_0==99) ) {
-                    alt137=1;
+                if ( (LA150_0==114) ) {
+                    alt150=1;
                 }
 
 
-                switch (alt137) {
+                switch (alt150) {
             	case 1 :
-            	    // InternalChartDSL.g:16346:3: rule__XConstructorCall__Group_3_2__0
+            	    // InternalChartDSL.g:17356:3: rule__XConstructorCall__Group_3_2__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XConstructorCall__Group_3_2__0();
 
             	    state._fsp--;
@@ -54382,7 +57771,7 @@
             	    break;
 
             	default :
-            	    break loop137;
+            	    break loop150;
                 }
             } while (true);
 
@@ -54411,14 +57800,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3"
-    // InternalChartDSL.g:16354:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
+    // InternalChartDSL.g:17364:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
     public final void rule__XConstructorCall__Group_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16358:1: ( rule__XConstructorCall__Group_3__3__Impl )
-            // InternalChartDSL.g:16359:2: rule__XConstructorCall__Group_3__3__Impl
+            // InternalChartDSL.g:17368:1: ( rule__XConstructorCall__Group_3__3__Impl )
+            // InternalChartDSL.g:17369:2: rule__XConstructorCall__Group_3__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3__3__Impl();
@@ -54444,17 +57833,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3__Impl"
-    // InternalChartDSL.g:16365:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
+    // InternalChartDSL.g:17375:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
     public final void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16369:1: ( ( '>' ) )
-            // InternalChartDSL.g:16370:1: ( '>' )
+            // InternalChartDSL.g:17379:1: ( ( '>' ) )
+            // InternalChartDSL.g:17380:1: ( '>' )
             {
-            // InternalChartDSL.g:16370:1: ( '>' )
-            // InternalChartDSL.g:16371:2: '>'
+            // InternalChartDSL.g:17380:1: ( '>' )
+            // InternalChartDSL.g:17381:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
@@ -54485,16 +57874,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0"
-    // InternalChartDSL.g:16381:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
+    // InternalChartDSL.g:17391:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
     public final void rule__XConstructorCall__Group_3_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16385:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
-            // InternalChartDSL.g:16386:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
+            // InternalChartDSL.g:17395:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
+            // InternalChartDSL.g:17396:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_103);
             rule__XConstructorCall__Group_3_2__0__Impl();
 
             state._fsp--;
@@ -54523,22 +57912,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0__Impl"
-    // InternalChartDSL.g:16393:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:17403:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
     public final void rule__XConstructorCall__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16397:1: ( ( ',' ) )
-            // InternalChartDSL.g:16398:1: ( ',' )
+            // InternalChartDSL.g:17407:1: ( ( ',' ) )
+            // InternalChartDSL.g:17408:1: ( ',' )
             {
-            // InternalChartDSL.g:16398:1: ( ',' )
-            // InternalChartDSL.g:16399:2: ','
+            // InternalChartDSL.g:17408:1: ( ',' )
+            // InternalChartDSL.g:17409:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
             }
@@ -54564,14 +57953,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1"
-    // InternalChartDSL.g:16408:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
+    // InternalChartDSL.g:17418:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
     public final void rule__XConstructorCall__Group_3_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16412:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
-            // InternalChartDSL.g:16413:2: rule__XConstructorCall__Group_3_2__1__Impl
+            // InternalChartDSL.g:17422:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
+            // InternalChartDSL.g:17423:2: rule__XConstructorCall__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3_2__1__Impl();
@@ -54597,23 +57986,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1__Impl"
-    // InternalChartDSL.g:16419:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
+    // InternalChartDSL.g:17429:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
     public final void rule__XConstructorCall__Group_3_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16423:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
-            // InternalChartDSL.g:16424:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalChartDSL.g:17433:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
+            // InternalChartDSL.g:17434:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
             {
-            // InternalChartDSL.g:16424:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
-            // InternalChartDSL.g:16425:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalChartDSL.g:17434:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalChartDSL.g:17435:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); 
             }
-            // InternalChartDSL.g:16426:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
-            // InternalChartDSL.g:16426:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
+            // InternalChartDSL.g:17436:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalChartDSL.g:17436:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_2_1();
@@ -54648,16 +58037,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0"
-    // InternalChartDSL.g:16435:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
+    // InternalChartDSL.g:17445:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
     public final void rule__XConstructorCall__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16439:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
-            // InternalChartDSL.g:16440:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
+            // InternalChartDSL.g:17449:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
+            // InternalChartDSL.g:17450:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
             {
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_105);
             rule__XConstructorCall__Group_4__0__Impl();
 
             state._fsp--;
@@ -54686,23 +58075,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0__Impl"
-    // InternalChartDSL.g:16447:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
+    // InternalChartDSL.g:17457:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
     public final void rule__XConstructorCall__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16451:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
-            // InternalChartDSL.g:16452:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalChartDSL.g:17461:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
+            // InternalChartDSL.g:17462:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
             {
-            // InternalChartDSL.g:16452:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
-            // InternalChartDSL.g:16453:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalChartDSL.g:17462:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalChartDSL.g:17463:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); 
             }
-            // InternalChartDSL.g:16454:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
-            // InternalChartDSL.g:16454:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
+            // InternalChartDSL.g:17464:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalChartDSL.g:17464:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0();
@@ -54737,16 +58126,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1"
-    // InternalChartDSL.g:16462:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
+    // InternalChartDSL.g:17472:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
     public final void rule__XConstructorCall__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16466:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
-            // InternalChartDSL.g:16467:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
+            // InternalChartDSL.g:17476:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
+            // InternalChartDSL.g:17477:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
             {
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_105);
             rule__XConstructorCall__Group_4__1__Impl();
 
             state._fsp--;
@@ -54775,31 +58164,31 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1__Impl"
-    // InternalChartDSL.g:16474:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
+    // InternalChartDSL.g:17484:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
     public final void rule__XConstructorCall__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16478:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
-            // InternalChartDSL.g:16479:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalChartDSL.g:17488:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
+            // InternalChartDSL.g:17489:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
             {
-            // InternalChartDSL.g:16479:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
-            // InternalChartDSL.g:16480:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            // InternalChartDSL.g:17489:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalChartDSL.g:17490:2: ( rule__XConstructorCall__Alternatives_4_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); 
             }
-            // InternalChartDSL.g:16481:2: ( rule__XConstructorCall__Alternatives_4_1 )?
-            int alt138=2;
-            int LA138_0 = input.LA(1);
+            // InternalChartDSL.g:17491:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            int alt151=2;
+            int LA151_0 = input.LA(1);
 
-            if ( ((LA138_0>=RULE_STRING && LA138_0<=RULE_DECIMAL)||LA138_0==27||LA138_0==31||(LA138_0>=34 && LA138_0<=35)||LA138_0==40||(LA138_0>=45 && LA138_0<=50)||LA138_0==72||LA138_0==97||(LA138_0>=101 && LA138_0<=102)||LA138_0==104||LA138_0==106||(LA138_0>=110 && LA138_0<=118)||LA138_0==120||LA138_0==152||LA138_0==154) ) {
-                alt138=1;
+            if ( ((LA151_0>=RULE_STRING && LA151_0<=RULE_DECIMAL)||LA151_0==27||LA151_0==31||(LA151_0>=34 && LA151_0<=35)||LA151_0==40||(LA151_0>=45 && LA151_0<=50)||LA151_0==79||LA151_0==112||(LA151_0>=116 && LA151_0<=117)||LA151_0==119||LA151_0==121||(LA151_0>=125 && LA151_0<=133)||LA151_0==135||LA151_0==169||LA151_0==171) ) {
+                alt151=1;
             }
-            switch (alt138) {
+            switch (alt151) {
                 case 1 :
-                    // InternalChartDSL.g:16481:3: rule__XConstructorCall__Alternatives_4_1
+                    // InternalChartDSL.g:17491:3: rule__XConstructorCall__Alternatives_4_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Alternatives_4_1();
@@ -54837,14 +58226,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2"
-    // InternalChartDSL.g:16489:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
+    // InternalChartDSL.g:17499:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
     public final void rule__XConstructorCall__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16493:1: ( rule__XConstructorCall__Group_4__2__Impl )
-            // InternalChartDSL.g:16494:2: rule__XConstructorCall__Group_4__2__Impl
+            // InternalChartDSL.g:17503:1: ( rule__XConstructorCall__Group_4__2__Impl )
+            // InternalChartDSL.g:17504:2: rule__XConstructorCall__Group_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4__2__Impl();
@@ -54870,22 +58259,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2__Impl"
-    // InternalChartDSL.g:16500:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
+    // InternalChartDSL.g:17510:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
     public final void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16504:1: ( ( ')' ) )
-            // InternalChartDSL.g:16505:1: ( ')' )
+            // InternalChartDSL.g:17514:1: ( ( ')' ) )
+            // InternalChartDSL.g:17515:1: ( ')' )
             {
-            // InternalChartDSL.g:16505:1: ( ')' )
-            // InternalChartDSL.g:16506:2: ')'
+            // InternalChartDSL.g:17515:1: ( ')' )
+            // InternalChartDSL.g:17516:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
             }
@@ -54911,16 +58300,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0"
-    // InternalChartDSL.g:16516:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
+    // InternalChartDSL.g:17526:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
     public final void rule__XConstructorCall__Group_4_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16520:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
-            // InternalChartDSL.g:16521:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
+            // InternalChartDSL.g:17530:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
+            // InternalChartDSL.g:17531:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XConstructorCall__Group_4_1_1__0__Impl();
 
             state._fsp--;
@@ -54949,23 +58338,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0__Impl"
-    // InternalChartDSL.g:16528:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
+    // InternalChartDSL.g:17538:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
     public final void rule__XConstructorCall__Group_4_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16532:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
-            // InternalChartDSL.g:16533:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalChartDSL.g:17542:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
+            // InternalChartDSL.g:17543:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
             {
-            // InternalChartDSL.g:16533:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
-            // InternalChartDSL.g:16534:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalChartDSL.g:17543:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalChartDSL.g:17544:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); 
             }
-            // InternalChartDSL.g:16535:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
-            // InternalChartDSL.g:16535:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
+            // InternalChartDSL.g:17545:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalChartDSL.g:17545:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_0();
@@ -55000,14 +58389,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1"
-    // InternalChartDSL.g:16543:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
+    // InternalChartDSL.g:17553:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
     public final void rule__XConstructorCall__Group_4_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16547:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
-            // InternalChartDSL.g:16548:2: rule__XConstructorCall__Group_4_1_1__1__Impl
+            // InternalChartDSL.g:17557:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
+            // InternalChartDSL.g:17558:2: rule__XConstructorCall__Group_4_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1__1__Impl();
@@ -55033,37 +58422,37 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1__Impl"
-    // InternalChartDSL.g:16554:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
+    // InternalChartDSL.g:17564:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
     public final void rule__XConstructorCall__Group_4_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16558:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
-            // InternalChartDSL.g:16559:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalChartDSL.g:17568:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
+            // InternalChartDSL.g:17569:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
             {
-            // InternalChartDSL.g:16559:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
-            // InternalChartDSL.g:16560:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            // InternalChartDSL.g:17569:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalChartDSL.g:17570:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); 
             }
-            // InternalChartDSL.g:16561:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
-            loop139:
+            // InternalChartDSL.g:17571:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            loop152:
             do {
-                int alt139=2;
-                int LA139_0 = input.LA(1);
+                int alt152=2;
+                int LA152_0 = input.LA(1);
 
-                if ( (LA139_0==99) ) {
-                    alt139=1;
+                if ( (LA152_0==114) ) {
+                    alt152=1;
                 }
 
 
-                switch (alt139) {
+                switch (alt152) {
             	case 1 :
-            	    // InternalChartDSL.g:16561:3: rule__XConstructorCall__Group_4_1_1_1__0
+            	    // InternalChartDSL.g:17571:3: rule__XConstructorCall__Group_4_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XConstructorCall__Group_4_1_1_1__0();
 
             	    state._fsp--;
@@ -55073,7 +58462,7 @@
             	    break;
 
             	default :
-            	    break loop139;
+            	    break loop152;
                 }
             } while (true);
 
@@ -55102,16 +58491,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0"
-    // InternalChartDSL.g:16570:1: rule__XConstructorCall__Group_4_1_1_1__0 : rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 ;
+    // InternalChartDSL.g:17580:1: rule__XConstructorCall__Group_4_1_1_1__0 : rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 ;
     public final void rule__XConstructorCall__Group_4_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16574:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
-            // InternalChartDSL.g:16575:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
+            // InternalChartDSL.g:17584:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
+            // InternalChartDSL.g:17585:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XConstructorCall__Group_4_1_1_1__0__Impl();
 
             state._fsp--;
@@ -55140,22 +58529,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0__Impl"
-    // InternalChartDSL.g:16582:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:17592:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XConstructorCall__Group_4_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16586:1: ( ( ',' ) )
-            // InternalChartDSL.g:16587:1: ( ',' )
+            // InternalChartDSL.g:17596:1: ( ( ',' ) )
+            // InternalChartDSL.g:17597:1: ( ',' )
             {
-            // InternalChartDSL.g:16587:1: ( ',' )
-            // InternalChartDSL.g:16588:2: ','
+            // InternalChartDSL.g:17597:1: ( ',' )
+            // InternalChartDSL.g:17598:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
             }
@@ -55181,14 +58570,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1"
-    // InternalChartDSL.g:16597:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
+    // InternalChartDSL.g:17607:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
     public final void rule__XConstructorCall__Group_4_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16601:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
-            // InternalChartDSL.g:16602:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
+            // InternalChartDSL.g:17611:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
+            // InternalChartDSL.g:17612:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1_1__1__Impl();
@@ -55214,23 +58603,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1__Impl"
-    // InternalChartDSL.g:16608:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
+    // InternalChartDSL.g:17618:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
     public final void rule__XConstructorCall__Group_4_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16612:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
-            // InternalChartDSL.g:16613:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalChartDSL.g:17622:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
+            // InternalChartDSL.g:17623:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
             {
-            // InternalChartDSL.g:16613:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
-            // InternalChartDSL.g:16614:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalChartDSL.g:17623:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalChartDSL.g:17624:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); 
             }
-            // InternalChartDSL.g:16615:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
-            // InternalChartDSL.g:16615:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
+            // InternalChartDSL.g:17625:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalChartDSL.g:17625:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1();
@@ -55265,16 +58654,16 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0"
-    // InternalChartDSL.g:16624:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
+    // InternalChartDSL.g:17634:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
     public final void rule__XBooleanLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16628:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
-            // InternalChartDSL.g:16629:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
+            // InternalChartDSL.g:17638:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
+            // InternalChartDSL.g:17639:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
             {
-            pushFollow(FOLLOW_125);
+            pushFollow(FOLLOW_130);
             rule__XBooleanLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -55303,23 +58692,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0__Impl"
-    // InternalChartDSL.g:16636:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:17646:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16640:1: ( ( () ) )
-            // InternalChartDSL.g:16641:1: ( () )
+            // InternalChartDSL.g:17650:1: ( ( () ) )
+            // InternalChartDSL.g:17651:1: ( () )
             {
-            // InternalChartDSL.g:16641:1: ( () )
-            // InternalChartDSL.g:16642:2: ()
+            // InternalChartDSL.g:17651:1: ( () )
+            // InternalChartDSL.g:17652:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); 
             }
-            // InternalChartDSL.g:16643:2: ()
-            // InternalChartDSL.g:16643:3: 
+            // InternalChartDSL.g:17653:2: ()
+            // InternalChartDSL.g:17653:3: 
             {
             }
 
@@ -55344,14 +58733,14 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1"
-    // InternalChartDSL.g:16651:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
+    // InternalChartDSL.g:17661:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
     public final void rule__XBooleanLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16655:1: ( rule__XBooleanLiteral__Group__1__Impl )
-            // InternalChartDSL.g:16656:2: rule__XBooleanLiteral__Group__1__Impl
+            // InternalChartDSL.g:17665:1: ( rule__XBooleanLiteral__Group__1__Impl )
+            // InternalChartDSL.g:17666:2: rule__XBooleanLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Group__1__Impl();
@@ -55377,23 +58766,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1__Impl"
-    // InternalChartDSL.g:16662:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
+    // InternalChartDSL.g:17672:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
     public final void rule__XBooleanLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16666:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
-            // InternalChartDSL.g:16667:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalChartDSL.g:17676:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
+            // InternalChartDSL.g:17677:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
             {
-            // InternalChartDSL.g:16667:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
-            // InternalChartDSL.g:16668:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalChartDSL.g:17677:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalChartDSL.g:17678:2: ( rule__XBooleanLiteral__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); 
             }
-            // InternalChartDSL.g:16669:2: ( rule__XBooleanLiteral__Alternatives_1 )
-            // InternalChartDSL.g:16669:3: rule__XBooleanLiteral__Alternatives_1
+            // InternalChartDSL.g:17679:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalChartDSL.g:17679:3: rule__XBooleanLiteral__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Alternatives_1();
@@ -55428,16 +58817,16 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0"
-    // InternalChartDSL.g:16678:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
+    // InternalChartDSL.g:17688:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
     public final void rule__XNullLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16682:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
-            // InternalChartDSL.g:16683:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
+            // InternalChartDSL.g:17692:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
+            // InternalChartDSL.g:17693:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
             {
-            pushFollow(FOLLOW_126);
+            pushFollow(FOLLOW_131);
             rule__XNullLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -55466,23 +58855,23 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0__Impl"
-    // InternalChartDSL.g:16690:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:17700:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNullLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16694:1: ( ( () ) )
-            // InternalChartDSL.g:16695:1: ( () )
+            // InternalChartDSL.g:17704:1: ( ( () ) )
+            // InternalChartDSL.g:17705:1: ( () )
             {
-            // InternalChartDSL.g:16695:1: ( () )
-            // InternalChartDSL.g:16696:2: ()
+            // InternalChartDSL.g:17705:1: ( () )
+            // InternalChartDSL.g:17706:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); 
             }
-            // InternalChartDSL.g:16697:2: ()
-            // InternalChartDSL.g:16697:3: 
+            // InternalChartDSL.g:17707:2: ()
+            // InternalChartDSL.g:17707:3: 
             {
             }
 
@@ -55507,14 +58896,14 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1"
-    // InternalChartDSL.g:16705:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
+    // InternalChartDSL.g:17715:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
     public final void rule__XNullLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16709:1: ( rule__XNullLiteral__Group__1__Impl )
-            // InternalChartDSL.g:16710:2: rule__XNullLiteral__Group__1__Impl
+            // InternalChartDSL.g:17719:1: ( rule__XNullLiteral__Group__1__Impl )
+            // InternalChartDSL.g:17720:2: rule__XNullLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNullLiteral__Group__1__Impl();
@@ -55540,22 +58929,22 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1__Impl"
-    // InternalChartDSL.g:16716:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
+    // InternalChartDSL.g:17726:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
     public final void rule__XNullLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16720:1: ( ( 'null' ) )
-            // InternalChartDSL.g:16721:1: ( 'null' )
+            // InternalChartDSL.g:17730:1: ( ( 'null' ) )
+            // InternalChartDSL.g:17731:1: ( 'null' )
             {
-            // InternalChartDSL.g:16721:1: ( 'null' )
-            // InternalChartDSL.g:16722:2: 'null'
+            // InternalChartDSL.g:17731:1: ( 'null' )
+            // InternalChartDSL.g:17732:2: 'null'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
             }
-            match(input,114,FOLLOW_2); if (state.failed) return ;
+            match(input,129,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
             }
@@ -55581,16 +58970,16 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0"
-    // InternalChartDSL.g:16732:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
+    // InternalChartDSL.g:17742:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
     public final void rule__XNumberLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16736:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
-            // InternalChartDSL.g:16737:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
+            // InternalChartDSL.g:17746:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
+            // InternalChartDSL.g:17747:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_32);
             rule__XNumberLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -55619,23 +59008,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0__Impl"
-    // InternalChartDSL.g:16744:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:17754:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16748:1: ( ( () ) )
-            // InternalChartDSL.g:16749:1: ( () )
+            // InternalChartDSL.g:17758:1: ( ( () ) )
+            // InternalChartDSL.g:17759:1: ( () )
             {
-            // InternalChartDSL.g:16749:1: ( () )
-            // InternalChartDSL.g:16750:2: ()
+            // InternalChartDSL.g:17759:1: ( () )
+            // InternalChartDSL.g:17760:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); 
             }
-            // InternalChartDSL.g:16751:2: ()
-            // InternalChartDSL.g:16751:3: 
+            // InternalChartDSL.g:17761:2: ()
+            // InternalChartDSL.g:17761:3: 
             {
             }
 
@@ -55660,14 +59049,14 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1"
-    // InternalChartDSL.g:16759:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
+    // InternalChartDSL.g:17769:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
     public final void rule__XNumberLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16763:1: ( rule__XNumberLiteral__Group__1__Impl )
-            // InternalChartDSL.g:16764:2: rule__XNumberLiteral__Group__1__Impl
+            // InternalChartDSL.g:17773:1: ( rule__XNumberLiteral__Group__1__Impl )
+            // InternalChartDSL.g:17774:2: rule__XNumberLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__Group__1__Impl();
@@ -55693,23 +59082,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1__Impl"
-    // InternalChartDSL.g:16770:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
+    // InternalChartDSL.g:17780:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
     public final void rule__XNumberLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16774:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
-            // InternalChartDSL.g:16775:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalChartDSL.g:17784:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
+            // InternalChartDSL.g:17785:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
             {
-            // InternalChartDSL.g:16775:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
-            // InternalChartDSL.g:16776:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalChartDSL.g:17785:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalChartDSL.g:17786:2: ( rule__XNumberLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalChartDSL.g:16777:2: ( rule__XNumberLiteral__ValueAssignment_1 )
-            // InternalChartDSL.g:16777:3: rule__XNumberLiteral__ValueAssignment_1
+            // InternalChartDSL.g:17787:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalChartDSL.g:17787:3: rule__XNumberLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__ValueAssignment_1();
@@ -55744,16 +59133,16 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0"
-    // InternalChartDSL.g:16786:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
+    // InternalChartDSL.g:17796:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
     public final void rule__XStringLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16790:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
-            // InternalChartDSL.g:16791:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
+            // InternalChartDSL.g:17800:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
+            // InternalChartDSL.g:17801:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
             {
-            pushFollow(FOLLOW_16);
+            pushFollow(FOLLOW_15);
             rule__XStringLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -55782,23 +59171,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0__Impl"
-    // InternalChartDSL.g:16798:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:17808:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XStringLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16802:1: ( ( () ) )
-            // InternalChartDSL.g:16803:1: ( () )
+            // InternalChartDSL.g:17812:1: ( ( () ) )
+            // InternalChartDSL.g:17813:1: ( () )
             {
-            // InternalChartDSL.g:16803:1: ( () )
-            // InternalChartDSL.g:16804:2: ()
+            // InternalChartDSL.g:17813:1: ( () )
+            // InternalChartDSL.g:17814:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); 
             }
-            // InternalChartDSL.g:16805:2: ()
-            // InternalChartDSL.g:16805:3: 
+            // InternalChartDSL.g:17815:2: ()
+            // InternalChartDSL.g:17815:3: 
             {
             }
 
@@ -55823,14 +59212,14 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1"
-    // InternalChartDSL.g:16813:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
+    // InternalChartDSL.g:17823:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
     public final void rule__XStringLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16817:1: ( rule__XStringLiteral__Group__1__Impl )
-            // InternalChartDSL.g:16818:2: rule__XStringLiteral__Group__1__Impl
+            // InternalChartDSL.g:17827:1: ( rule__XStringLiteral__Group__1__Impl )
+            // InternalChartDSL.g:17828:2: rule__XStringLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__Group__1__Impl();
@@ -55856,23 +59245,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1__Impl"
-    // InternalChartDSL.g:16824:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
+    // InternalChartDSL.g:17834:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
     public final void rule__XStringLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16828:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
-            // InternalChartDSL.g:16829:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalChartDSL.g:17838:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
+            // InternalChartDSL.g:17839:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
             {
-            // InternalChartDSL.g:16829:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
-            // InternalChartDSL.g:16830:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalChartDSL.g:17839:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalChartDSL.g:17840:2: ( rule__XStringLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalChartDSL.g:16831:2: ( rule__XStringLiteral__ValueAssignment_1 )
-            // InternalChartDSL.g:16831:3: rule__XStringLiteral__ValueAssignment_1
+            // InternalChartDSL.g:17841:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalChartDSL.g:17841:3: rule__XStringLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__ValueAssignment_1();
@@ -55907,16 +59296,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0"
-    // InternalChartDSL.g:16840:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
+    // InternalChartDSL.g:17850:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
     public final void rule__XTypeLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16844:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
-            // InternalChartDSL.g:16845:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
+            // InternalChartDSL.g:17854:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
+            // InternalChartDSL.g:17855:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
             {
-            pushFollow(FOLLOW_127);
+            pushFollow(FOLLOW_132);
             rule__XTypeLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -55945,23 +59334,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0__Impl"
-    // InternalChartDSL.g:16852:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:17862:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16856:1: ( ( () ) )
-            // InternalChartDSL.g:16857:1: ( () )
+            // InternalChartDSL.g:17866:1: ( ( () ) )
+            // InternalChartDSL.g:17867:1: ( () )
             {
-            // InternalChartDSL.g:16857:1: ( () )
-            // InternalChartDSL.g:16858:2: ()
+            // InternalChartDSL.g:17867:1: ( () )
+            // InternalChartDSL.g:17868:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); 
             }
-            // InternalChartDSL.g:16859:2: ()
-            // InternalChartDSL.g:16859:3: 
+            // InternalChartDSL.g:17869:2: ()
+            // InternalChartDSL.g:17869:3: 
             {
             }
 
@@ -55986,16 +59375,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1"
-    // InternalChartDSL.g:16867:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
+    // InternalChartDSL.g:17877:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
     public final void rule__XTypeLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16871:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
-            // InternalChartDSL.g:16872:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
+            // InternalChartDSL.g:17881:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
+            // InternalChartDSL.g:17882:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_62);
             rule__XTypeLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -56024,22 +59413,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1__Impl"
-    // InternalChartDSL.g:16879:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
+    // InternalChartDSL.g:17889:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
     public final void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16883:1: ( ( 'typeof' ) )
-            // InternalChartDSL.g:16884:1: ( 'typeof' )
+            // InternalChartDSL.g:17893:1: ( ( 'typeof' ) )
+            // InternalChartDSL.g:17894:1: ( 'typeof' )
             {
-            // InternalChartDSL.g:16884:1: ( 'typeof' )
-            // InternalChartDSL.g:16885:2: 'typeof'
+            // InternalChartDSL.g:17894:1: ( 'typeof' )
+            // InternalChartDSL.g:17895:2: 'typeof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
             }
-            match(input,115,FOLLOW_2); if (state.failed) return ;
+            match(input,130,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
             }
@@ -56065,14 +59454,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2"
-    // InternalChartDSL.g:16894:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
+    // InternalChartDSL.g:17904:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
     public final void rule__XTypeLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16898:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
-            // InternalChartDSL.g:16899:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
+            // InternalChartDSL.g:17908:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
+            // InternalChartDSL.g:17909:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__XTypeLiteral__Group__2__Impl();
@@ -56103,22 +59492,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2__Impl"
-    // InternalChartDSL.g:16906:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
+    // InternalChartDSL.g:17916:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
     public final void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16910:1: ( ( '(' ) )
-            // InternalChartDSL.g:16911:1: ( '(' )
+            // InternalChartDSL.g:17920:1: ( ( '(' ) )
+            // InternalChartDSL.g:17921:1: ( '(' )
             {
-            // InternalChartDSL.g:16911:1: ( '(' )
-            // InternalChartDSL.g:16912:2: '('
+            // InternalChartDSL.g:17921:1: ( '(' )
+            // InternalChartDSL.g:17922:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -56144,16 +59533,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3"
-    // InternalChartDSL.g:16921:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
+    // InternalChartDSL.g:17931:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
     public final void rule__XTypeLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16925:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
-            // InternalChartDSL.g:16926:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
+            // InternalChartDSL.g:17935:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
+            // InternalChartDSL.g:17936:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
             {
-            pushFollow(FOLLOW_128);
+            pushFollow(FOLLOW_133);
             rule__XTypeLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -56182,23 +59571,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3__Impl"
-    // InternalChartDSL.g:16933:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
+    // InternalChartDSL.g:17943:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
     public final void rule__XTypeLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16937:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
-            // InternalChartDSL.g:16938:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalChartDSL.g:17947:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
+            // InternalChartDSL.g:17948:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
             {
-            // InternalChartDSL.g:16938:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
-            // InternalChartDSL.g:16939:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalChartDSL.g:17948:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalChartDSL.g:17949:2: ( rule__XTypeLiteral__TypeAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); 
             }
-            // InternalChartDSL.g:16940:2: ( rule__XTypeLiteral__TypeAssignment_3 )
-            // InternalChartDSL.g:16940:3: rule__XTypeLiteral__TypeAssignment_3
+            // InternalChartDSL.g:17950:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalChartDSL.g:17950:3: rule__XTypeLiteral__TypeAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__TypeAssignment_3();
@@ -56233,16 +59622,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4"
-    // InternalChartDSL.g:16948:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
+    // InternalChartDSL.g:17958:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
     public final void rule__XTypeLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16952:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
-            // InternalChartDSL.g:16953:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
+            // InternalChartDSL.g:17962:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
+            // InternalChartDSL.g:17963:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
             {
-            pushFollow(FOLLOW_128);
+            pushFollow(FOLLOW_133);
             rule__XTypeLiteral__Group__4__Impl();
 
             state._fsp--;
@@ -56271,37 +59660,37 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4__Impl"
-    // InternalChartDSL.g:16960:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
+    // InternalChartDSL.g:17970:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
     public final void rule__XTypeLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16964:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
-            // InternalChartDSL.g:16965:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalChartDSL.g:17974:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
+            // InternalChartDSL.g:17975:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
             {
-            // InternalChartDSL.g:16965:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
-            // InternalChartDSL.g:16966:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            // InternalChartDSL.g:17975:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalChartDSL.g:17976:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); 
             }
-            // InternalChartDSL.g:16967:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
-            loop140:
+            // InternalChartDSL.g:17977:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            loop153:
             do {
-                int alt140=2;
-                int LA140_0 = input.LA(1);
+                int alt153=2;
+                int LA153_0 = input.LA(1);
 
-                if ( (LA140_0==102) ) {
-                    alt140=1;
+                if ( (LA153_0==117) ) {
+                    alt153=1;
                 }
 
 
-                switch (alt140) {
+                switch (alt153) {
             	case 1 :
-            	    // InternalChartDSL.g:16967:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
+            	    // InternalChartDSL.g:17977:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
             	    {
-            	    pushFollow(FOLLOW_129);
+            	    pushFollow(FOLLOW_134);
             	    rule__XTypeLiteral__ArrayDimensionsAssignment_4();
 
             	    state._fsp--;
@@ -56311,7 +59700,7 @@
             	    break;
 
             	default :
-            	    break loop140;
+            	    break loop153;
                 }
             } while (true);
 
@@ -56340,14 +59729,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5"
-    // InternalChartDSL.g:16975:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
+    // InternalChartDSL.g:17985:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
     public final void rule__XTypeLiteral__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16979:1: ( rule__XTypeLiteral__Group__5__Impl )
-            // InternalChartDSL.g:16980:2: rule__XTypeLiteral__Group__5__Impl
+            // InternalChartDSL.g:17989:1: ( rule__XTypeLiteral__Group__5__Impl )
+            // InternalChartDSL.g:17990:2: rule__XTypeLiteral__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__Group__5__Impl();
@@ -56373,22 +59762,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5__Impl"
-    // InternalChartDSL.g:16986:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
+    // InternalChartDSL.g:17996:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
     public final void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:16990:1: ( ( ')' ) )
-            // InternalChartDSL.g:16991:1: ( ')' )
+            // InternalChartDSL.g:18000:1: ( ( ')' ) )
+            // InternalChartDSL.g:18001:1: ( ')' )
             {
-            // InternalChartDSL.g:16991:1: ( ')' )
-            // InternalChartDSL.g:16992:2: ')'
+            // InternalChartDSL.g:18001:1: ( ')' )
+            // InternalChartDSL.g:18002:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
             }
@@ -56414,16 +59803,16 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0"
-    // InternalChartDSL.g:17002:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
+    // InternalChartDSL.g:18012:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
     public final void rule__XThrowExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17006:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
-            // InternalChartDSL.g:17007:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
+            // InternalChartDSL.g:18016:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
+            // InternalChartDSL.g:18017:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
             {
-            pushFollow(FOLLOW_130);
+            pushFollow(FOLLOW_135);
             rule__XThrowExpression__Group__0__Impl();
 
             state._fsp--;
@@ -56452,23 +59841,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0__Impl"
-    // InternalChartDSL.g:17014:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:18024:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
     public final void rule__XThrowExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17018:1: ( ( () ) )
-            // InternalChartDSL.g:17019:1: ( () )
+            // InternalChartDSL.g:18028:1: ( ( () ) )
+            // InternalChartDSL.g:18029:1: ( () )
             {
-            // InternalChartDSL.g:17019:1: ( () )
-            // InternalChartDSL.g:17020:2: ()
+            // InternalChartDSL.g:18029:1: ( () )
+            // InternalChartDSL.g:18030:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); 
             }
-            // InternalChartDSL.g:17021:2: ()
-            // InternalChartDSL.g:17021:3: 
+            // InternalChartDSL.g:18031:2: ()
+            // InternalChartDSL.g:18031:3: 
             {
             }
 
@@ -56493,16 +59882,16 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1"
-    // InternalChartDSL.g:17029:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
+    // InternalChartDSL.g:18039:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
     public final void rule__XThrowExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17033:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
-            // InternalChartDSL.g:17034:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
+            // InternalChartDSL.g:18043:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
+            // InternalChartDSL.g:18044:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XThrowExpression__Group__1__Impl();
 
             state._fsp--;
@@ -56531,22 +59920,22 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1__Impl"
-    // InternalChartDSL.g:17041:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
+    // InternalChartDSL.g:18051:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
     public final void rule__XThrowExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17045:1: ( ( 'throw' ) )
-            // InternalChartDSL.g:17046:1: ( 'throw' )
+            // InternalChartDSL.g:18055:1: ( ( 'throw' ) )
+            // InternalChartDSL.g:18056:1: ( 'throw' )
             {
-            // InternalChartDSL.g:17046:1: ( 'throw' )
-            // InternalChartDSL.g:17047:2: 'throw'
+            // InternalChartDSL.g:18056:1: ( 'throw' )
+            // InternalChartDSL.g:18057:2: 'throw'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
             }
-            match(input,116,FOLLOW_2); if (state.failed) return ;
+            match(input,131,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
             }
@@ -56572,14 +59961,14 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2"
-    // InternalChartDSL.g:17056:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
+    // InternalChartDSL.g:18066:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
     public final void rule__XThrowExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17060:1: ( rule__XThrowExpression__Group__2__Impl )
-            // InternalChartDSL.g:17061:2: rule__XThrowExpression__Group__2__Impl
+            // InternalChartDSL.g:18070:1: ( rule__XThrowExpression__Group__2__Impl )
+            // InternalChartDSL.g:18071:2: rule__XThrowExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__Group__2__Impl();
@@ -56605,23 +59994,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2__Impl"
-    // InternalChartDSL.g:17067:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
+    // InternalChartDSL.g:18077:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
     public final void rule__XThrowExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17071:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
-            // InternalChartDSL.g:17072:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalChartDSL.g:18081:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
+            // InternalChartDSL.g:18082:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
             {
-            // InternalChartDSL.g:17072:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
-            // InternalChartDSL.g:17073:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalChartDSL.g:18082:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalChartDSL.g:18083:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalChartDSL.g:17074:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
-            // InternalChartDSL.g:17074:3: rule__XThrowExpression__ExpressionAssignment_2
+            // InternalChartDSL.g:18084:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalChartDSL.g:18084:3: rule__XThrowExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__ExpressionAssignment_2();
@@ -56656,16 +60045,16 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0"
-    // InternalChartDSL.g:17083:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
+    // InternalChartDSL.g:18093:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
     public final void rule__XReturnExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17087:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
-            // InternalChartDSL.g:17088:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
+            // InternalChartDSL.g:18097:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
+            // InternalChartDSL.g:18098:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
             {
-            pushFollow(FOLLOW_131);
+            pushFollow(FOLLOW_136);
             rule__XReturnExpression__Group__0__Impl();
 
             state._fsp--;
@@ -56694,23 +60083,23 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0__Impl"
-    // InternalChartDSL.g:17095:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:18105:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
     public final void rule__XReturnExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17099:1: ( ( () ) )
-            // InternalChartDSL.g:17100:1: ( () )
+            // InternalChartDSL.g:18109:1: ( ( () ) )
+            // InternalChartDSL.g:18110:1: ( () )
             {
-            // InternalChartDSL.g:17100:1: ( () )
-            // InternalChartDSL.g:17101:2: ()
+            // InternalChartDSL.g:18110:1: ( () )
+            // InternalChartDSL.g:18111:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); 
             }
-            // InternalChartDSL.g:17102:2: ()
-            // InternalChartDSL.g:17102:3: 
+            // InternalChartDSL.g:18112:2: ()
+            // InternalChartDSL.g:18112:3: 
             {
             }
 
@@ -56735,16 +60124,16 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1"
-    // InternalChartDSL.g:17110:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
+    // InternalChartDSL.g:18120:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
     public final void rule__XReturnExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17114:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
-            // InternalChartDSL.g:17115:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
+            // InternalChartDSL.g:18124:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
+            // InternalChartDSL.g:18125:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XReturnExpression__Group__1__Impl();
 
             state._fsp--;
@@ -56773,22 +60162,22 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1__Impl"
-    // InternalChartDSL.g:17122:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
+    // InternalChartDSL.g:18132:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
     public final void rule__XReturnExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17126:1: ( ( 'return' ) )
-            // InternalChartDSL.g:17127:1: ( 'return' )
+            // InternalChartDSL.g:18136:1: ( ( 'return' ) )
+            // InternalChartDSL.g:18137:1: ( 'return' )
             {
-            // InternalChartDSL.g:17127:1: ( 'return' )
-            // InternalChartDSL.g:17128:2: 'return'
+            // InternalChartDSL.g:18137:1: ( 'return' )
+            // InternalChartDSL.g:18138:2: 'return'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
             }
-            match(input,117,FOLLOW_2); if (state.failed) return ;
+            match(input,132,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
             }
@@ -56814,14 +60203,14 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2"
-    // InternalChartDSL.g:17137:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
+    // InternalChartDSL.g:18147:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
     public final void rule__XReturnExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17141:1: ( rule__XReturnExpression__Group__2__Impl )
-            // InternalChartDSL.g:17142:2: rule__XReturnExpression__Group__2__Impl
+            // InternalChartDSL.g:18151:1: ( rule__XReturnExpression__Group__2__Impl )
+            // InternalChartDSL.g:18152:2: rule__XReturnExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XReturnExpression__Group__2__Impl();
@@ -56847,27 +60236,27 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2__Impl"
-    // InternalChartDSL.g:17148:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
+    // InternalChartDSL.g:18158:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
     public final void rule__XReturnExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17152:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
-            // InternalChartDSL.g:17153:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalChartDSL.g:18162:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
+            // InternalChartDSL.g:18163:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
             {
-            // InternalChartDSL.g:17153:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
-            // InternalChartDSL.g:17154:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            // InternalChartDSL.g:18163:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalChartDSL.g:18164:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalChartDSL.g:17155:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
-            int alt141=2;
-            alt141 = dfa141.predict(input);
-            switch (alt141) {
+            // InternalChartDSL.g:18165:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            int alt154=2;
+            alt154 = dfa154.predict(input);
+            switch (alt154) {
                 case 1 :
-                    // InternalChartDSL.g:17155:3: rule__XReturnExpression__ExpressionAssignment_2
+                    // InternalChartDSL.g:18165:3: rule__XReturnExpression__ExpressionAssignment_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XReturnExpression__ExpressionAssignment_2();
@@ -56905,16 +60294,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0"
-    // InternalChartDSL.g:17164:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
+    // InternalChartDSL.g:18174:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
     public final void rule__XTryCatchFinallyExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17168:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
-            // InternalChartDSL.g:17169:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
+            // InternalChartDSL.g:18178:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
+            // InternalChartDSL.g:18179:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
             {
-            pushFollow(FOLLOW_132);
+            pushFollow(FOLLOW_137);
             rule__XTryCatchFinallyExpression__Group__0__Impl();
 
             state._fsp--;
@@ -56943,23 +60332,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0__Impl"
-    // InternalChartDSL.g:17176:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:18186:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
     public final void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17180:1: ( ( () ) )
-            // InternalChartDSL.g:17181:1: ( () )
+            // InternalChartDSL.g:18190:1: ( ( () ) )
+            // InternalChartDSL.g:18191:1: ( () )
             {
-            // InternalChartDSL.g:17181:1: ( () )
-            // InternalChartDSL.g:17182:2: ()
+            // InternalChartDSL.g:18191:1: ( () )
+            // InternalChartDSL.g:18192:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); 
             }
-            // InternalChartDSL.g:17183:2: ()
-            // InternalChartDSL.g:17183:3: 
+            // InternalChartDSL.g:18193:2: ()
+            // InternalChartDSL.g:18193:3: 
             {
             }
 
@@ -56984,16 +60373,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1"
-    // InternalChartDSL.g:17191:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
+    // InternalChartDSL.g:18201:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
     public final void rule__XTryCatchFinallyExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17195:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
-            // InternalChartDSL.g:17196:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
+            // InternalChartDSL.g:18205:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
+            // InternalChartDSL.g:18206:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XTryCatchFinallyExpression__Group__1__Impl();
 
             state._fsp--;
@@ -57022,22 +60411,22 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1__Impl"
-    // InternalChartDSL.g:17203:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
+    // InternalChartDSL.g:18213:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
     public final void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17207:1: ( ( 'try' ) )
-            // InternalChartDSL.g:17208:1: ( 'try' )
+            // InternalChartDSL.g:18217:1: ( ( 'try' ) )
+            // InternalChartDSL.g:18218:1: ( 'try' )
             {
-            // InternalChartDSL.g:17208:1: ( 'try' )
-            // InternalChartDSL.g:17209:2: 'try'
+            // InternalChartDSL.g:18218:1: ( 'try' )
+            // InternalChartDSL.g:18219:2: 'try'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
             }
-            match(input,118,FOLLOW_2); if (state.failed) return ;
+            match(input,133,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
             }
@@ -57063,16 +60452,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2"
-    // InternalChartDSL.g:17218:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
+    // InternalChartDSL.g:18228:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
     public final void rule__XTryCatchFinallyExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17222:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
-            // InternalChartDSL.g:17223:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
+            // InternalChartDSL.g:18232:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
+            // InternalChartDSL.g:18233:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
             {
-            pushFollow(FOLLOW_133);
+            pushFollow(FOLLOW_138);
             rule__XTryCatchFinallyExpression__Group__2__Impl();
 
             state._fsp--;
@@ -57101,23 +60490,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2__Impl"
-    // InternalChartDSL.g:17230:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
+    // InternalChartDSL.g:18240:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17234:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
-            // InternalChartDSL.g:17235:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalChartDSL.g:18244:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
+            // InternalChartDSL.g:18245:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
             {
-            // InternalChartDSL.g:17235:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
-            // InternalChartDSL.g:17236:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalChartDSL.g:18245:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalChartDSL.g:18246:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalChartDSL.g:17237:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
-            // InternalChartDSL.g:17237:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
+            // InternalChartDSL.g:18247:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalChartDSL.g:18247:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__ExpressionAssignment_2();
@@ -57152,14 +60541,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3"
-    // InternalChartDSL.g:17245:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
+    // InternalChartDSL.g:18255:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17249:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
-            // InternalChartDSL.g:17250:2: rule__XTryCatchFinallyExpression__Group__3__Impl
+            // InternalChartDSL.g:18259:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
+            // InternalChartDSL.g:18260:2: rule__XTryCatchFinallyExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group__3__Impl();
@@ -57185,23 +60574,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3__Impl"
-    // InternalChartDSL.g:17256:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
+    // InternalChartDSL.g:18266:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17260:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
-            // InternalChartDSL.g:17261:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalChartDSL.g:18270:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
+            // InternalChartDSL.g:18271:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
             {
-            // InternalChartDSL.g:17261:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
-            // InternalChartDSL.g:17262:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalChartDSL.g:18271:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalChartDSL.g:18272:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); 
             }
-            // InternalChartDSL.g:17263:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
-            // InternalChartDSL.g:17263:3: rule__XTryCatchFinallyExpression__Alternatives_3
+            // InternalChartDSL.g:18273:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalChartDSL.g:18273:3: rule__XTryCatchFinallyExpression__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Alternatives_3();
@@ -57236,16 +60625,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0"
-    // InternalChartDSL.g:17272:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
+    // InternalChartDSL.g:18282:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17276:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
-            // InternalChartDSL.g:17277:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
+            // InternalChartDSL.g:18286:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
+            // InternalChartDSL.g:18287:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
             {
-            pushFollow(FOLLOW_134);
+            pushFollow(FOLLOW_139);
             rule__XTryCatchFinallyExpression__Group_3_0__0__Impl();
 
             state._fsp--;
@@ -57274,28 +60663,28 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"
-    // InternalChartDSL.g:17284:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
+    // InternalChartDSL.g:18294:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17288:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
-            // InternalChartDSL.g:17289:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalChartDSL.g:18298:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
+            // InternalChartDSL.g:18299:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
             {
-            // InternalChartDSL.g:17289:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
-            // InternalChartDSL.g:17290:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalChartDSL.g:18299:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalChartDSL.g:18300:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
             {
-            // InternalChartDSL.g:17290:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
-            // InternalChartDSL.g:17291:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalChartDSL.g:18300:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
+            // InternalChartDSL.g:18301:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalChartDSL.g:17292:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-            // InternalChartDSL.g:17292:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            // InternalChartDSL.g:18302:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalChartDSL.g:18302:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             {
-            pushFollow(FOLLOW_135);
+            pushFollow(FOLLOW_140);
             rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
 
             state._fsp--;
@@ -57309,34 +60698,34 @@
 
             }
 
-            // InternalChartDSL.g:17295:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
-            // InternalChartDSL.g:17296:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            // InternalChartDSL.g:18305:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalChartDSL.g:18306:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalChartDSL.g:17297:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
-            loop142:
+            // InternalChartDSL.g:18307:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            loop155:
             do {
-                int alt142=2;
-                int LA142_0 = input.LA(1);
+                int alt155=2;
+                int LA155_0 = input.LA(1);
 
-                if ( (LA142_0==121) ) {
-                    int LA142_2 = input.LA(2);
+                if ( (LA155_0==136) ) {
+                    int LA155_2 = input.LA(2);
 
-                    if ( (synpred204_InternalChartDSL()) ) {
-                        alt142=1;
+                    if ( (synpred222_InternalChartDSL()) ) {
+                        alt155=1;
                     }
 
 
                 }
 
 
-                switch (alt142) {
+                switch (alt155) {
             	case 1 :
-            	    // InternalChartDSL.g:17297:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            	    // InternalChartDSL.g:18307:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             	    {
-            	    pushFollow(FOLLOW_135);
+            	    pushFollow(FOLLOW_140);
             	    rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
 
             	    state._fsp--;
@@ -57346,7 +60735,7 @@
             	    break;
 
             	default :
-            	    break loop142;
+            	    break loop155;
                 }
             } while (true);
 
@@ -57378,14 +60767,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1"
-    // InternalChartDSL.g:17306:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
+    // InternalChartDSL.g:18316:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17310:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
-            // InternalChartDSL.g:17311:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+            // InternalChartDSL.g:18320:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
+            // InternalChartDSL.g:18321:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0__1__Impl();
@@ -57411,35 +60800,35 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"
-    // InternalChartDSL.g:17317:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
+    // InternalChartDSL.g:18327:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17321:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
-            // InternalChartDSL.g:17322:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalChartDSL.g:18331:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
+            // InternalChartDSL.g:18332:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
             {
-            // InternalChartDSL.g:17322:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
-            // InternalChartDSL.g:17323:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            // InternalChartDSL.g:18332:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalChartDSL.g:18333:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); 
             }
-            // InternalChartDSL.g:17324:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
-            int alt143=2;
-            int LA143_0 = input.LA(1);
+            // InternalChartDSL.g:18334:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            int alt156=2;
+            int LA156_0 = input.LA(1);
 
-            if ( (LA143_0==119) ) {
-                int LA143_1 = input.LA(2);
+            if ( (LA156_0==134) ) {
+                int LA156_1 = input.LA(2);
 
-                if ( (synpred205_InternalChartDSL()) ) {
-                    alt143=1;
+                if ( (synpred223_InternalChartDSL()) ) {
+                    alt156=1;
                 }
             }
-            switch (alt143) {
+            switch (alt156) {
                 case 1 :
-                    // InternalChartDSL.g:17324:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+                    // InternalChartDSL.g:18334:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0_1__0();
@@ -57477,16 +60866,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0"
-    // InternalChartDSL.g:17333:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
+    // InternalChartDSL.g:18343:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17337:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
-            // InternalChartDSL.g:17338:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
+            // InternalChartDSL.g:18347:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
+            // InternalChartDSL.g:18348:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl();
 
             state._fsp--;
@@ -57515,25 +60904,25 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"
-    // InternalChartDSL.g:17345:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
+    // InternalChartDSL.g:18355:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17349:1: ( ( ( 'finally' ) ) )
-            // InternalChartDSL.g:17350:1: ( ( 'finally' ) )
+            // InternalChartDSL.g:18359:1: ( ( ( 'finally' ) ) )
+            // InternalChartDSL.g:18360:1: ( ( 'finally' ) )
             {
-            // InternalChartDSL.g:17350:1: ( ( 'finally' ) )
-            // InternalChartDSL.g:17351:2: ( 'finally' )
+            // InternalChartDSL.g:18360:1: ( ( 'finally' ) )
+            // InternalChartDSL.g:18361:2: ( 'finally' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); 
             }
-            // InternalChartDSL.g:17352:2: ( 'finally' )
-            // InternalChartDSL.g:17352:3: 'finally'
+            // InternalChartDSL.g:18362:2: ( 'finally' )
+            // InternalChartDSL.g:18362:3: 'finally'
             {
-            match(input,119,FOLLOW_2); if (state.failed) return ;
+            match(input,134,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -57562,14 +60951,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1"
-    // InternalChartDSL.g:17360:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
+    // InternalChartDSL.g:18370:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17364:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
-            // InternalChartDSL.g:17365:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+            // InternalChartDSL.g:18374:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
+            // InternalChartDSL.g:18375:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl();
@@ -57595,23 +60984,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"
-    // InternalChartDSL.g:17371:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
+    // InternalChartDSL.g:18381:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17375:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
-            // InternalChartDSL.g:17376:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalChartDSL.g:18385:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
+            // InternalChartDSL.g:18386:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
             {
-            // InternalChartDSL.g:17376:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
-            // InternalChartDSL.g:17377:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalChartDSL.g:18386:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalChartDSL.g:18387:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); 
             }
-            // InternalChartDSL.g:17378:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
-            // InternalChartDSL.g:17378:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
+            // InternalChartDSL.g:18388:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalChartDSL.g:18388:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1();
@@ -57646,16 +61035,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0"
-    // InternalChartDSL.g:17387:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
+    // InternalChartDSL.g:18397:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17391:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
-            // InternalChartDSL.g:17392:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
+            // InternalChartDSL.g:18401:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
+            // InternalChartDSL.g:18402:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XTryCatchFinallyExpression__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -57684,22 +61073,22 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"
-    // InternalChartDSL.g:17399:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
+    // InternalChartDSL.g:18409:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17403:1: ( ( 'finally' ) )
-            // InternalChartDSL.g:17404:1: ( 'finally' )
+            // InternalChartDSL.g:18413:1: ( ( 'finally' ) )
+            // InternalChartDSL.g:18414:1: ( 'finally' )
             {
-            // InternalChartDSL.g:17404:1: ( 'finally' )
-            // InternalChartDSL.g:17405:2: 'finally'
+            // InternalChartDSL.g:18414:1: ( 'finally' )
+            // InternalChartDSL.g:18415:2: 'finally'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
             }
-            match(input,119,FOLLOW_2); if (state.failed) return ;
+            match(input,134,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
             }
@@ -57725,14 +61114,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1"
-    // InternalChartDSL.g:17414:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
+    // InternalChartDSL.g:18424:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17418:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
-            // InternalChartDSL.g:17419:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+            // InternalChartDSL.g:18428:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
+            // InternalChartDSL.g:18429:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_1__1__Impl();
@@ -57758,23 +61147,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"
-    // InternalChartDSL.g:17425:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
+    // InternalChartDSL.g:18435:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17429:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
-            // InternalChartDSL.g:17430:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalChartDSL.g:18439:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
+            // InternalChartDSL.g:18440:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
             {
-            // InternalChartDSL.g:17430:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
-            // InternalChartDSL.g:17431:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalChartDSL.g:18440:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalChartDSL.g:18441:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); 
             }
-            // InternalChartDSL.g:17432:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
-            // InternalChartDSL.g:17432:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
+            // InternalChartDSL.g:18442:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalChartDSL.g:18442:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1();
@@ -57809,16 +61198,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0"
-    // InternalChartDSL.g:17441:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
+    // InternalChartDSL.g:18451:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
     public final void rule__XSynchronizedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17445:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
-            // InternalChartDSL.g:17446:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
+            // InternalChartDSL.g:18455:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
+            // InternalChartDSL.g:18456:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XSynchronizedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -57847,23 +61236,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0__Impl"
-    // InternalChartDSL.g:17453:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
+    // InternalChartDSL.g:18463:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
     public final void rule__XSynchronizedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17457:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
-            // InternalChartDSL.g:17458:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalChartDSL.g:18467:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
+            // InternalChartDSL.g:18468:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
             {
-            // InternalChartDSL.g:17458:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
-            // InternalChartDSL.g:17459:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalChartDSL.g:18468:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalChartDSL.g:18469:2: ( rule__XSynchronizedExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); 
             }
-            // InternalChartDSL.g:17460:2: ( rule__XSynchronizedExpression__Group_0__0 )
-            // InternalChartDSL.g:17460:3: rule__XSynchronizedExpression__Group_0__0
+            // InternalChartDSL.g:18470:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalChartDSL.g:18470:3: rule__XSynchronizedExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0();
@@ -57898,16 +61287,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1"
-    // InternalChartDSL.g:17468:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
+    // InternalChartDSL.g:18478:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
     public final void rule__XSynchronizedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17472:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
-            // InternalChartDSL.g:17473:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
+            // InternalChartDSL.g:18482:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
+            // InternalChartDSL.g:18483:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__XSynchronizedExpression__Group__1__Impl();
 
             state._fsp--;
@@ -57936,23 +61325,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1__Impl"
-    // InternalChartDSL.g:17480:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
+    // InternalChartDSL.g:18490:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
     public final void rule__XSynchronizedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17484:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
-            // InternalChartDSL.g:17485:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalChartDSL.g:18494:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
+            // InternalChartDSL.g:18495:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
             {
-            // InternalChartDSL.g:17485:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
-            // InternalChartDSL.g:17486:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalChartDSL.g:18495:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalChartDSL.g:18496:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); 
             }
-            // InternalChartDSL.g:17487:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
-            // InternalChartDSL.g:17487:3: rule__XSynchronizedExpression__ParamAssignment_1
+            // InternalChartDSL.g:18497:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalChartDSL.g:18497:3: rule__XSynchronizedExpression__ParamAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ParamAssignment_1();
@@ -57987,16 +61376,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2"
-    // InternalChartDSL.g:17495:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
+    // InternalChartDSL.g:18505:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
     public final void rule__XSynchronizedExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17499:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
-            // InternalChartDSL.g:17500:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
+            // InternalChartDSL.g:18509:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
+            // InternalChartDSL.g:18510:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XSynchronizedExpression__Group__2__Impl();
 
             state._fsp--;
@@ -58025,22 +61414,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2__Impl"
-    // InternalChartDSL.g:17507:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalChartDSL.g:18517:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XSynchronizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17511:1: ( ( ')' ) )
-            // InternalChartDSL.g:17512:1: ( ')' )
+            // InternalChartDSL.g:18521:1: ( ( ')' ) )
+            // InternalChartDSL.g:18522:1: ( ')' )
             {
-            // InternalChartDSL.g:17512:1: ( ')' )
-            // InternalChartDSL.g:17513:2: ')'
+            // InternalChartDSL.g:18522:1: ( ')' )
+            // InternalChartDSL.g:18523:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -58066,14 +61455,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3"
-    // InternalChartDSL.g:17522:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
+    // InternalChartDSL.g:18532:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
     public final void rule__XSynchronizedExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17526:1: ( rule__XSynchronizedExpression__Group__3__Impl )
-            // InternalChartDSL.g:17527:2: rule__XSynchronizedExpression__Group__3__Impl
+            // InternalChartDSL.g:18536:1: ( rule__XSynchronizedExpression__Group__3__Impl )
+            // InternalChartDSL.g:18537:2: rule__XSynchronizedExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group__3__Impl();
@@ -58099,23 +61488,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3__Impl"
-    // InternalChartDSL.g:17533:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
+    // InternalChartDSL.g:18543:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
     public final void rule__XSynchronizedExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17537:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
-            // InternalChartDSL.g:17538:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalChartDSL.g:18547:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
+            // InternalChartDSL.g:18548:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
             {
-            // InternalChartDSL.g:17538:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
-            // InternalChartDSL.g:17539:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalChartDSL.g:18548:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalChartDSL.g:18549:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); 
             }
-            // InternalChartDSL.g:17540:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
-            // InternalChartDSL.g:17540:3: rule__XSynchronizedExpression__ExpressionAssignment_3
+            // InternalChartDSL.g:18550:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalChartDSL.g:18550:3: rule__XSynchronizedExpression__ExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ExpressionAssignment_3();
@@ -58150,14 +61539,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0"
-    // InternalChartDSL.g:17549:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
+    // InternalChartDSL.g:18559:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
     public final void rule__XSynchronizedExpression__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17553:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
-            // InternalChartDSL.g:17554:2: rule__XSynchronizedExpression__Group_0__0__Impl
+            // InternalChartDSL.g:18563:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
+            // InternalChartDSL.g:18564:2: rule__XSynchronizedExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0__Impl();
@@ -58183,23 +61572,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0__Impl"
-    // InternalChartDSL.g:17560:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
+    // InternalChartDSL.g:18570:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
     public final void rule__XSynchronizedExpression__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17564:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
-            // InternalChartDSL.g:17565:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalChartDSL.g:18574:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
+            // InternalChartDSL.g:18575:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
             {
-            // InternalChartDSL.g:17565:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
-            // InternalChartDSL.g:17566:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalChartDSL.g:18575:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalChartDSL.g:18576:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); 
             }
-            // InternalChartDSL.g:17567:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
-            // InternalChartDSL.g:17567:3: rule__XSynchronizedExpression__Group_0_0__0
+            // InternalChartDSL.g:18577:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalChartDSL.g:18577:3: rule__XSynchronizedExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__0();
@@ -58234,16 +61623,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0"
-    // InternalChartDSL.g:17576:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
+    // InternalChartDSL.g:18586:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
     public final void rule__XSynchronizedExpression__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17580:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
-            // InternalChartDSL.g:17581:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
+            // InternalChartDSL.g:18590:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
+            // InternalChartDSL.g:18591:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
             {
-            pushFollow(FOLLOW_136);
+            pushFollow(FOLLOW_141);
             rule__XSynchronizedExpression__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -58272,23 +61661,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0__Impl"
-    // InternalChartDSL.g:17588:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:18598:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17592:1: ( ( () ) )
-            // InternalChartDSL.g:17593:1: ( () )
+            // InternalChartDSL.g:18602:1: ( ( () ) )
+            // InternalChartDSL.g:18603:1: ( () )
             {
-            // InternalChartDSL.g:17593:1: ( () )
-            // InternalChartDSL.g:17594:2: ()
+            // InternalChartDSL.g:18603:1: ( () )
+            // InternalChartDSL.g:18604:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); 
             }
-            // InternalChartDSL.g:17595:2: ()
-            // InternalChartDSL.g:17595:3: 
+            // InternalChartDSL.g:18605:2: ()
+            // InternalChartDSL.g:18605:3: 
             {
             }
 
@@ -58313,16 +61702,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1"
-    // InternalChartDSL.g:17603:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
+    // InternalChartDSL.g:18613:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
     public final void rule__XSynchronizedExpression__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17607:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
-            // InternalChartDSL.g:17608:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
+            // InternalChartDSL.g:18617:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
+            // InternalChartDSL.g:18618:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_62);
             rule__XSynchronizedExpression__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -58351,22 +61740,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1__Impl"
-    // InternalChartDSL.g:17615:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
+    // InternalChartDSL.g:18625:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17619:1: ( ( 'synchronized' ) )
-            // InternalChartDSL.g:17620:1: ( 'synchronized' )
+            // InternalChartDSL.g:18629:1: ( ( 'synchronized' ) )
+            // InternalChartDSL.g:18630:1: ( 'synchronized' )
             {
-            // InternalChartDSL.g:17620:1: ( 'synchronized' )
-            // InternalChartDSL.g:17621:2: 'synchronized'
+            // InternalChartDSL.g:18630:1: ( 'synchronized' )
+            // InternalChartDSL.g:18631:2: 'synchronized'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
             }
-            match(input,120,FOLLOW_2); if (state.failed) return ;
+            match(input,135,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
             }
@@ -58392,14 +61781,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2"
-    // InternalChartDSL.g:17630:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
+    // InternalChartDSL.g:18640:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
     public final void rule__XSynchronizedExpression__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17634:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
-            // InternalChartDSL.g:17635:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
+            // InternalChartDSL.g:18644:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
+            // InternalChartDSL.g:18645:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__2__Impl();
@@ -58425,22 +61814,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2__Impl"
-    // InternalChartDSL.g:17641:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalChartDSL.g:18651:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17645:1: ( ( '(' ) )
-            // InternalChartDSL.g:17646:1: ( '(' )
+            // InternalChartDSL.g:18655:1: ( ( '(' ) )
+            // InternalChartDSL.g:18656:1: ( '(' )
             {
-            // InternalChartDSL.g:17646:1: ( '(' )
-            // InternalChartDSL.g:17647:2: '('
+            // InternalChartDSL.g:18656:1: ( '(' )
+            // InternalChartDSL.g:18657:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
@@ -58466,16 +61855,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0"
-    // InternalChartDSL.g:17657:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
+    // InternalChartDSL.g:18667:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
     public final void rule__XCatchClause__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17661:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
-            // InternalChartDSL.g:17662:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
+            // InternalChartDSL.g:18671:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
+            // InternalChartDSL.g:18672:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_62);
             rule__XCatchClause__Group__0__Impl();
 
             state._fsp--;
@@ -58504,25 +61893,25 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0__Impl"
-    // InternalChartDSL.g:17669:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
+    // InternalChartDSL.g:18679:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
     public final void rule__XCatchClause__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17673:1: ( ( ( 'catch' ) ) )
-            // InternalChartDSL.g:17674:1: ( ( 'catch' ) )
+            // InternalChartDSL.g:18683:1: ( ( ( 'catch' ) ) )
+            // InternalChartDSL.g:18684:1: ( ( 'catch' ) )
             {
-            // InternalChartDSL.g:17674:1: ( ( 'catch' ) )
-            // InternalChartDSL.g:17675:2: ( 'catch' )
+            // InternalChartDSL.g:18684:1: ( ( 'catch' ) )
+            // InternalChartDSL.g:18685:2: ( 'catch' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); 
             }
-            // InternalChartDSL.g:17676:2: ( 'catch' )
-            // InternalChartDSL.g:17676:3: 'catch'
+            // InternalChartDSL.g:18686:2: ( 'catch' )
+            // InternalChartDSL.g:18686:3: 'catch'
             {
-            match(input,121,FOLLOW_2); if (state.failed) return ;
+            match(input,136,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -58551,16 +61940,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1"
-    // InternalChartDSL.g:17684:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
+    // InternalChartDSL.g:18694:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
     public final void rule__XCatchClause__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17688:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
-            // InternalChartDSL.g:17689:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
+            // InternalChartDSL.g:18698:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
+            // InternalChartDSL.g:18699:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XCatchClause__Group__1__Impl();
 
             state._fsp--;
@@ -58589,22 +61978,22 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1__Impl"
-    // InternalChartDSL.g:17696:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
+    // InternalChartDSL.g:18706:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
     public final void rule__XCatchClause__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17700:1: ( ( '(' ) )
-            // InternalChartDSL.g:17701:1: ( '(' )
+            // InternalChartDSL.g:18710:1: ( ( '(' ) )
+            // InternalChartDSL.g:18711:1: ( '(' )
             {
-            // InternalChartDSL.g:17701:1: ( '(' )
-            // InternalChartDSL.g:17702:2: '('
+            // InternalChartDSL.g:18711:1: ( '(' )
+            // InternalChartDSL.g:18712:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
             }
@@ -58630,16 +62019,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2"
-    // InternalChartDSL.g:17711:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
+    // InternalChartDSL.g:18721:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
     public final void rule__XCatchClause__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17715:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
-            // InternalChartDSL.g:17716:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
+            // InternalChartDSL.g:18725:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
+            // InternalChartDSL.g:18726:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
             {
-            pushFollow(FOLLOW_106);
+            pushFollow(FOLLOW_111);
             rule__XCatchClause__Group__2__Impl();
 
             state._fsp--;
@@ -58668,23 +62057,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2__Impl"
-    // InternalChartDSL.g:17723:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
+    // InternalChartDSL.g:18733:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
     public final void rule__XCatchClause__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17727:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
-            // InternalChartDSL.g:17728:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalChartDSL.g:18737:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
+            // InternalChartDSL.g:18738:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
             {
-            // InternalChartDSL.g:17728:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
-            // InternalChartDSL.g:17729:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalChartDSL.g:18738:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalChartDSL.g:18739:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); 
             }
-            // InternalChartDSL.g:17730:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
-            // InternalChartDSL.g:17730:3: rule__XCatchClause__DeclaredParamAssignment_2
+            // InternalChartDSL.g:18740:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalChartDSL.g:18740:3: rule__XCatchClause__DeclaredParamAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__DeclaredParamAssignment_2();
@@ -58719,16 +62108,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3"
-    // InternalChartDSL.g:17738:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
+    // InternalChartDSL.g:18748:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
     public final void rule__XCatchClause__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17742:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
-            // InternalChartDSL.g:17743:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
+            // InternalChartDSL.g:18752:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
+            // InternalChartDSL.g:18753:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_66);
             rule__XCatchClause__Group__3__Impl();
 
             state._fsp--;
@@ -58757,22 +62146,22 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3__Impl"
-    // InternalChartDSL.g:17750:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
+    // InternalChartDSL.g:18760:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
     public final void rule__XCatchClause__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17754:1: ( ( ')' ) )
-            // InternalChartDSL.g:17755:1: ( ')' )
+            // InternalChartDSL.g:18764:1: ( ( ')' ) )
+            // InternalChartDSL.g:18765:1: ( ')' )
             {
-            // InternalChartDSL.g:17755:1: ( ')' )
-            // InternalChartDSL.g:17756:2: ')'
+            // InternalChartDSL.g:18765:1: ( ')' )
+            // InternalChartDSL.g:18766:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
             }
@@ -58798,14 +62187,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4"
-    // InternalChartDSL.g:17765:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
+    // InternalChartDSL.g:18775:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
     public final void rule__XCatchClause__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17769:1: ( rule__XCatchClause__Group__4__Impl )
-            // InternalChartDSL.g:17770:2: rule__XCatchClause__Group__4__Impl
+            // InternalChartDSL.g:18779:1: ( rule__XCatchClause__Group__4__Impl )
+            // InternalChartDSL.g:18780:2: rule__XCatchClause__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__Group__4__Impl();
@@ -58831,23 +62220,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4__Impl"
-    // InternalChartDSL.g:17776:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
+    // InternalChartDSL.g:18786:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
     public final void rule__XCatchClause__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17780:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
-            // InternalChartDSL.g:17781:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalChartDSL.g:18790:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
+            // InternalChartDSL.g:18791:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
             {
-            // InternalChartDSL.g:17781:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
-            // InternalChartDSL.g:17782:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalChartDSL.g:18791:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalChartDSL.g:18792:2: ( rule__XCatchClause__ExpressionAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); 
             }
-            // InternalChartDSL.g:17783:2: ( rule__XCatchClause__ExpressionAssignment_4 )
-            // InternalChartDSL.g:17783:3: rule__XCatchClause__ExpressionAssignment_4
+            // InternalChartDSL.g:18793:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalChartDSL.g:18793:3: rule__XCatchClause__ExpressionAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__ExpressionAssignment_4();
@@ -58882,16 +62271,16 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalChartDSL.g:17792:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalChartDSL.g:18802:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
     public final void rule__QualifiedName__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17796:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalChartDSL.g:17797:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalChartDSL.g:18806:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalChartDSL.g:18807:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
-            pushFollow(FOLLOW_137);
+            pushFollow(FOLLOW_142);
             rule__QualifiedName__Group__0__Impl();
 
             state._fsp--;
@@ -58920,17 +62309,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalChartDSL.g:17804:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
+    // InternalChartDSL.g:18814:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17808:1: ( ( ruleValidID ) )
-            // InternalChartDSL.g:17809:1: ( ruleValidID )
+            // InternalChartDSL.g:18818:1: ( ( ruleValidID ) )
+            // InternalChartDSL.g:18819:1: ( ruleValidID )
             {
-            // InternalChartDSL.g:17809:1: ( ruleValidID )
-            // InternalChartDSL.g:17810:2: ruleValidID
+            // InternalChartDSL.g:18819:1: ( ruleValidID )
+            // InternalChartDSL.g:18820:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
@@ -58965,14 +62354,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalChartDSL.g:17819:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalChartDSL.g:18829:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
     public final void rule__QualifiedName__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17823:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalChartDSL.g:17824:2: rule__QualifiedName__Group__1__Impl
+            // InternalChartDSL.g:18833:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalChartDSL.g:18834:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -58998,35 +62387,35 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalChartDSL.g:17830:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalChartDSL.g:18840:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
     public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17834:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalChartDSL.g:17835:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalChartDSL.g:18844:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalChartDSL.g:18845:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalChartDSL.g:17835:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalChartDSL.g:17836:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalChartDSL.g:18845:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalChartDSL.g:18846:2: ( rule__QualifiedName__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:17837:2: ( rule__QualifiedName__Group_1__0 )*
-            loop144:
+            // InternalChartDSL.g:18847:2: ( rule__QualifiedName__Group_1__0 )*
+            loop157:
             do {
-                int alt144=2;
-                int LA144_0 = input.LA(1);
+                int alt157=2;
+                int LA157_0 = input.LA(1);
 
-                if ( (LA144_0==43) ) {
-                    int LA144_2 = input.LA(2);
+                if ( (LA157_0==43) ) {
+                    int LA157_2 = input.LA(2);
 
-                    if ( (LA144_2==RULE_ID) ) {
-                        int LA144_3 = input.LA(3);
+                    if ( (LA157_2==RULE_ID) ) {
+                        int LA157_3 = input.LA(3);
 
-                        if ( (synpred206_InternalChartDSL()) ) {
-                            alt144=1;
+                        if ( (synpred224_InternalChartDSL()) ) {
+                            alt157=1;
                         }
 
 
@@ -59036,11 +62425,11 @@
                 }
 
 
-                switch (alt144) {
+                switch (alt157) {
             	case 1 :
-            	    // InternalChartDSL.g:17837:3: rule__QualifiedName__Group_1__0
+            	    // InternalChartDSL.g:18847:3: rule__QualifiedName__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_138);
+            	    pushFollow(FOLLOW_143);
             	    rule__QualifiedName__Group_1__0();
 
             	    state._fsp--;
@@ -59050,7 +62439,7 @@
             	    break;
 
             	default :
-            	    break loop144;
+            	    break loop157;
                 }
             } while (true);
 
@@ -59079,14 +62468,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalChartDSL.g:17846:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalChartDSL.g:18856:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
     public final void rule__QualifiedName__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17850:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalChartDSL.g:17851:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalChartDSL.g:18860:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalChartDSL.g:18861:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_7);
             rule__QualifiedName__Group_1__0__Impl();
@@ -59117,23 +62506,23 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalChartDSL.g:17858:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
+    // InternalChartDSL.g:18868:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17862:1: ( ( ( '.' ) ) )
-            // InternalChartDSL.g:17863:1: ( ( '.' ) )
+            // InternalChartDSL.g:18872:1: ( ( ( '.' ) ) )
+            // InternalChartDSL.g:18873:1: ( ( '.' ) )
             {
-            // InternalChartDSL.g:17863:1: ( ( '.' ) )
-            // InternalChartDSL.g:17864:2: ( '.' )
+            // InternalChartDSL.g:18873:1: ( ( '.' ) )
+            // InternalChartDSL.g:18874:2: ( '.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
             }
-            // InternalChartDSL.g:17865:2: ( '.' )
-            // InternalChartDSL.g:17865:3: '.'
+            // InternalChartDSL.g:18875:2: ( '.' )
+            // InternalChartDSL.g:18875:3: '.'
             {
             match(input,43,FOLLOW_2); if (state.failed) return ;
 
@@ -59164,14 +62553,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalChartDSL.g:17873:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalChartDSL.g:18883:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
     public final void rule__QualifiedName__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17877:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalChartDSL.g:17878:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalChartDSL.g:18887:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalChartDSL.g:18888:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -59197,17 +62586,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalChartDSL.g:17884:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
+    // InternalChartDSL.g:18894:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17888:1: ( ( ruleValidID ) )
-            // InternalChartDSL.g:17889:1: ( ruleValidID )
+            // InternalChartDSL.g:18898:1: ( ( ruleValidID ) )
+            // InternalChartDSL.g:18899:1: ( ruleValidID )
             {
-            // InternalChartDSL.g:17889:1: ( ruleValidID )
-            // InternalChartDSL.g:17890:2: ruleValidID
+            // InternalChartDSL.g:18899:1: ( ruleValidID )
+            // InternalChartDSL.g:18900:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
@@ -59242,16 +62631,16 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0"
-    // InternalChartDSL.g:17900:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
+    // InternalChartDSL.g:18910:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
     public final void rule__Number__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17904:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
-            // InternalChartDSL.g:17905:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
+            // InternalChartDSL.g:18914:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
+            // InternalChartDSL.g:18915:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
             {
-            pushFollow(FOLLOW_137);
+            pushFollow(FOLLOW_142);
             rule__Number__Group_1__0__Impl();
 
             state._fsp--;
@@ -59280,23 +62669,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0__Impl"
-    // InternalChartDSL.g:17912:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
+    // InternalChartDSL.g:18922:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
     public final void rule__Number__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17916:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
-            // InternalChartDSL.g:17917:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalChartDSL.g:18926:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
+            // InternalChartDSL.g:18927:1: ( ( rule__Number__Alternatives_1_0 ) )
             {
-            // InternalChartDSL.g:17917:1: ( ( rule__Number__Alternatives_1_0 ) )
-            // InternalChartDSL.g:17918:2: ( rule__Number__Alternatives_1_0 )
+            // InternalChartDSL.g:18927:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalChartDSL.g:18928:2: ( rule__Number__Alternatives_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_0()); 
             }
-            // InternalChartDSL.g:17919:2: ( rule__Number__Alternatives_1_0 )
-            // InternalChartDSL.g:17919:3: rule__Number__Alternatives_1_0
+            // InternalChartDSL.g:18929:2: ( rule__Number__Alternatives_1_0 )
+            // InternalChartDSL.g:18929:3: rule__Number__Alternatives_1_0
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_0();
@@ -59331,14 +62720,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1"
-    // InternalChartDSL.g:17927:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
+    // InternalChartDSL.g:18937:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
     public final void rule__Number__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17931:1: ( rule__Number__Group_1__1__Impl )
-            // InternalChartDSL.g:17932:2: rule__Number__Group_1__1__Impl
+            // InternalChartDSL.g:18941:1: ( rule__Number__Group_1__1__Impl )
+            // InternalChartDSL.g:18942:2: rule__Number__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1__1__Impl();
@@ -59364,35 +62753,35 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1__Impl"
-    // InternalChartDSL.g:17938:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
+    // InternalChartDSL.g:18948:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
     public final void rule__Number__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17942:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
-            // InternalChartDSL.g:17943:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalChartDSL.g:18952:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
+            // InternalChartDSL.g:18953:1: ( ( rule__Number__Group_1_1__0 )? )
             {
-            // InternalChartDSL.g:17943:1: ( ( rule__Number__Group_1_1__0 )? )
-            // InternalChartDSL.g:17944:2: ( rule__Number__Group_1_1__0 )?
+            // InternalChartDSL.g:18953:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalChartDSL.g:18954:2: ( rule__Number__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getGroup_1_1()); 
             }
-            // InternalChartDSL.g:17945:2: ( rule__Number__Group_1_1__0 )?
-            int alt145=2;
-            int LA145_0 = input.LA(1);
+            // InternalChartDSL.g:18955:2: ( rule__Number__Group_1_1__0 )?
+            int alt158=2;
+            int LA158_0 = input.LA(1);
 
-            if ( (LA145_0==43) ) {
-                int LA145_1 = input.LA(2);
+            if ( (LA158_0==43) ) {
+                int LA158_1 = input.LA(2);
 
-                if ( ((LA145_1>=RULE_INT && LA145_1<=RULE_DECIMAL)) ) {
-                    alt145=1;
+                if ( ((LA158_1>=RULE_INT && LA158_1<=RULE_DECIMAL)) ) {
+                    alt158=1;
                 }
             }
-            switch (alt145) {
+            switch (alt158) {
                 case 1 :
-                    // InternalChartDSL.g:17945:3: rule__Number__Group_1_1__0
+                    // InternalChartDSL.g:18955:3: rule__Number__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1_1__0();
@@ -59430,16 +62819,16 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0"
-    // InternalChartDSL.g:17954:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
+    // InternalChartDSL.g:18964:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
     public final void rule__Number__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17958:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
-            // InternalChartDSL.g:17959:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
+            // InternalChartDSL.g:18968:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
+            // InternalChartDSL.g:18969:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
             {
-            pushFollow(FOLLOW_139);
+            pushFollow(FOLLOW_144);
             rule__Number__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -59468,17 +62857,17 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0__Impl"
-    // InternalChartDSL.g:17966:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
+    // InternalChartDSL.g:18976:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
     public final void rule__Number__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17970:1: ( ( '.' ) )
-            // InternalChartDSL.g:17971:1: ( '.' )
+            // InternalChartDSL.g:18980:1: ( ( '.' ) )
+            // InternalChartDSL.g:18981:1: ( '.' )
             {
-            // InternalChartDSL.g:17971:1: ( '.' )
-            // InternalChartDSL.g:17972:2: '.'
+            // InternalChartDSL.g:18981:1: ( '.' )
+            // InternalChartDSL.g:18982:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
@@ -59509,14 +62898,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1"
-    // InternalChartDSL.g:17981:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
+    // InternalChartDSL.g:18991:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
     public final void rule__Number__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17985:1: ( rule__Number__Group_1_1__1__Impl )
-            // InternalChartDSL.g:17986:2: rule__Number__Group_1_1__1__Impl
+            // InternalChartDSL.g:18995:1: ( rule__Number__Group_1_1__1__Impl )
+            // InternalChartDSL.g:18996:2: rule__Number__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1_1__1__Impl();
@@ -59542,23 +62931,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1__Impl"
-    // InternalChartDSL.g:17992:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
+    // InternalChartDSL.g:19002:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
     public final void rule__Number__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:17996:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
-            // InternalChartDSL.g:17997:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalChartDSL.g:19006:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
+            // InternalChartDSL.g:19007:1: ( ( rule__Number__Alternatives_1_1_1 ) )
             {
-            // InternalChartDSL.g:17997:1: ( ( rule__Number__Alternatives_1_1_1 ) )
-            // InternalChartDSL.g:17998:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalChartDSL.g:19007:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalChartDSL.g:19008:2: ( rule__Number__Alternatives_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); 
             }
-            // InternalChartDSL.g:17999:2: ( rule__Number__Alternatives_1_1_1 )
-            // InternalChartDSL.g:17999:3: rule__Number__Alternatives_1_1_1
+            // InternalChartDSL.g:19009:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalChartDSL.g:19009:3: rule__Number__Alternatives_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_1_1();
@@ -59593,16 +62982,16 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0"
-    // InternalChartDSL.g:18008:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
+    // InternalChartDSL.g:19018:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
     public final void rule__JvmTypeReference__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18012:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
-            // InternalChartDSL.g:18013:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
+            // InternalChartDSL.g:19022:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
+            // InternalChartDSL.g:19023:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
             {
-            pushFollow(FOLLOW_65);
+            pushFollow(FOLLOW_70);
             rule__JvmTypeReference__Group_0__0__Impl();
 
             state._fsp--;
@@ -59631,17 +63020,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0__Impl"
-    // InternalChartDSL.g:18020:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
+    // InternalChartDSL.g:19030:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
     public final void rule__JvmTypeReference__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18024:1: ( ( ruleJvmParameterizedTypeReference ) )
-            // InternalChartDSL.g:18025:1: ( ruleJvmParameterizedTypeReference )
+            // InternalChartDSL.g:19034:1: ( ( ruleJvmParameterizedTypeReference ) )
+            // InternalChartDSL.g:19035:1: ( ruleJvmParameterizedTypeReference )
             {
-            // InternalChartDSL.g:18025:1: ( ruleJvmParameterizedTypeReference )
-            // InternalChartDSL.g:18026:2: ruleJvmParameterizedTypeReference
+            // InternalChartDSL.g:19035:1: ( ruleJvmParameterizedTypeReference )
+            // InternalChartDSL.g:19036:2: ruleJvmParameterizedTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
@@ -59676,14 +63065,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1"
-    // InternalChartDSL.g:18035:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
+    // InternalChartDSL.g:19045:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
     public final void rule__JvmTypeReference__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18039:1: ( rule__JvmTypeReference__Group_0__1__Impl )
-            // InternalChartDSL.g:18040:2: rule__JvmTypeReference__Group_0__1__Impl
+            // InternalChartDSL.g:19049:1: ( rule__JvmTypeReference__Group_0__1__Impl )
+            // InternalChartDSL.g:19050:2: rule__JvmTypeReference__Group_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0__1__Impl();
@@ -59709,35 +63098,35 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1__Impl"
-    // InternalChartDSL.g:18046:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
+    // InternalChartDSL.g:19056:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
     public final void rule__JvmTypeReference__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18050:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
-            // InternalChartDSL.g:18051:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalChartDSL.g:19060:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
+            // InternalChartDSL.g:19061:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
             {
-            // InternalChartDSL.g:18051:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
-            // InternalChartDSL.g:18052:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            // InternalChartDSL.g:19061:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalChartDSL.g:19062:2: ( rule__JvmTypeReference__Group_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); 
             }
-            // InternalChartDSL.g:18053:2: ( rule__JvmTypeReference__Group_0_1__0 )*
-            loop146:
+            // InternalChartDSL.g:19063:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            loop159:
             do {
-                int alt146=2;
-                int LA146_0 = input.LA(1);
+                int alt159=2;
+                int LA159_0 = input.LA(1);
 
-                if ( (LA146_0==102) ) {
-                    int LA146_2 = input.LA(2);
+                if ( (LA159_0==117) ) {
+                    int LA159_2 = input.LA(2);
 
-                    if ( (LA146_2==100) ) {
-                        int LA146_3 = input.LA(3);
+                    if ( (LA159_2==115) ) {
+                        int LA159_3 = input.LA(3);
 
-                        if ( (synpred208_InternalChartDSL()) ) {
-                            alt146=1;
+                        if ( (synpred226_InternalChartDSL()) ) {
+                            alt159=1;
                         }
 
 
@@ -59747,11 +63136,11 @@
                 }
 
 
-                switch (alt146) {
+                switch (alt159) {
             	case 1 :
-            	    // InternalChartDSL.g:18053:3: rule__JvmTypeReference__Group_0_1__0
+            	    // InternalChartDSL.g:19063:3: rule__JvmTypeReference__Group_0_1__0
             	    {
-            	    pushFollow(FOLLOW_129);
+            	    pushFollow(FOLLOW_134);
             	    rule__JvmTypeReference__Group_0_1__0();
 
             	    state._fsp--;
@@ -59761,7 +63150,7 @@
             	    break;
 
             	default :
-            	    break loop146;
+            	    break loop159;
                 }
             } while (true);
 
@@ -59790,14 +63179,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0"
-    // InternalChartDSL.g:18062:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
+    // InternalChartDSL.g:19072:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
     public final void rule__JvmTypeReference__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18066:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
-            // InternalChartDSL.g:18067:2: rule__JvmTypeReference__Group_0_1__0__Impl
+            // InternalChartDSL.g:19076:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
+            // InternalChartDSL.g:19077:2: rule__JvmTypeReference__Group_0_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1__0__Impl();
@@ -59823,23 +63212,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0__Impl"
-    // InternalChartDSL.g:18073:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
+    // InternalChartDSL.g:19083:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
     public final void rule__JvmTypeReference__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18077:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
-            // InternalChartDSL.g:18078:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalChartDSL.g:19087:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
+            // InternalChartDSL.g:19088:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
             {
-            // InternalChartDSL.g:18078:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
-            // InternalChartDSL.g:18079:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalChartDSL.g:19088:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalChartDSL.g:19089:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); 
             }
-            // InternalChartDSL.g:18080:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
-            // InternalChartDSL.g:18080:3: rule__JvmTypeReference__Group_0_1_0__0
+            // InternalChartDSL.g:19090:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalChartDSL.g:19090:3: rule__JvmTypeReference__Group_0_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__0();
@@ -59874,16 +63263,16 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0"
-    // InternalChartDSL.g:18089:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
+    // InternalChartDSL.g:19099:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
     public final void rule__JvmTypeReference__Group_0_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18093:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
-            // InternalChartDSL.g:18094:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
+            // InternalChartDSL.g:19103:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
+            // InternalChartDSL.g:19104:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
             {
-            pushFollow(FOLLOW_65);
+            pushFollow(FOLLOW_70);
             rule__JvmTypeReference__Group_0_1_0__0__Impl();
 
             state._fsp--;
@@ -59912,23 +63301,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0__Impl"
-    // InternalChartDSL.g:18101:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:19111:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
     public final void rule__JvmTypeReference__Group_0_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18105:1: ( ( () ) )
-            // InternalChartDSL.g:18106:1: ( () )
+            // InternalChartDSL.g:19115:1: ( ( () ) )
+            // InternalChartDSL.g:19116:1: ( () )
             {
-            // InternalChartDSL.g:18106:1: ( () )
-            // InternalChartDSL.g:18107:2: ()
+            // InternalChartDSL.g:19116:1: ( () )
+            // InternalChartDSL.g:19117:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); 
             }
-            // InternalChartDSL.g:18108:2: ()
-            // InternalChartDSL.g:18108:3: 
+            // InternalChartDSL.g:19118:2: ()
+            // InternalChartDSL.g:19118:3: 
             {
             }
 
@@ -59953,14 +63342,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1"
-    // InternalChartDSL.g:18116:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
+    // InternalChartDSL.g:19126:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
     public final void rule__JvmTypeReference__Group_0_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18120:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
-            // InternalChartDSL.g:18121:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
+            // InternalChartDSL.g:19130:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
+            // InternalChartDSL.g:19131:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__1__Impl();
@@ -59986,17 +63375,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1__Impl"
-    // InternalChartDSL.g:18127:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
+    // InternalChartDSL.g:19137:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
     public final void rule__JvmTypeReference__Group_0_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18131:1: ( ( ruleArrayBrackets ) )
-            // InternalChartDSL.g:18132:1: ( ruleArrayBrackets )
+            // InternalChartDSL.g:19141:1: ( ( ruleArrayBrackets ) )
+            // InternalChartDSL.g:19142:1: ( ruleArrayBrackets )
             {
-            // InternalChartDSL.g:18132:1: ( ruleArrayBrackets )
-            // InternalChartDSL.g:18133:2: ruleArrayBrackets
+            // InternalChartDSL.g:19142:1: ( ruleArrayBrackets )
+            // InternalChartDSL.g:19143:2: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
@@ -60031,16 +63420,16 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0"
-    // InternalChartDSL.g:18143:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
+    // InternalChartDSL.g:19153:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
     public final void rule__ArrayBrackets__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18147:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
-            // InternalChartDSL.g:18148:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
+            // InternalChartDSL.g:19157:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
+            // InternalChartDSL.g:19158:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
             {
-            pushFollow(FOLLOW_103);
+            pushFollow(FOLLOW_108);
             rule__ArrayBrackets__Group__0__Impl();
 
             state._fsp--;
@@ -60069,22 +63458,22 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0__Impl"
-    // InternalChartDSL.g:18155:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
+    // InternalChartDSL.g:19165:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
     public final void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18159:1: ( ( '[' ) )
-            // InternalChartDSL.g:18160:1: ( '[' )
+            // InternalChartDSL.g:19169:1: ( ( '[' ) )
+            // InternalChartDSL.g:19170:1: ( '[' )
             {
-            // InternalChartDSL.g:18160:1: ( '[' )
-            // InternalChartDSL.g:18161:2: '['
+            // InternalChartDSL.g:19170:1: ( '[' )
+            // InternalChartDSL.g:19171:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
             }
-            match(input,102,FOLLOW_2); if (state.failed) return ;
+            match(input,117,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
             }
@@ -60110,14 +63499,14 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1"
-    // InternalChartDSL.g:18170:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
+    // InternalChartDSL.g:19180:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
     public final void rule__ArrayBrackets__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18174:1: ( rule__ArrayBrackets__Group__1__Impl )
-            // InternalChartDSL.g:18175:2: rule__ArrayBrackets__Group__1__Impl
+            // InternalChartDSL.g:19184:1: ( rule__ArrayBrackets__Group__1__Impl )
+            // InternalChartDSL.g:19185:2: rule__ArrayBrackets__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayBrackets__Group__1__Impl();
@@ -60143,22 +63532,22 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1__Impl"
-    // InternalChartDSL.g:18181:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
+    // InternalChartDSL.g:19191:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
     public final void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18185:1: ( ( ']' ) )
-            // InternalChartDSL.g:18186:1: ( ']' )
+            // InternalChartDSL.g:19195:1: ( ( ']' ) )
+            // InternalChartDSL.g:19196:1: ( ']' )
             {
-            // InternalChartDSL.g:18186:1: ( ']' )
-            // InternalChartDSL.g:18187:2: ']'
+            // InternalChartDSL.g:19196:1: ( ']' )
+            // InternalChartDSL.g:19197:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
             }
-            match(input,100,FOLLOW_2); if (state.failed) return ;
+            match(input,115,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
             }
@@ -60184,16 +63573,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0"
-    // InternalChartDSL.g:18197:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
+    // InternalChartDSL.g:19207:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
     public final void rule__XFunctionTypeRef__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18201:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
-            // InternalChartDSL.g:18202:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
+            // InternalChartDSL.g:19211:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
+            // InternalChartDSL.g:19212:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XFunctionTypeRef__Group__0__Impl();
 
             state._fsp--;
@@ -60222,31 +63611,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0__Impl"
-    // InternalChartDSL.g:18209:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
+    // InternalChartDSL.g:19219:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
     public final void rule__XFunctionTypeRef__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18213:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
-            // InternalChartDSL.g:18214:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalChartDSL.g:19223:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
+            // InternalChartDSL.g:19224:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
             {
-            // InternalChartDSL.g:18214:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
-            // InternalChartDSL.g:18215:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            // InternalChartDSL.g:19224:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalChartDSL.g:19225:2: ( rule__XFunctionTypeRef__Group_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); 
             }
-            // InternalChartDSL.g:18216:2: ( rule__XFunctionTypeRef__Group_0__0 )?
-            int alt147=2;
-            int LA147_0 = input.LA(1);
+            // InternalChartDSL.g:19226:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            int alt160=2;
+            int LA160_0 = input.LA(1);
 
-            if ( (LA147_0==97) ) {
-                alt147=1;
+            if ( (LA160_0==112) ) {
+                alt160=1;
             }
-            switch (alt147) {
+            switch (alt160) {
                 case 1 :
-                    // InternalChartDSL.g:18216:3: rule__XFunctionTypeRef__Group_0__0
+                    // InternalChartDSL.g:19226:3: rule__XFunctionTypeRef__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0__0();
@@ -60284,16 +63673,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1"
-    // InternalChartDSL.g:18224:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
+    // InternalChartDSL.g:19234:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
     public final void rule__XFunctionTypeRef__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18228:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
-            // InternalChartDSL.g:18229:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
+            // InternalChartDSL.g:19238:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
+            // InternalChartDSL.g:19239:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XFunctionTypeRef__Group__1__Impl();
 
             state._fsp--;
@@ -60322,17 +63711,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1__Impl"
-    // InternalChartDSL.g:18236:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
+    // InternalChartDSL.g:19246:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
     public final void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18240:1: ( ( '=>' ) )
-            // InternalChartDSL.g:18241:1: ( '=>' )
+            // InternalChartDSL.g:19250:1: ( ( '=>' ) )
+            // InternalChartDSL.g:19251:1: ( '=>' )
             {
-            // InternalChartDSL.g:18241:1: ( '=>' )
-            // InternalChartDSL.g:18242:2: '=>'
+            // InternalChartDSL.g:19251:1: ( '=>' )
+            // InternalChartDSL.g:19252:2: '=>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
@@ -60363,14 +63752,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2"
-    // InternalChartDSL.g:18251:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
+    // InternalChartDSL.g:19261:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
     public final void rule__XFunctionTypeRef__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18255:1: ( rule__XFunctionTypeRef__Group__2__Impl )
-            // InternalChartDSL.g:18256:2: rule__XFunctionTypeRef__Group__2__Impl
+            // InternalChartDSL.g:19265:1: ( rule__XFunctionTypeRef__Group__2__Impl )
+            // InternalChartDSL.g:19266:2: rule__XFunctionTypeRef__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group__2__Impl();
@@ -60396,23 +63785,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2__Impl"
-    // InternalChartDSL.g:18262:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
+    // InternalChartDSL.g:19272:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
     public final void rule__XFunctionTypeRef__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18266:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
-            // InternalChartDSL.g:18267:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalChartDSL.g:19276:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
+            // InternalChartDSL.g:19277:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
             {
-            // InternalChartDSL.g:18267:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
-            // InternalChartDSL.g:18268:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalChartDSL.g:19277:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalChartDSL.g:19278:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); 
             }
-            // InternalChartDSL.g:18269:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
-            // InternalChartDSL.g:18269:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
+            // InternalChartDSL.g:19279:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalChartDSL.g:19279:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ReturnTypeAssignment_2();
@@ -60447,16 +63836,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0"
-    // InternalChartDSL.g:18278:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
+    // InternalChartDSL.g:19288:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
     public final void rule__XFunctionTypeRef__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18282:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
-            // InternalChartDSL.g:18283:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
+            // InternalChartDSL.g:19292:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
+            // InternalChartDSL.g:19293:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
             {
-            pushFollow(FOLLOW_140);
+            pushFollow(FOLLOW_145);
             rule__XFunctionTypeRef__Group_0__0__Impl();
 
             state._fsp--;
@@ -60485,22 +63874,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0__Impl"
-    // InternalChartDSL.g:18290:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
+    // InternalChartDSL.g:19300:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
     public final void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18294:1: ( ( '(' ) )
-            // InternalChartDSL.g:18295:1: ( '(' )
+            // InternalChartDSL.g:19304:1: ( ( '(' ) )
+            // InternalChartDSL.g:19305:1: ( '(' )
             {
-            // InternalChartDSL.g:18295:1: ( '(' )
-            // InternalChartDSL.g:18296:2: '('
+            // InternalChartDSL.g:19305:1: ( '(' )
+            // InternalChartDSL.g:19306:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
             }
@@ -60526,16 +63915,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1"
-    // InternalChartDSL.g:18305:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
+    // InternalChartDSL.g:19315:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
     public final void rule__XFunctionTypeRef__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18309:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
-            // InternalChartDSL.g:18310:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
+            // InternalChartDSL.g:19319:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
+            // InternalChartDSL.g:19320:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
             {
-            pushFollow(FOLLOW_140);
+            pushFollow(FOLLOW_145);
             rule__XFunctionTypeRef__Group_0__1__Impl();
 
             state._fsp--;
@@ -60564,31 +63953,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1__Impl"
-    // InternalChartDSL.g:18317:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
+    // InternalChartDSL.g:19327:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
     public final void rule__XFunctionTypeRef__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18321:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
-            // InternalChartDSL.g:18322:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalChartDSL.g:19331:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
+            // InternalChartDSL.g:19332:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
             {
-            // InternalChartDSL.g:18322:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
-            // InternalChartDSL.g:18323:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            // InternalChartDSL.g:19332:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalChartDSL.g:19333:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); 
             }
-            // InternalChartDSL.g:18324:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
-            int alt148=2;
-            int LA148_0 = input.LA(1);
+            // InternalChartDSL.g:19334:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            int alt161=2;
+            int LA161_0 = input.LA(1);
 
-            if ( (LA148_0==RULE_ID||LA148_0==31||LA148_0==97) ) {
-                alt148=1;
+            if ( (LA161_0==RULE_ID||LA161_0==31||LA161_0==112) ) {
+                alt161=1;
             }
-            switch (alt148) {
+            switch (alt161) {
                 case 1 :
-                    // InternalChartDSL.g:18324:3: rule__XFunctionTypeRef__Group_0_1__0
+                    // InternalChartDSL.g:19334:3: rule__XFunctionTypeRef__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0_1__0();
@@ -60626,14 +64015,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2"
-    // InternalChartDSL.g:18332:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
+    // InternalChartDSL.g:19342:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
     public final void rule__XFunctionTypeRef__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18336:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
-            // InternalChartDSL.g:18337:2: rule__XFunctionTypeRef__Group_0__2__Impl
+            // InternalChartDSL.g:19346:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
+            // InternalChartDSL.g:19347:2: rule__XFunctionTypeRef__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0__2__Impl();
@@ -60659,22 +64048,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2__Impl"
-    // InternalChartDSL.g:18343:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
+    // InternalChartDSL.g:19353:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
     public final void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18347:1: ( ( ')' ) )
-            // InternalChartDSL.g:18348:1: ( ')' )
+            // InternalChartDSL.g:19357:1: ( ( ')' ) )
+            // InternalChartDSL.g:19358:1: ( ')' )
             {
-            // InternalChartDSL.g:18348:1: ( ')' )
-            // InternalChartDSL.g:18349:2: ')'
+            // InternalChartDSL.g:19358:1: ( ')' )
+            // InternalChartDSL.g:19359:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
             }
@@ -60700,16 +64089,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0"
-    // InternalChartDSL.g:18359:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
+    // InternalChartDSL.g:19369:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
     public final void rule__XFunctionTypeRef__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18363:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
-            // InternalChartDSL.g:18364:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
+            // InternalChartDSL.g:19373:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
+            // InternalChartDSL.g:19374:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_64);
             rule__XFunctionTypeRef__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -60738,23 +64127,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0__Impl"
-    // InternalChartDSL.g:18371:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
+    // InternalChartDSL.g:19381:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
     public final void rule__XFunctionTypeRef__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18375:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
-            // InternalChartDSL.g:18376:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalChartDSL.g:19385:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
+            // InternalChartDSL.g:19386:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
             {
-            // InternalChartDSL.g:18376:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
-            // InternalChartDSL.g:18377:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalChartDSL.g:19386:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalChartDSL.g:19387:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); 
             }
-            // InternalChartDSL.g:18378:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
-            // InternalChartDSL.g:18378:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
+            // InternalChartDSL.g:19388:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalChartDSL.g:19388:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0();
@@ -60789,14 +64178,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1"
-    // InternalChartDSL.g:18386:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
+    // InternalChartDSL.g:19396:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
     public final void rule__XFunctionTypeRef__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18390:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
-            // InternalChartDSL.g:18391:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
+            // InternalChartDSL.g:19400:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
+            // InternalChartDSL.g:19401:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1__1__Impl();
@@ -60822,37 +64211,37 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1__Impl"
-    // InternalChartDSL.g:18397:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
+    // InternalChartDSL.g:19407:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
     public final void rule__XFunctionTypeRef__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18401:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
-            // InternalChartDSL.g:18402:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalChartDSL.g:19411:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
+            // InternalChartDSL.g:19412:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
             {
-            // InternalChartDSL.g:18402:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
-            // InternalChartDSL.g:18403:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            // InternalChartDSL.g:19412:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalChartDSL.g:19413:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); 
             }
-            // InternalChartDSL.g:18404:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
-            loop149:
+            // InternalChartDSL.g:19414:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            loop162:
             do {
-                int alt149=2;
-                int LA149_0 = input.LA(1);
+                int alt162=2;
+                int LA162_0 = input.LA(1);
 
-                if ( (LA149_0==99) ) {
-                    alt149=1;
+                if ( (LA162_0==114) ) {
+                    alt162=1;
                 }
 
 
-                switch (alt149) {
+                switch (alt162) {
             	case 1 :
-            	    // InternalChartDSL.g:18404:3: rule__XFunctionTypeRef__Group_0_1_1__0
+            	    // InternalChartDSL.g:19414:3: rule__XFunctionTypeRef__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__XFunctionTypeRef__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -60862,7 +64251,7 @@
             	    break;
 
             	default :
-            	    break loop149;
+            	    break loop162;
                 }
             } while (true);
 
@@ -60891,16 +64280,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0"
-    // InternalChartDSL.g:18413:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
+    // InternalChartDSL.g:19423:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18417:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
-            // InternalChartDSL.g:18418:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
+            // InternalChartDSL.g:19427:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
+            // InternalChartDSL.g:19428:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__XFunctionTypeRef__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -60929,22 +64318,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"
-    // InternalChartDSL.g:18425:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:19435:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18429:1: ( ( ',' ) )
-            // InternalChartDSL.g:18430:1: ( ',' )
+            // InternalChartDSL.g:19439:1: ( ( ',' ) )
+            // InternalChartDSL.g:19440:1: ( ',' )
             {
-            // InternalChartDSL.g:18430:1: ( ',' )
-            // InternalChartDSL.g:18431:2: ','
+            // InternalChartDSL.g:19440:1: ( ',' )
+            // InternalChartDSL.g:19441:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -60970,14 +64359,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1"
-    // InternalChartDSL.g:18440:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
+    // InternalChartDSL.g:19450:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18444:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
-            // InternalChartDSL.g:18445:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+            // InternalChartDSL.g:19454:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
+            // InternalChartDSL.g:19455:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1_1__1__Impl();
@@ -61003,23 +64392,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"
-    // InternalChartDSL.g:18451:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
+    // InternalChartDSL.g:19461:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18455:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
-            // InternalChartDSL.g:18456:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalChartDSL.g:19465:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
+            // InternalChartDSL.g:19466:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
             {
-            // InternalChartDSL.g:18456:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
-            // InternalChartDSL.g:18457:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalChartDSL.g:19466:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalChartDSL.g:19467:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); 
             }
-            // InternalChartDSL.g:18458:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
-            // InternalChartDSL.g:18458:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
+            // InternalChartDSL.g:19468:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalChartDSL.g:19468:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1();
@@ -61054,16 +64443,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0"
-    // InternalChartDSL.g:18467:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
+    // InternalChartDSL.g:19477:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
     public final void rule__JvmParameterizedTypeReference__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18471:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
-            // InternalChartDSL.g:18472:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
+            // InternalChartDSL.g:19481:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
+            // InternalChartDSL.g:19482:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__JvmParameterizedTypeReference__Group__0__Impl();
 
             state._fsp--;
@@ -61092,23 +64481,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0__Impl"
-    // InternalChartDSL.g:18479:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
+    // InternalChartDSL.g:19489:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18483:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
-            // InternalChartDSL.g:18484:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalChartDSL.g:19493:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
+            // InternalChartDSL.g:19494:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
             {
-            // InternalChartDSL.g:18484:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
-            // InternalChartDSL.g:18485:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalChartDSL.g:19494:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalChartDSL.g:19495:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); 
             }
-            // InternalChartDSL.g:18486:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
-            // InternalChartDSL.g:18486:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
+            // InternalChartDSL.g:19496:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalChartDSL.g:19496:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_0();
@@ -61143,14 +64532,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1"
-    // InternalChartDSL.g:18494:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
+    // InternalChartDSL.g:19504:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18498:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
-            // InternalChartDSL.g:18499:2: rule__JvmParameterizedTypeReference__Group__1__Impl
+            // InternalChartDSL.g:19508:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
+            // InternalChartDSL.g:19509:2: rule__JvmParameterizedTypeReference__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group__1__Impl();
@@ -61176,27 +64565,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1__Impl"
-    // InternalChartDSL.g:18505:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
+    // InternalChartDSL.g:19515:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
     public final void rule__JvmParameterizedTypeReference__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18509:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
-            // InternalChartDSL.g:18510:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalChartDSL.g:19519:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
+            // InternalChartDSL.g:19520:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
             {
-            // InternalChartDSL.g:18510:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
-            // InternalChartDSL.g:18511:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            // InternalChartDSL.g:19520:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalChartDSL.g:19521:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); 
             }
-            // InternalChartDSL.g:18512:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
-            int alt150=2;
-            alt150 = dfa150.predict(input);
-            switch (alt150) {
+            // InternalChartDSL.g:19522:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            int alt163=2;
+            alt163 = dfa163.predict(input);
+            switch (alt163) {
                 case 1 :
-                    // InternalChartDSL.g:18512:3: rule__JvmParameterizedTypeReference__Group_1__0
+                    // InternalChartDSL.g:19522:3: rule__JvmParameterizedTypeReference__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1__0();
@@ -61234,16 +64623,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0"
-    // InternalChartDSL.g:18521:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
+    // InternalChartDSL.g:19531:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18525:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
-            // InternalChartDSL.g:18526:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
+            // InternalChartDSL.g:19535:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
+            // InternalChartDSL.g:19536:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_103);
             rule__JvmParameterizedTypeReference__Group_1__0__Impl();
 
             state._fsp--;
@@ -61272,23 +64661,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0__Impl"
-    // InternalChartDSL.g:18533:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
+    // InternalChartDSL.g:19543:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18537:1: ( ( ( '<' ) ) )
-            // InternalChartDSL.g:18538:1: ( ( '<' ) )
+            // InternalChartDSL.g:19547:1: ( ( ( '<' ) ) )
+            // InternalChartDSL.g:19548:1: ( ( '<' ) )
             {
-            // InternalChartDSL.g:18538:1: ( ( '<' ) )
-            // InternalChartDSL.g:18539:2: ( '<' )
+            // InternalChartDSL.g:19548:1: ( ( '<' ) )
+            // InternalChartDSL.g:19549:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); 
             }
-            // InternalChartDSL.g:18540:2: ( '<' )
-            // InternalChartDSL.g:18540:3: '<'
+            // InternalChartDSL.g:19550:2: ( '<' )
+            // InternalChartDSL.g:19550:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -61319,16 +64708,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1"
-    // InternalChartDSL.g:18548:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
+    // InternalChartDSL.g:19558:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18552:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
-            // InternalChartDSL.g:18553:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
+            // InternalChartDSL.g:19562:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
+            // InternalChartDSL.g:19563:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_104);
             rule__JvmParameterizedTypeReference__Group_1__1__Impl();
 
             state._fsp--;
@@ -61357,23 +64746,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1__Impl"
-    // InternalChartDSL.g:18560:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
+    // InternalChartDSL.g:19570:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18564:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
-            // InternalChartDSL.g:18565:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalChartDSL.g:19574:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
+            // InternalChartDSL.g:19575:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
             {
-            // InternalChartDSL.g:18565:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
-            // InternalChartDSL.g:18566:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalChartDSL.g:19575:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalChartDSL.g:19576:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); 
             }
-            // InternalChartDSL.g:18567:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
-            // InternalChartDSL.g:18567:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
+            // InternalChartDSL.g:19577:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalChartDSL.g:19577:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1();
@@ -61408,16 +64797,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2"
-    // InternalChartDSL.g:18575:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
+    // InternalChartDSL.g:19585:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18579:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
-            // InternalChartDSL.g:18580:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
+            // InternalChartDSL.g:19589:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
+            // InternalChartDSL.g:19590:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_104);
             rule__JvmParameterizedTypeReference__Group_1__2__Impl();
 
             state._fsp--;
@@ -61446,37 +64835,37 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2__Impl"
-    // InternalChartDSL.g:18587:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
+    // InternalChartDSL.g:19597:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18591:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
-            // InternalChartDSL.g:18592:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalChartDSL.g:19601:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
+            // InternalChartDSL.g:19602:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
             {
-            // InternalChartDSL.g:18592:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
-            // InternalChartDSL.g:18593:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            // InternalChartDSL.g:19602:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalChartDSL.g:19603:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); 
             }
-            // InternalChartDSL.g:18594:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
-            loop151:
+            // InternalChartDSL.g:19604:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            loop164:
             do {
-                int alt151=2;
-                int LA151_0 = input.LA(1);
+                int alt164=2;
+                int LA164_0 = input.LA(1);
 
-                if ( (LA151_0==99) ) {
-                    alt151=1;
+                if ( (LA164_0==114) ) {
+                    alt164=1;
                 }
 
 
-                switch (alt151) {
+                switch (alt164) {
             	case 1 :
-            	    // InternalChartDSL.g:18594:3: rule__JvmParameterizedTypeReference__Group_1_2__0
+            	    // InternalChartDSL.g:19604:3: rule__JvmParameterizedTypeReference__Group_1_2__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__JvmParameterizedTypeReference__Group_1_2__0();
 
             	    state._fsp--;
@@ -61486,7 +64875,7 @@
             	    break;
 
             	default :
-            	    break loop151;
+            	    break loop164;
                 }
             } while (true);
 
@@ -61515,16 +64904,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3"
-    // InternalChartDSL.g:18602:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
+    // InternalChartDSL.g:19612:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18606:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
-            // InternalChartDSL.g:18607:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
+            // InternalChartDSL.g:19616:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
+            // InternalChartDSL.g:19617:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
             {
-            pushFollow(FOLLOW_137);
+            pushFollow(FOLLOW_142);
             rule__JvmParameterizedTypeReference__Group_1__3__Impl();
 
             state._fsp--;
@@ -61553,17 +64942,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3__Impl"
-    // InternalChartDSL.g:18614:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
+    // InternalChartDSL.g:19624:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18618:1: ( ( '>' ) )
-            // InternalChartDSL.g:18619:1: ( '>' )
+            // InternalChartDSL.g:19628:1: ( ( '>' ) )
+            // InternalChartDSL.g:19629:1: ( '>' )
             {
-            // InternalChartDSL.g:18619:1: ( '>' )
-            // InternalChartDSL.g:18620:2: '>'
+            // InternalChartDSL.g:19629:1: ( '>' )
+            // InternalChartDSL.g:19630:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
@@ -61594,14 +64983,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4"
-    // InternalChartDSL.g:18629:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
+    // InternalChartDSL.g:19639:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18633:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
-            // InternalChartDSL.g:18634:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
+            // InternalChartDSL.g:19643:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
+            // InternalChartDSL.g:19644:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1__4__Impl();
@@ -61627,35 +65016,35 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4__Impl"
-    // InternalChartDSL.g:18640:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
+    // InternalChartDSL.g:19650:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18644:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
-            // InternalChartDSL.g:18645:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalChartDSL.g:19654:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
+            // InternalChartDSL.g:19655:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
             {
-            // InternalChartDSL.g:18645:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
-            // InternalChartDSL.g:18646:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            // InternalChartDSL.g:19655:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalChartDSL.g:19656:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); 
             }
-            // InternalChartDSL.g:18647:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
-            loop152:
+            // InternalChartDSL.g:19657:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            loop165:
             do {
-                int alt152=2;
-                int LA152_0 = input.LA(1);
+                int alt165=2;
+                int LA165_0 = input.LA(1);
 
-                if ( (LA152_0==43) ) {
-                    int LA152_2 = input.LA(2);
+                if ( (LA165_0==43) ) {
+                    int LA165_2 = input.LA(2);
 
-                    if ( (LA152_2==RULE_ID) ) {
-                        int LA152_3 = input.LA(3);
+                    if ( (LA165_2==RULE_ID) ) {
+                        int LA165_3 = input.LA(3);
 
-                        if ( (synpred214_InternalChartDSL()) ) {
-                            alt152=1;
+                        if ( (synpred232_InternalChartDSL()) ) {
+                            alt165=1;
                         }
 
 
@@ -61665,11 +65054,11 @@
                 }
 
 
-                switch (alt152) {
+                switch (alt165) {
             	case 1 :
-            	    // InternalChartDSL.g:18647:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+            	    // InternalChartDSL.g:19657:3: rule__JvmParameterizedTypeReference__Group_1_4__0
             	    {
-            	    pushFollow(FOLLOW_138);
+            	    pushFollow(FOLLOW_143);
             	    rule__JvmParameterizedTypeReference__Group_1_4__0();
 
             	    state._fsp--;
@@ -61679,7 +65068,7 @@
             	    break;
 
             	default :
-            	    break loop152;
+            	    break loop165;
                 }
             } while (true);
 
@@ -61708,16 +65097,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0"
-    // InternalChartDSL.g:18656:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
+    // InternalChartDSL.g:19666:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18660:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
-            // InternalChartDSL.g:18661:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
+            // InternalChartDSL.g:19670:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
+            // InternalChartDSL.g:19671:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_103);
             rule__JvmParameterizedTypeReference__Group_1_2__0__Impl();
 
             state._fsp--;
@@ -61746,22 +65135,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"
-    // InternalChartDSL.g:18668:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:19678:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18672:1: ( ( ',' ) )
-            // InternalChartDSL.g:18673:1: ( ',' )
+            // InternalChartDSL.g:19682:1: ( ( ',' ) )
+            // InternalChartDSL.g:19683:1: ( ',' )
             {
-            // InternalChartDSL.g:18673:1: ( ',' )
-            // InternalChartDSL.g:18674:2: ','
+            // InternalChartDSL.g:19683:1: ( ',' )
+            // InternalChartDSL.g:19684:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
             }
@@ -61787,14 +65176,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1"
-    // InternalChartDSL.g:18683:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
+    // InternalChartDSL.g:19693:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18687:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
-            // InternalChartDSL.g:18688:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+            // InternalChartDSL.g:19697:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
+            // InternalChartDSL.g:19698:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_2__1__Impl();
@@ -61820,23 +65209,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"
-    // InternalChartDSL.g:18694:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
+    // InternalChartDSL.g:19704:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18698:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
-            // InternalChartDSL.g:18699:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalChartDSL.g:19708:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
+            // InternalChartDSL.g:19709:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
             {
-            // InternalChartDSL.g:18699:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
-            // InternalChartDSL.g:18700:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalChartDSL.g:19709:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalChartDSL.g:19710:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); 
             }
-            // InternalChartDSL.g:18701:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
-            // InternalChartDSL.g:18701:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
+            // InternalChartDSL.g:19711:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalChartDSL.g:19711:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1();
@@ -61871,14 +65260,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0"
-    // InternalChartDSL.g:18710:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
+    // InternalChartDSL.g:19720:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18714:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
-            // InternalChartDSL.g:18715:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
+            // InternalChartDSL.g:19724:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
+            // InternalChartDSL.g:19725:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
             {
             pushFollow(FOLLOW_7);
             rule__JvmParameterizedTypeReference__Group_1_4__0__Impl();
@@ -61909,23 +65298,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0__Impl"
-    // InternalChartDSL.g:18722:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
+    // InternalChartDSL.g:19732:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18726:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
-            // InternalChartDSL.g:18727:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalChartDSL.g:19736:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
+            // InternalChartDSL.g:19737:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
             {
-            // InternalChartDSL.g:18727:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
-            // InternalChartDSL.g:18728:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalChartDSL.g:19737:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalChartDSL.g:19738:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); 
             }
-            // InternalChartDSL.g:18729:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
-            // InternalChartDSL.g:18729:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
+            // InternalChartDSL.g:19739:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalChartDSL.g:19739:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0();
@@ -61960,16 +65349,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1"
-    // InternalChartDSL.g:18737:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
+    // InternalChartDSL.g:19747:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18741:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
-            // InternalChartDSL.g:18742:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
+            // InternalChartDSL.g:19751:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
+            // InternalChartDSL.g:19752:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
             {
-            pushFollow(FOLLOW_68);
+            pushFollow(FOLLOW_73);
             rule__JvmParameterizedTypeReference__Group_1_4__1__Impl();
 
             state._fsp--;
@@ -61998,23 +65387,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1__Impl"
-    // InternalChartDSL.g:18749:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
+    // InternalChartDSL.g:19759:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18753:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
-            // InternalChartDSL.g:18754:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalChartDSL.g:19763:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
+            // InternalChartDSL.g:19764:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
             {
-            // InternalChartDSL.g:18754:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
-            // InternalChartDSL.g:18755:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalChartDSL.g:19764:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalChartDSL.g:19765:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); 
             }
-            // InternalChartDSL.g:18756:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
-            // InternalChartDSL.g:18756:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
+            // InternalChartDSL.g:19766:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalChartDSL.g:19766:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1();
@@ -62049,14 +65438,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2"
-    // InternalChartDSL.g:18764:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
+    // InternalChartDSL.g:19774:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18768:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
-            // InternalChartDSL.g:18769:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
+            // InternalChartDSL.g:19778:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
+            // InternalChartDSL.g:19779:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4__2__Impl();
@@ -62082,27 +65471,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2__Impl"
-    // InternalChartDSL.g:18775:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
+    // InternalChartDSL.g:19785:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18779:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
-            // InternalChartDSL.g:18780:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalChartDSL.g:19789:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
+            // InternalChartDSL.g:19790:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
             {
-            // InternalChartDSL.g:18780:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
-            // InternalChartDSL.g:18781:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            // InternalChartDSL.g:19790:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalChartDSL.g:19791:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); 
             }
-            // InternalChartDSL.g:18782:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
-            int alt153=2;
-            alt153 = dfa153.predict(input);
-            switch (alt153) {
+            // InternalChartDSL.g:19792:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            int alt166=2;
+            alt166 = dfa166.predict(input);
+            switch (alt166) {
                 case 1 :
-                    // InternalChartDSL.g:18782:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+                    // InternalChartDSL.g:19792:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -62140,14 +65529,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0"
-    // InternalChartDSL.g:18791:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
+    // InternalChartDSL.g:19801:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18795:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
-            // InternalChartDSL.g:18796:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
+            // InternalChartDSL.g:19805:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
+            // InternalChartDSL.g:19806:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl();
@@ -62173,23 +65562,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl"
-    // InternalChartDSL.g:18802:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
+    // InternalChartDSL.g:19812:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18806:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
-            // InternalChartDSL.g:18807:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalChartDSL.g:19816:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
+            // InternalChartDSL.g:19817:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
             {
-            // InternalChartDSL.g:18807:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
-            // InternalChartDSL.g:18808:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalChartDSL.g:19817:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalChartDSL.g:19818:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); 
             }
-            // InternalChartDSL.g:18809:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
-            // InternalChartDSL.g:18809:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
+            // InternalChartDSL.g:19819:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalChartDSL.g:19819:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0();
@@ -62224,16 +65613,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0"
-    // InternalChartDSL.g:18818:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 ;
+    // InternalChartDSL.g:19828:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18822:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
-            // InternalChartDSL.g:18823:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
+            // InternalChartDSL.g:19832:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
+            // InternalChartDSL.g:19833:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
             {
-            pushFollow(FOLLOW_137);
+            pushFollow(FOLLOW_142);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl();
 
             state._fsp--;
@@ -62262,23 +65651,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl"
-    // InternalChartDSL.g:18830:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
+    // InternalChartDSL.g:19840:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18834:1: ( ( () ) )
-            // InternalChartDSL.g:18835:1: ( () )
+            // InternalChartDSL.g:19844:1: ( ( () ) )
+            // InternalChartDSL.g:19845:1: ( () )
             {
-            // InternalChartDSL.g:18835:1: ( () )
-            // InternalChartDSL.g:18836:2: ()
+            // InternalChartDSL.g:19845:1: ( () )
+            // InternalChartDSL.g:19846:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); 
             }
-            // InternalChartDSL.g:18837:2: ()
-            // InternalChartDSL.g:18837:3: 
+            // InternalChartDSL.g:19847:2: ()
+            // InternalChartDSL.g:19847:3: 
             {
             }
 
@@ -62303,14 +65692,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1"
-    // InternalChartDSL.g:18845:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
+    // InternalChartDSL.g:19855:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18849:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
-            // InternalChartDSL.g:18850:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
+            // InternalChartDSL.g:19859:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
+            // InternalChartDSL.g:19860:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl();
@@ -62336,17 +65725,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl"
-    // InternalChartDSL.g:18856:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
+    // InternalChartDSL.g:19866:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18860:1: ( ( '.' ) )
-            // InternalChartDSL.g:18861:1: ( '.' )
+            // InternalChartDSL.g:19870:1: ( ( '.' ) )
+            // InternalChartDSL.g:19871:1: ( '.' )
             {
-            // InternalChartDSL.g:18861:1: ( '.' )
-            // InternalChartDSL.g:18862:2: '.'
+            // InternalChartDSL.g:19871:1: ( '.' )
+            // InternalChartDSL.g:19872:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
@@ -62377,16 +65766,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0"
-    // InternalChartDSL.g:18872:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 ;
+    // InternalChartDSL.g:19882:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18876:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
-            // InternalChartDSL.g:18877:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
+            // InternalChartDSL.g:19886:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
+            // InternalChartDSL.g:19887:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_103);
             rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl();
 
             state._fsp--;
@@ -62415,23 +65804,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl"
-    // InternalChartDSL.g:18884:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
+    // InternalChartDSL.g:19894:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18888:1: ( ( ( '<' ) ) )
-            // InternalChartDSL.g:18889:1: ( ( '<' ) )
+            // InternalChartDSL.g:19898:1: ( ( ( '<' ) ) )
+            // InternalChartDSL.g:19899:1: ( ( '<' ) )
             {
-            // InternalChartDSL.g:18889:1: ( ( '<' ) )
-            // InternalChartDSL.g:18890:2: ( '<' )
+            // InternalChartDSL.g:19899:1: ( ( '<' ) )
+            // InternalChartDSL.g:19900:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); 
             }
-            // InternalChartDSL.g:18891:2: ( '<' )
-            // InternalChartDSL.g:18891:3: '<'
+            // InternalChartDSL.g:19901:2: ( '<' )
+            // InternalChartDSL.g:19901:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -62462,16 +65851,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1"
-    // InternalChartDSL.g:18899:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 ;
+    // InternalChartDSL.g:19909:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18903:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
-            // InternalChartDSL.g:18904:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
+            // InternalChartDSL.g:19913:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
+            // InternalChartDSL.g:19914:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_104);
             rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl();
 
             state._fsp--;
@@ -62500,23 +65889,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl"
-    // InternalChartDSL.g:18911:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
+    // InternalChartDSL.g:19921:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18915:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
-            // InternalChartDSL.g:18916:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalChartDSL.g:19925:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
+            // InternalChartDSL.g:19926:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
             {
-            // InternalChartDSL.g:18916:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
-            // InternalChartDSL.g:18917:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalChartDSL.g:19926:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalChartDSL.g:19927:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); 
             }
-            // InternalChartDSL.g:18918:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
-            // InternalChartDSL.g:18918:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
+            // InternalChartDSL.g:19928:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalChartDSL.g:19928:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1();
@@ -62551,16 +65940,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2"
-    // InternalChartDSL.g:18926:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2 : rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 ;
+    // InternalChartDSL.g:19936:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2 : rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18930:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
-            // InternalChartDSL.g:18931:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
+            // InternalChartDSL.g:19940:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
+            // InternalChartDSL.g:19941:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_104);
             rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl();
 
             state._fsp--;
@@ -62589,37 +65978,37 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl"
-    // InternalChartDSL.g:18938:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
+    // InternalChartDSL.g:19948:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18942:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
-            // InternalChartDSL.g:18943:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalChartDSL.g:19952:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
+            // InternalChartDSL.g:19953:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
             {
-            // InternalChartDSL.g:18943:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
-            // InternalChartDSL.g:18944:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            // InternalChartDSL.g:19953:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalChartDSL.g:19954:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); 
             }
-            // InternalChartDSL.g:18945:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
-            loop154:
+            // InternalChartDSL.g:19955:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            loop167:
             do {
-                int alt154=2;
-                int LA154_0 = input.LA(1);
+                int alt167=2;
+                int LA167_0 = input.LA(1);
 
-                if ( (LA154_0==99) ) {
-                    alt154=1;
+                if ( (LA167_0==114) ) {
+                    alt167=1;
                 }
 
 
-                switch (alt154) {
+                switch (alt167) {
             	case 1 :
-            	    // InternalChartDSL.g:18945:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
+            	    // InternalChartDSL.g:19955:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
             	    {
-            	    pushFollow(FOLLOW_60);
+            	    pushFollow(FOLLOW_65);
             	    rule__JvmParameterizedTypeReference__Group_1_4_2_2__0();
 
             	    state._fsp--;
@@ -62629,7 +66018,7 @@
             	    break;
 
             	default :
-            	    break loop154;
+            	    break loop167;
                 }
             } while (true);
 
@@ -62658,14 +66047,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3"
-    // InternalChartDSL.g:18953:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
+    // InternalChartDSL.g:19963:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18957:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
-            // InternalChartDSL.g:18958:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
+            // InternalChartDSL.g:19967:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
+            // InternalChartDSL.g:19968:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl();
@@ -62691,17 +66080,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl"
-    // InternalChartDSL.g:18964:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
+    // InternalChartDSL.g:19974:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18968:1: ( ( '>' ) )
-            // InternalChartDSL.g:18969:1: ( '>' )
+            // InternalChartDSL.g:19978:1: ( ( '>' ) )
+            // InternalChartDSL.g:19979:1: ( '>' )
             {
-            // InternalChartDSL.g:18969:1: ( '>' )
-            // InternalChartDSL.g:18970:2: '>'
+            // InternalChartDSL.g:19979:1: ( '>' )
+            // InternalChartDSL.g:19980:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
@@ -62732,16 +66121,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0"
-    // InternalChartDSL.g:18980:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 ;
+    // InternalChartDSL.g:19990:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18984:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
-            // InternalChartDSL.g:18985:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
+            // InternalChartDSL.g:19994:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
+            // InternalChartDSL.g:19995:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_103);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl();
 
             state._fsp--;
@@ -62770,22 +66159,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl"
-    // InternalChartDSL.g:18992:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
+    // InternalChartDSL.g:20002:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:18996:1: ( ( ',' ) )
-            // InternalChartDSL.g:18997:1: ( ',' )
+            // InternalChartDSL.g:20006:1: ( ( ',' ) )
+            // InternalChartDSL.g:20007:1: ( ',' )
             {
-            // InternalChartDSL.g:18997:1: ( ',' )
-            // InternalChartDSL.g:18998:2: ','
+            // InternalChartDSL.g:20007:1: ( ',' )
+            // InternalChartDSL.g:20008:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
             }
@@ -62811,14 +66200,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1"
-    // InternalChartDSL.g:19007:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
+    // InternalChartDSL.g:20017:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19011:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
-            // InternalChartDSL.g:19012:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
+            // InternalChartDSL.g:20021:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
+            // InternalChartDSL.g:20022:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl();
@@ -62844,23 +66233,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl"
-    // InternalChartDSL.g:19018:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
+    // InternalChartDSL.g:20028:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19022:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
-            // InternalChartDSL.g:19023:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalChartDSL.g:20032:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
+            // InternalChartDSL.g:20033:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
             {
-            // InternalChartDSL.g:19023:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
-            // InternalChartDSL.g:19024:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalChartDSL.g:20033:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalChartDSL.g:20034:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); 
             }
-            // InternalChartDSL.g:19025:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
-            // InternalChartDSL.g:19025:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
+            // InternalChartDSL.g:20035:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalChartDSL.g:20035:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1();
@@ -62895,16 +66284,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0"
-    // InternalChartDSL.g:19034:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
+    // InternalChartDSL.g:20044:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
     public final void rule__JvmWildcardTypeReference__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19038:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
-            // InternalChartDSL.g:19039:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
+            // InternalChartDSL.g:20048:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
+            // InternalChartDSL.g:20049:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_103);
             rule__JvmWildcardTypeReference__Group__0__Impl();
 
             state._fsp--;
@@ -62933,23 +66322,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0__Impl"
-    // InternalChartDSL.g:19046:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
+    // InternalChartDSL.g:20056:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
     public final void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19050:1: ( ( () ) )
-            // InternalChartDSL.g:19051:1: ( () )
+            // InternalChartDSL.g:20060:1: ( ( () ) )
+            // InternalChartDSL.g:20061:1: ( () )
             {
-            // InternalChartDSL.g:19051:1: ( () )
-            // InternalChartDSL.g:19052:2: ()
+            // InternalChartDSL.g:20061:1: ( () )
+            // InternalChartDSL.g:20062:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); 
             }
-            // InternalChartDSL.g:19053:2: ()
-            // InternalChartDSL.g:19053:3: 
+            // InternalChartDSL.g:20063:2: ()
+            // InternalChartDSL.g:20063:3: 
             {
             }
 
@@ -62974,16 +66363,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1"
-    // InternalChartDSL.g:19061:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
+    // InternalChartDSL.g:20071:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
     public final void rule__JvmWildcardTypeReference__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19065:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
-            // InternalChartDSL.g:19066:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
+            // InternalChartDSL.g:20075:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
+            // InternalChartDSL.g:20076:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
             {
-            pushFollow(FOLLOW_141);
+            pushFollow(FOLLOW_146);
             rule__JvmWildcardTypeReference__Group__1__Impl();
 
             state._fsp--;
@@ -63012,22 +66401,22 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1__Impl"
-    // InternalChartDSL.g:19073:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
+    // InternalChartDSL.g:20083:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
     public final void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19077:1: ( ( '?' ) )
-            // InternalChartDSL.g:19078:1: ( '?' )
+            // InternalChartDSL.g:20087:1: ( ( '?' ) )
+            // InternalChartDSL.g:20088:1: ( '?' )
             {
-            // InternalChartDSL.g:19078:1: ( '?' )
-            // InternalChartDSL.g:19079:2: '?'
+            // InternalChartDSL.g:20088:1: ( '?' )
+            // InternalChartDSL.g:20089:2: '?'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
             }
-            match(input,122,FOLLOW_2); if (state.failed) return ;
+            match(input,137,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
             }
@@ -63053,14 +66442,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2"
-    // InternalChartDSL.g:19088:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
+    // InternalChartDSL.g:20098:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
     public final void rule__JvmWildcardTypeReference__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19092:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
-            // InternalChartDSL.g:19093:2: rule__JvmWildcardTypeReference__Group__2__Impl
+            // InternalChartDSL.g:20102:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
+            // InternalChartDSL.g:20103:2: rule__JvmWildcardTypeReference__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group__2__Impl();
@@ -63086,31 +66475,31 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2__Impl"
-    // InternalChartDSL.g:19099:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
+    // InternalChartDSL.g:20109:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
     public final void rule__JvmWildcardTypeReference__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19103:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
-            // InternalChartDSL.g:19104:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalChartDSL.g:20113:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
+            // InternalChartDSL.g:20114:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
             {
-            // InternalChartDSL.g:19104:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
-            // InternalChartDSL.g:19105:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            // InternalChartDSL.g:20114:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalChartDSL.g:20115:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); 
             }
-            // InternalChartDSL.g:19106:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
-            int alt155=2;
-            int LA155_0 = input.LA(1);
+            // InternalChartDSL.g:20116:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            int alt168=2;
+            int LA168_0 = input.LA(1);
 
-            if ( (LA155_0==45||LA155_0==49) ) {
-                alt155=1;
+            if ( (LA168_0==45||LA168_0==49) ) {
+                alt168=1;
             }
-            switch (alt155) {
+            switch (alt168) {
                 case 1 :
-                    // InternalChartDSL.g:19106:3: rule__JvmWildcardTypeReference__Alternatives_2
+                    // InternalChartDSL.g:20116:3: rule__JvmWildcardTypeReference__Alternatives_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Alternatives_2();
@@ -63148,16 +66537,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0"
-    // InternalChartDSL.g:19115:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
+    // InternalChartDSL.g:20125:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19119:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
-            // InternalChartDSL.g:19120:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
+            // InternalChartDSL.g:20129:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
+            // InternalChartDSL.g:20130:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
             {
-            pushFollow(FOLLOW_142);
+            pushFollow(FOLLOW_147);
             rule__JvmWildcardTypeReference__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -63186,23 +66575,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0__Impl"
-    // InternalChartDSL.g:19127:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
+    // InternalChartDSL.g:20137:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19131:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
-            // InternalChartDSL.g:19132:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalChartDSL.g:20141:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
+            // InternalChartDSL.g:20142:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
             {
-            // InternalChartDSL.g:19132:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
-            // InternalChartDSL.g:19133:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalChartDSL.g:20142:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalChartDSL.g:20143:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); 
             }
-            // InternalChartDSL.g:19134:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
-            // InternalChartDSL.g:19134:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
+            // InternalChartDSL.g:20144:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalChartDSL.g:20144:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0();
@@ -63237,14 +66626,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1"
-    // InternalChartDSL.g:19142:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
+    // InternalChartDSL.g:20152:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19146:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
-            // InternalChartDSL.g:19147:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
+            // InternalChartDSL.g:20156:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
+            // InternalChartDSL.g:20157:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_0__1__Impl();
@@ -63270,37 +66659,37 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1__Impl"
-    // InternalChartDSL.g:19153:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
+    // InternalChartDSL.g:20163:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19157:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
-            // InternalChartDSL.g:19158:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalChartDSL.g:20167:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
+            // InternalChartDSL.g:20168:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
             {
-            // InternalChartDSL.g:19158:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
-            // InternalChartDSL.g:19159:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            // InternalChartDSL.g:20168:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalChartDSL.g:20169:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); 
             }
-            // InternalChartDSL.g:19160:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
-            loop156:
+            // InternalChartDSL.g:20170:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            loop169:
             do {
-                int alt156=2;
-                int LA156_0 = input.LA(1);
+                int alt169=2;
+                int LA169_0 = input.LA(1);
 
-                if ( (LA156_0==123) ) {
-                    alt156=1;
+                if ( (LA169_0==138) ) {
+                    alt169=1;
                 }
 
 
-                switch (alt156) {
+                switch (alt169) {
             	case 1 :
-            	    // InternalChartDSL.g:19160:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
+            	    // InternalChartDSL.g:20170:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
             	    {
-            	    pushFollow(FOLLOW_143);
+            	    pushFollow(FOLLOW_148);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1();
 
             	    state._fsp--;
@@ -63310,7 +66699,7 @@
             	    break;
 
             	default :
-            	    break loop156;
+            	    break loop169;
                 }
             } while (true);
 
@@ -63339,16 +66728,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0"
-    // InternalChartDSL.g:19169:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
+    // InternalChartDSL.g:20179:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19173:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
-            // InternalChartDSL.g:19174:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
+            // InternalChartDSL.g:20183:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
+            // InternalChartDSL.g:20184:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
             {
-            pushFollow(FOLLOW_142);
+            pushFollow(FOLLOW_147);
             rule__JvmWildcardTypeReference__Group_2_1__0__Impl();
 
             state._fsp--;
@@ -63377,23 +66766,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0__Impl"
-    // InternalChartDSL.g:19181:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
+    // InternalChartDSL.g:20191:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19185:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
-            // InternalChartDSL.g:19186:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalChartDSL.g:20195:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
+            // InternalChartDSL.g:20196:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
             {
-            // InternalChartDSL.g:19186:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
-            // InternalChartDSL.g:19187:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalChartDSL.g:20196:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalChartDSL.g:20197:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); 
             }
-            // InternalChartDSL.g:19188:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
-            // InternalChartDSL.g:19188:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
+            // InternalChartDSL.g:20198:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalChartDSL.g:20198:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0();
@@ -63428,14 +66817,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1"
-    // InternalChartDSL.g:19196:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
+    // InternalChartDSL.g:20206:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19200:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
-            // InternalChartDSL.g:19201:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
+            // InternalChartDSL.g:20210:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
+            // InternalChartDSL.g:20211:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_1__1__Impl();
@@ -63461,37 +66850,37 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1__Impl"
-    // InternalChartDSL.g:19207:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
+    // InternalChartDSL.g:20217:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19211:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
-            // InternalChartDSL.g:19212:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalChartDSL.g:20221:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
+            // InternalChartDSL.g:20222:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
             {
-            // InternalChartDSL.g:19212:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
-            // InternalChartDSL.g:19213:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            // InternalChartDSL.g:20222:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalChartDSL.g:20223:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); 
             }
-            // InternalChartDSL.g:19214:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
-            loop157:
+            // InternalChartDSL.g:20224:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            loop170:
             do {
-                int alt157=2;
-                int LA157_0 = input.LA(1);
+                int alt170=2;
+                int LA170_0 = input.LA(1);
 
-                if ( (LA157_0==123) ) {
-                    alt157=1;
+                if ( (LA170_0==138) ) {
+                    alt170=1;
                 }
 
 
-                switch (alt157) {
+                switch (alt170) {
             	case 1 :
-            	    // InternalChartDSL.g:19214:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
+            	    // InternalChartDSL.g:20224:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
             	    {
-            	    pushFollow(FOLLOW_143);
+            	    pushFollow(FOLLOW_148);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1();
 
             	    state._fsp--;
@@ -63501,7 +66890,7 @@
             	    break;
 
             	default :
-            	    break loop157;
+            	    break loop170;
                 }
             } while (true);
 
@@ -63530,16 +66919,16 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0"
-    // InternalChartDSL.g:19223:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
+    // InternalChartDSL.g:20233:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
     public final void rule__JvmUpperBound__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19227:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
-            // InternalChartDSL.g:19228:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
+            // InternalChartDSL.g:20237:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
+            // InternalChartDSL.g:20238:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__JvmUpperBound__Group__0__Impl();
 
             state._fsp--;
@@ -63568,17 +66957,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0__Impl"
-    // InternalChartDSL.g:19235:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
+    // InternalChartDSL.g:20245:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
     public final void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19239:1: ( ( 'extends' ) )
-            // InternalChartDSL.g:19240:1: ( 'extends' )
+            // InternalChartDSL.g:20249:1: ( ( 'extends' ) )
+            // InternalChartDSL.g:20250:1: ( 'extends' )
             {
-            // InternalChartDSL.g:19240:1: ( 'extends' )
-            // InternalChartDSL.g:19241:2: 'extends'
+            // InternalChartDSL.g:20250:1: ( 'extends' )
+            // InternalChartDSL.g:20251:2: 'extends'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
@@ -63609,14 +66998,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1"
-    // InternalChartDSL.g:19250:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
+    // InternalChartDSL.g:20260:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
     public final void rule__JvmUpperBound__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19254:1: ( rule__JvmUpperBound__Group__1__Impl )
-            // InternalChartDSL.g:19255:2: rule__JvmUpperBound__Group__1__Impl
+            // InternalChartDSL.g:20264:1: ( rule__JvmUpperBound__Group__1__Impl )
+            // InternalChartDSL.g:20265:2: rule__JvmUpperBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__Group__1__Impl();
@@ -63642,23 +67031,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1__Impl"
-    // InternalChartDSL.g:19261:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalChartDSL.g:20271:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmUpperBound__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19265:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
-            // InternalChartDSL.g:19266:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalChartDSL.g:20275:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
+            // InternalChartDSL.g:20276:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalChartDSL.g:19266:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
-            // InternalChartDSL.g:19267:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalChartDSL.g:20276:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalChartDSL.g:20277:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalChartDSL.g:19268:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
-            // InternalChartDSL.g:19268:3: rule__JvmUpperBound__TypeReferenceAssignment_1
+            // InternalChartDSL.g:20278:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalChartDSL.g:20278:3: rule__JvmUpperBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__TypeReferenceAssignment_1();
@@ -63693,16 +67082,16 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0"
-    // InternalChartDSL.g:19277:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
+    // InternalChartDSL.g:20287:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
     public final void rule__JvmUpperBoundAnded__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19281:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
-            // InternalChartDSL.g:19282:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
+            // InternalChartDSL.g:20291:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
+            // InternalChartDSL.g:20292:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__JvmUpperBoundAnded__Group__0__Impl();
 
             state._fsp--;
@@ -63731,22 +67120,22 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0__Impl"
-    // InternalChartDSL.g:19289:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalChartDSL.g:20299:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19293:1: ( ( '&' ) )
-            // InternalChartDSL.g:19294:1: ( '&' )
+            // InternalChartDSL.g:20303:1: ( ( '&' ) )
+            // InternalChartDSL.g:20304:1: ( '&' )
             {
-            // InternalChartDSL.g:19294:1: ( '&' )
-            // InternalChartDSL.g:19295:2: '&'
+            // InternalChartDSL.g:20304:1: ( '&' )
+            // InternalChartDSL.g:20305:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
             }
-            match(input,123,FOLLOW_2); if (state.failed) return ;
+            match(input,138,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
             }
@@ -63772,14 +67161,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1"
-    // InternalChartDSL.g:19304:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
+    // InternalChartDSL.g:20314:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
     public final void rule__JvmUpperBoundAnded__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19308:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
-            // InternalChartDSL.g:19309:2: rule__JvmUpperBoundAnded__Group__1__Impl
+            // InternalChartDSL.g:20318:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
+            // InternalChartDSL.g:20319:2: rule__JvmUpperBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__Group__1__Impl();
@@ -63805,23 +67194,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1__Impl"
-    // InternalChartDSL.g:19315:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalChartDSL.g:20325:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmUpperBoundAnded__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19319:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalChartDSL.g:19320:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalChartDSL.g:20329:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalChartDSL.g:20330:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalChartDSL.g:19320:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalChartDSL.g:19321:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalChartDSL.g:20330:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalChartDSL.g:20331:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalChartDSL.g:19322:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
-            // InternalChartDSL.g:19322:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
+            // InternalChartDSL.g:20332:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalChartDSL.g:20332:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__TypeReferenceAssignment_1();
@@ -63856,16 +67245,16 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0"
-    // InternalChartDSL.g:19331:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
+    // InternalChartDSL.g:20341:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
     public final void rule__JvmLowerBound__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19335:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
-            // InternalChartDSL.g:19336:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
+            // InternalChartDSL.g:20345:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
+            // InternalChartDSL.g:20346:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__JvmLowerBound__Group__0__Impl();
 
             state._fsp--;
@@ -63894,17 +67283,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0__Impl"
-    // InternalChartDSL.g:19343:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
+    // InternalChartDSL.g:20353:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
     public final void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19347:1: ( ( 'super' ) )
-            // InternalChartDSL.g:19348:1: ( 'super' )
+            // InternalChartDSL.g:20357:1: ( ( 'super' ) )
+            // InternalChartDSL.g:20358:1: ( 'super' )
             {
-            // InternalChartDSL.g:19348:1: ( 'super' )
-            // InternalChartDSL.g:19349:2: 'super'
+            // InternalChartDSL.g:20358:1: ( 'super' )
+            // InternalChartDSL.g:20359:2: 'super'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
@@ -63935,14 +67324,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1"
-    // InternalChartDSL.g:19358:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
+    // InternalChartDSL.g:20368:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
     public final void rule__JvmLowerBound__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19362:1: ( rule__JvmLowerBound__Group__1__Impl )
-            // InternalChartDSL.g:19363:2: rule__JvmLowerBound__Group__1__Impl
+            // InternalChartDSL.g:20372:1: ( rule__JvmLowerBound__Group__1__Impl )
+            // InternalChartDSL.g:20373:2: rule__JvmLowerBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__Group__1__Impl();
@@ -63968,23 +67357,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1__Impl"
-    // InternalChartDSL.g:19369:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalChartDSL.g:20379:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmLowerBound__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19373:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
-            // InternalChartDSL.g:19374:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalChartDSL.g:20383:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
+            // InternalChartDSL.g:20384:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalChartDSL.g:19374:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
-            // InternalChartDSL.g:19375:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalChartDSL.g:20384:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalChartDSL.g:20385:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalChartDSL.g:19376:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
-            // InternalChartDSL.g:19376:3: rule__JvmLowerBound__TypeReferenceAssignment_1
+            // InternalChartDSL.g:20386:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalChartDSL.g:20386:3: rule__JvmLowerBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__TypeReferenceAssignment_1();
@@ -64019,16 +67408,16 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0"
-    // InternalChartDSL.g:19385:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
+    // InternalChartDSL.g:20395:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
     public final void rule__JvmLowerBoundAnded__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19389:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
-            // InternalChartDSL.g:19390:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
+            // InternalChartDSL.g:20399:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
+            // InternalChartDSL.g:20400:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_83);
             rule__JvmLowerBoundAnded__Group__0__Impl();
 
             state._fsp--;
@@ -64057,22 +67446,22 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0__Impl"
-    // InternalChartDSL.g:19397:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalChartDSL.g:20407:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmLowerBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19401:1: ( ( '&' ) )
-            // InternalChartDSL.g:19402:1: ( '&' )
+            // InternalChartDSL.g:20411:1: ( ( '&' ) )
+            // InternalChartDSL.g:20412:1: ( '&' )
             {
-            // InternalChartDSL.g:19402:1: ( '&' )
-            // InternalChartDSL.g:19403:2: '&'
+            // InternalChartDSL.g:20412:1: ( '&' )
+            // InternalChartDSL.g:20413:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
             }
-            match(input,123,FOLLOW_2); if (state.failed) return ;
+            match(input,138,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
             }
@@ -64098,14 +67487,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1"
-    // InternalChartDSL.g:19412:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
+    // InternalChartDSL.g:20422:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
     public final void rule__JvmLowerBoundAnded__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19416:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
-            // InternalChartDSL.g:19417:2: rule__JvmLowerBoundAnded__Group__1__Impl
+            // InternalChartDSL.g:20426:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
+            // InternalChartDSL.g:20427:2: rule__JvmLowerBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__Group__1__Impl();
@@ -64131,23 +67520,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1__Impl"
-    // InternalChartDSL.g:19423:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalChartDSL.g:20433:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmLowerBoundAnded__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19427:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalChartDSL.g:19428:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalChartDSL.g:20437:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalChartDSL.g:20438:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalChartDSL.g:19428:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalChartDSL.g:19429:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalChartDSL.g:20438:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalChartDSL.g:20439:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalChartDSL.g:19430:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
-            // InternalChartDSL.g:19430:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
+            // InternalChartDSL.g:20440:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalChartDSL.g:20440:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__TypeReferenceAssignment_1();
@@ -64182,16 +67571,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0"
-    // InternalChartDSL.g:19439:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
+    // InternalChartDSL.g:20449:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
     public final void rule__QualifiedNameWithWildcard__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19443:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
-            // InternalChartDSL.g:19444:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
+            // InternalChartDSL.g:20453:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
+            // InternalChartDSL.g:20454:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
             {
-            pushFollow(FOLLOW_137);
+            pushFollow(FOLLOW_142);
             rule__QualifiedNameWithWildcard__Group__0__Impl();
 
             state._fsp--;
@@ -64220,17 +67609,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0__Impl"
-    // InternalChartDSL.g:19451:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
+    // InternalChartDSL.g:20461:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
     public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19455:1: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:19456:1: ( ruleQualifiedName )
+            // InternalChartDSL.g:20465:1: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:20466:1: ( ruleQualifiedName )
             {
-            // InternalChartDSL.g:19456:1: ( ruleQualifiedName )
-            // InternalChartDSL.g:19457:2: ruleQualifiedName
+            // InternalChartDSL.g:20466:1: ( ruleQualifiedName )
+            // InternalChartDSL.g:20467:2: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
@@ -64265,16 +67654,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1"
-    // InternalChartDSL.g:19466:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
+    // InternalChartDSL.g:20476:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
     public final void rule__QualifiedNameWithWildcard__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19470:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
-            // InternalChartDSL.g:19471:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
+            // InternalChartDSL.g:20480:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
+            // InternalChartDSL.g:20481:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
             {
-            pushFollow(FOLLOW_144);
+            pushFollow(FOLLOW_149);
             rule__QualifiedNameWithWildcard__Group__1__Impl();
 
             state._fsp--;
@@ -64303,17 +67692,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1__Impl"
-    // InternalChartDSL.g:19478:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
+    // InternalChartDSL.g:20488:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19482:1: ( ( '.' ) )
-            // InternalChartDSL.g:19483:1: ( '.' )
+            // InternalChartDSL.g:20492:1: ( ( '.' ) )
+            // InternalChartDSL.g:20493:1: ( '.' )
             {
-            // InternalChartDSL.g:19483:1: ( '.' )
-            // InternalChartDSL.g:19484:2: '.'
+            // InternalChartDSL.g:20493:1: ( '.' )
+            // InternalChartDSL.g:20494:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
@@ -64344,14 +67733,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2"
-    // InternalChartDSL.g:19493:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
+    // InternalChartDSL.g:20503:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
     public final void rule__QualifiedNameWithWildcard__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19497:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
-            // InternalChartDSL.g:19498:2: rule__QualifiedNameWithWildcard__Group__2__Impl
+            // InternalChartDSL.g:20507:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
+            // InternalChartDSL.g:20508:2: rule__QualifiedNameWithWildcard__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameWithWildcard__Group__2__Impl();
@@ -64377,17 +67766,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2__Impl"
-    // InternalChartDSL.g:19504:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
+    // InternalChartDSL.g:20514:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19508:1: ( ( '*' ) )
-            // InternalChartDSL.g:19509:1: ( '*' )
+            // InternalChartDSL.g:20518:1: ( ( '*' ) )
+            // InternalChartDSL.g:20519:1: ( '*' )
             {
-            // InternalChartDSL.g:19509:1: ( '*' )
-            // InternalChartDSL.g:19510:2: '*'
+            // InternalChartDSL.g:20519:1: ( '*' )
+            // InternalChartDSL.g:20520:2: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
@@ -64418,16 +67807,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0"
-    // InternalChartDSL.g:19520:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
+    // InternalChartDSL.g:20530:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
     public final void rule__QualifiedNameInStaticImport__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19524:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
-            // InternalChartDSL.g:19525:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
+            // InternalChartDSL.g:20534:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
+            // InternalChartDSL.g:20535:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
             {
-            pushFollow(FOLLOW_137);
+            pushFollow(FOLLOW_142);
             rule__QualifiedNameInStaticImport__Group__0__Impl();
 
             state._fsp--;
@@ -64456,17 +67845,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0__Impl"
-    // InternalChartDSL.g:19532:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
+    // InternalChartDSL.g:20542:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedNameInStaticImport__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19536:1: ( ( ruleValidID ) )
-            // InternalChartDSL.g:19537:1: ( ruleValidID )
+            // InternalChartDSL.g:20546:1: ( ( ruleValidID ) )
+            // InternalChartDSL.g:20547:1: ( ruleValidID )
             {
-            // InternalChartDSL.g:19537:1: ( ruleValidID )
-            // InternalChartDSL.g:19538:2: ruleValidID
+            // InternalChartDSL.g:20547:1: ( ruleValidID )
+            // InternalChartDSL.g:20548:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
@@ -64501,14 +67890,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1"
-    // InternalChartDSL.g:19547:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
+    // InternalChartDSL.g:20557:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
     public final void rule__QualifiedNameInStaticImport__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19551:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
-            // InternalChartDSL.g:19552:2: rule__QualifiedNameInStaticImport__Group__1__Impl
+            // InternalChartDSL.g:20561:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
+            // InternalChartDSL.g:20562:2: rule__QualifiedNameInStaticImport__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameInStaticImport__Group__1__Impl();
@@ -64534,17 +67923,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1__Impl"
-    // InternalChartDSL.g:19558:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
+    // InternalChartDSL.g:20568:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameInStaticImport__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19562:1: ( ( '.' ) )
-            // InternalChartDSL.g:19563:1: ( '.' )
+            // InternalChartDSL.g:20572:1: ( ( '.' ) )
+            // InternalChartDSL.g:20573:1: ( '.' )
             {
-            // InternalChartDSL.g:19563:1: ( '.' )
-            // InternalChartDSL.g:19564:2: '.'
+            // InternalChartDSL.g:20573:1: ( '.' )
+            // InternalChartDSL.g:20574:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
@@ -64575,27 +67964,27 @@
 
 
     // $ANTLR start "rule__Chart__UnorderedGroup_6"
-    // InternalChartDSL.g:19574:1: rule__Chart__UnorderedGroup_6 : ( rule__Chart__UnorderedGroup_6__0 )? ;
+    // InternalChartDSL.g:20584:1: rule__Chart__UnorderedGroup_6 : ( rule__Chart__UnorderedGroup_6__0 )? ;
     public final void rule__Chart__UnorderedGroup_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getChartAccess().getUnorderedGroup_6());
         	
         try {
-            // InternalChartDSL.g:19579:1: ( ( rule__Chart__UnorderedGroup_6__0 )? )
-            // InternalChartDSL.g:19580:2: ( rule__Chart__UnorderedGroup_6__0 )?
+            // InternalChartDSL.g:20589:1: ( ( rule__Chart__UnorderedGroup_6__0 )? )
+            // InternalChartDSL.g:20590:2: ( rule__Chart__UnorderedGroup_6__0 )?
             {
-            // InternalChartDSL.g:19580:2: ( rule__Chart__UnorderedGroup_6__0 )?
-            int alt158=2;
-            int LA158_0 = input.LA(1);
+            // InternalChartDSL.g:20590:2: ( rule__Chart__UnorderedGroup_6__0 )?
+            int alt171=2;
+            int LA171_0 = input.LA(1);
 
-            if ( LA158_0 == 125 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0) ) {
-                alt158=1;
+            if ( LA171_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0) ) {
+                alt171=1;
             }
-            else if ( LA158_0 == 76 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1) ) {
-                alt158=1;
+            else if ( LA171_0 == 84 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1) ) {
+                alt171=1;
             }
-            switch (alt158) {
+            switch (alt171) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__Chart__UnorderedGroup_6__0
                     {
@@ -64630,57 +68019,57 @@
 
 
     // $ANTLR start "rule__Chart__UnorderedGroup_6__Impl"
-    // InternalChartDSL.g:19588:1: rule__Chart__UnorderedGroup_6__Impl : ( ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) ) | ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) ) ) ;
+    // InternalChartDSL.g:20598:1: rule__Chart__UnorderedGroup_6__Impl : ( ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) ) | ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) ) ) ;
     public final void rule__Chart__UnorderedGroup_6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalChartDSL.g:19593:1: ( ( ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) ) | ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) ) ) )
-            // InternalChartDSL.g:19594:3: ( ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) ) | ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) ) )
+            // InternalChartDSL.g:20603:1: ( ( ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) ) | ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) ) ) )
+            // InternalChartDSL.g:20604:3: ( ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) ) | ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) ) )
             {
-            // InternalChartDSL.g:19594:3: ( ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) ) | ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) ) )
-            int alt159=2;
-            int LA159_0 = input.LA(1);
+            // InternalChartDSL.g:20604:3: ( ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) ) | ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) ) )
+            int alt172=2;
+            int LA172_0 = input.LA(1);
 
-            if ( LA159_0 == 125 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0) ) {
-                alt159=1;
+            if ( LA172_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0) ) {
+                alt172=1;
             }
-            else if ( LA159_0 == 76 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1) ) {
-                alt159=2;
+            else if ( LA172_0 == 84 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1) ) {
+                alt172=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 159, 0, input);
+                    new NoViableAltException("", 172, 0, input);
 
                 throw nvae;
             }
-            switch (alt159) {
+            switch (alt172) {
                 case 1 :
-                    // InternalChartDSL.g:19595:3: ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) )
+                    // InternalChartDSL.g:20605:3: ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) )
                     {
-                    // InternalChartDSL.g:19595:3: ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) )
-                    // InternalChartDSL.g:19596:4: {...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) )
+                    // InternalChartDSL.g:20605:3: ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) )
+                    // InternalChartDSL.g:20606:4: {...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__Chart__UnorderedGroup_6__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0)");
                     }
-                    // InternalChartDSL.g:19596:101: ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) )
-                    // InternalChartDSL.g:19597:5: ( ( rule__Chart__SelectByIdAssignment_6_0 ) )
+                    // InternalChartDSL.g:20606:101: ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) )
+                    // InternalChartDSL.g:20607:5: ( ( rule__Chart__SelectByIdAssignment_6_0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0);
                     selected = true;
-                    // InternalChartDSL.g:19603:5: ( ( rule__Chart__SelectByIdAssignment_6_0 ) )
-                    // InternalChartDSL.g:19604:6: ( rule__Chart__SelectByIdAssignment_6_0 )
+                    // InternalChartDSL.g:20613:5: ( ( rule__Chart__SelectByIdAssignment_6_0 ) )
+                    // InternalChartDSL.g:20614:6: ( rule__Chart__SelectByIdAssignment_6_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartAccess().getSelectByIdAssignment_6_0()); 
                     }
-                    // InternalChartDSL.g:19605:6: ( rule__Chart__SelectByIdAssignment_6_0 )
-                    // InternalChartDSL.g:19605:7: rule__Chart__SelectByIdAssignment_6_0
+                    // InternalChartDSL.g:20615:6: ( rule__Chart__SelectByIdAssignment_6_0 )
+                    // InternalChartDSL.g:20615:7: rule__Chart__SelectByIdAssignment_6_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Chart__SelectByIdAssignment_6_0();
@@ -64706,28 +68095,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:19610:3: ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) )
+                    // InternalChartDSL.g:20620:3: ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) )
                     {
-                    // InternalChartDSL.g:19610:3: ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) )
-                    // InternalChartDSL.g:19611:4: {...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) )
+                    // InternalChartDSL.g:20620:3: ({...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) ) )
+                    // InternalChartDSL.g:20621:4: {...}? => ( ( ( rule__Chart__Group_6_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__Chart__UnorderedGroup_6__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1)");
                     }
-                    // InternalChartDSL.g:19611:101: ( ( ( rule__Chart__Group_6_1__0 ) ) )
-                    // InternalChartDSL.g:19612:5: ( ( rule__Chart__Group_6_1__0 ) )
+                    // InternalChartDSL.g:20621:101: ( ( ( rule__Chart__Group_6_1__0 ) ) )
+                    // InternalChartDSL.g:20622:5: ( ( rule__Chart__Group_6_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1);
                     selected = true;
-                    // InternalChartDSL.g:19618:5: ( ( rule__Chart__Group_6_1__0 ) )
-                    // InternalChartDSL.g:19619:6: ( rule__Chart__Group_6_1__0 )
+                    // InternalChartDSL.g:20628:5: ( ( rule__Chart__Group_6_1__0 ) )
+                    // InternalChartDSL.g:20629:6: ( rule__Chart__Group_6_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartAccess().getGroup_6_1()); 
                     }
-                    // InternalChartDSL.g:19620:6: ( rule__Chart__Group_6_1__0 )
-                    // InternalChartDSL.g:19620:7: rule__Chart__Group_6_1__0
+                    // InternalChartDSL.g:20630:6: ( rule__Chart__Group_6_1__0 )
+                    // InternalChartDSL.g:20630:7: rule__Chart__Group_6_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Chart__Group_6_1__0();
@@ -64776,31 +68165,31 @@
 
 
     // $ANTLR start "rule__Chart__UnorderedGroup_6__0"
-    // InternalChartDSL.g:19633:1: rule__Chart__UnorderedGroup_6__0 : rule__Chart__UnorderedGroup_6__Impl ( rule__Chart__UnorderedGroup_6__1 )? ;
+    // InternalChartDSL.g:20643:1: rule__Chart__UnorderedGroup_6__0 : rule__Chart__UnorderedGroup_6__Impl ( rule__Chart__UnorderedGroup_6__1 )? ;
     public final void rule__Chart__UnorderedGroup_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19637:1: ( rule__Chart__UnorderedGroup_6__Impl ( rule__Chart__UnorderedGroup_6__1 )? )
-            // InternalChartDSL.g:19638:2: rule__Chart__UnorderedGroup_6__Impl ( rule__Chart__UnorderedGroup_6__1 )?
+            // InternalChartDSL.g:20647:1: ( rule__Chart__UnorderedGroup_6__Impl ( rule__Chart__UnorderedGroup_6__1 )? )
+            // InternalChartDSL.g:20648:2: rule__Chart__UnorderedGroup_6__Impl ( rule__Chart__UnorderedGroup_6__1 )?
             {
-            pushFollow(FOLLOW_145);
+            pushFollow(FOLLOW_150);
             rule__Chart__UnorderedGroup_6__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:19639:2: ( rule__Chart__UnorderedGroup_6__1 )?
-            int alt160=2;
-            int LA160_0 = input.LA(1);
+            // InternalChartDSL.g:20649:2: ( rule__Chart__UnorderedGroup_6__1 )?
+            int alt173=2;
+            int LA173_0 = input.LA(1);
 
-            if ( LA160_0 == 125 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0) ) {
-                alt160=1;
+            if ( LA173_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0) ) {
+                alt173=1;
             }
-            else if ( LA160_0 == 76 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1) ) {
-                alt160=1;
+            else if ( LA173_0 == 84 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1) ) {
+                alt173=1;
             }
-            switch (alt160) {
+            switch (alt173) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__Chart__UnorderedGroup_6__1
                     {
@@ -64834,14 +68223,14 @@
 
 
     // $ANTLR start "rule__Chart__UnorderedGroup_6__1"
-    // InternalChartDSL.g:19645:1: rule__Chart__UnorderedGroup_6__1 : rule__Chart__UnorderedGroup_6__Impl ;
+    // InternalChartDSL.g:20655:1: rule__Chart__UnorderedGroup_6__1 : rule__Chart__UnorderedGroup_6__Impl ;
     public final void rule__Chart__UnorderedGroup_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19649:1: ( rule__Chart__UnorderedGroup_6__Impl )
-            // InternalChartDSL.g:19650:2: rule__Chart__UnorderedGroup_6__Impl
+            // InternalChartDSL.g:20659:1: ( rule__Chart__UnorderedGroup_6__Impl )
+            // InternalChartDSL.g:20660:2: rule__Chart__UnorderedGroup_6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Chart__UnorderedGroup_6__Impl();
@@ -64867,33 +68256,33 @@
 
 
     // $ANTLR start "rule__ChartBar__UnorderedGroup_2"
-    // InternalChartDSL.g:19657:1: rule__ChartBar__UnorderedGroup_2 : ( rule__ChartBar__UnorderedGroup_2__0 )? ;
+    // InternalChartDSL.g:20667:1: rule__ChartBar__UnorderedGroup_2 : ( rule__ChartBar__UnorderedGroup_2__0 )? ;
     public final void rule__ChartBar__UnorderedGroup_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getChartBarAccess().getUnorderedGroup_2());
         	
         try {
-            // InternalChartDSL.g:19662:1: ( ( rule__ChartBar__UnorderedGroup_2__0 )? )
-            // InternalChartDSL.g:19663:2: ( rule__ChartBar__UnorderedGroup_2__0 )?
+            // InternalChartDSL.g:20672:1: ( ( rule__ChartBar__UnorderedGroup_2__0 )? )
+            // InternalChartDSL.g:20673:2: ( rule__ChartBar__UnorderedGroup_2__0 )?
             {
-            // InternalChartDSL.g:19663:2: ( rule__ChartBar__UnorderedGroup_2__0 )?
-            int alt161=2;
-            int LA161_0 = input.LA(1);
+            // InternalChartDSL.g:20673:2: ( rule__ChartBar__UnorderedGroup_2__0 )?
+            int alt174=2;
+            int LA174_0 = input.LA(1);
 
-            if ( LA161_0 == 126 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
-                alt161=1;
+            if ( LA174_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
+                alt174=1;
             }
-            else if ( LA161_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
-                alt161=1;
+            else if ( LA174_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
+                alt174=1;
             }
-            else if ( LA161_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
-                alt161=1;
+            else if ( LA174_0 == 144 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
+                alt174=1;
             }
-            else if ( LA161_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
-                alt161=1;
+            else if ( LA174_0 == 145 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
+                alt174=1;
             }
-            switch (alt161) {
+            switch (alt174) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartBar__UnorderedGroup_2__0
                     {
@@ -64928,63 +68317,63 @@
 
 
     // $ANTLR start "rule__ChartBar__UnorderedGroup_2__Impl"
-    // InternalChartDSL.g:19671:1: rule__ChartBar__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) ) ) ;
+    // InternalChartDSL.g:20681:1: rule__ChartBar__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) ) ) ;
     public final void rule__ChartBar__UnorderedGroup_2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalChartDSL.g:19676:1: ( ( ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) ) ) )
-            // InternalChartDSL.g:19677:3: ( ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) ) )
+            // InternalChartDSL.g:20686:1: ( ( ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) ) ) )
+            // InternalChartDSL.g:20687:3: ( ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) ) )
             {
-            // InternalChartDSL.g:19677:3: ( ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) ) )
-            int alt162=4;
-            int LA162_0 = input.LA(1);
+            // InternalChartDSL.g:20687:3: ( ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) ) )
+            int alt175=4;
+            int LA175_0 = input.LA(1);
 
-            if ( LA162_0 == 126 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
-                alt162=1;
+            if ( LA175_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
+                alt175=1;
             }
-            else if ( LA162_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
-                alt162=2;
+            else if ( LA175_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
+                alt175=2;
             }
-            else if ( LA162_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
-                alt162=3;
+            else if ( LA175_0 == 144 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
+                alt175=3;
             }
-            else if ( LA162_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
-                alt162=4;
+            else if ( LA175_0 == 145 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
+                alt175=4;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 162, 0, input);
+                    new NoViableAltException("", 175, 0, input);
 
                 throw nvae;
             }
-            switch (alt162) {
+            switch (alt175) {
                 case 1 :
-                    // InternalChartDSL.g:19678:3: ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) )
+                    // InternalChartDSL.g:20688:3: ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) )
                     {
-                    // InternalChartDSL.g:19678:3: ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) )
-                    // InternalChartDSL.g:19679:4: {...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) )
+                    // InternalChartDSL.g:20688:3: ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) )
+                    // InternalChartDSL.g:20689:4: {...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartBar__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0)");
                     }
-                    // InternalChartDSL.g:19679:104: ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) )
-                    // InternalChartDSL.g:19680:5: ( ( rule__ChartBar__ShadowAssignment_2_0 ) )
+                    // InternalChartDSL.g:20689:104: ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) )
+                    // InternalChartDSL.g:20690:5: ( ( rule__ChartBar__ShadowAssignment_2_0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0);
                     selected = true;
-                    // InternalChartDSL.g:19686:5: ( ( rule__ChartBar__ShadowAssignment_2_0 ) )
-                    // InternalChartDSL.g:19687:6: ( rule__ChartBar__ShadowAssignment_2_0 )
+                    // InternalChartDSL.g:20696:5: ( ( rule__ChartBar__ShadowAssignment_2_0 ) )
+                    // InternalChartDSL.g:20697:6: ( rule__ChartBar__ShadowAssignment_2_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartBarAccess().getShadowAssignment_2_0()); 
                     }
-                    // InternalChartDSL.g:19688:6: ( rule__ChartBar__ShadowAssignment_2_0 )
-                    // InternalChartDSL.g:19688:7: rule__ChartBar__ShadowAssignment_2_0
+                    // InternalChartDSL.g:20698:6: ( rule__ChartBar__ShadowAssignment_2_0 )
+                    // InternalChartDSL.g:20698:7: rule__ChartBar__ShadowAssignment_2_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartBar__ShadowAssignment_2_0();
@@ -65010,28 +68399,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:19693:3: ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) )
+                    // InternalChartDSL.g:20703:3: ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) )
                     {
-                    // InternalChartDSL.g:19693:3: ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) )
-                    // InternalChartDSL.g:19694:4: {...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) )
+                    // InternalChartDSL.g:20703:3: ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) )
+                    // InternalChartDSL.g:20704:4: {...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartBar__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1)");
                     }
-                    // InternalChartDSL.g:19694:104: ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) )
-                    // InternalChartDSL.g:19695:5: ( ( rule__ChartBar__AnimatedAssignment_2_1 ) )
+                    // InternalChartDSL.g:20704:104: ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) )
+                    // InternalChartDSL.g:20705:5: ( ( rule__ChartBar__AnimatedAssignment_2_1 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1);
                     selected = true;
-                    // InternalChartDSL.g:19701:5: ( ( rule__ChartBar__AnimatedAssignment_2_1 ) )
-                    // InternalChartDSL.g:19702:6: ( rule__ChartBar__AnimatedAssignment_2_1 )
+                    // InternalChartDSL.g:20711:5: ( ( rule__ChartBar__AnimatedAssignment_2_1 ) )
+                    // InternalChartDSL.g:20712:6: ( rule__ChartBar__AnimatedAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartBarAccess().getAnimatedAssignment_2_1()); 
                     }
-                    // InternalChartDSL.g:19703:6: ( rule__ChartBar__AnimatedAssignment_2_1 )
-                    // InternalChartDSL.g:19703:7: rule__ChartBar__AnimatedAssignment_2_1
+                    // InternalChartDSL.g:20713:6: ( rule__ChartBar__AnimatedAssignment_2_1 )
+                    // InternalChartDSL.g:20713:7: rule__ChartBar__AnimatedAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartBar__AnimatedAssignment_2_1();
@@ -65057,28 +68446,28 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:19708:3: ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) )
+                    // InternalChartDSL.g:20718:3: ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) )
                     {
-                    // InternalChartDSL.g:19708:3: ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) )
-                    // InternalChartDSL.g:19709:4: {...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) )
+                    // InternalChartDSL.g:20718:3: ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) )
+                    // InternalChartDSL.g:20719:4: {...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartBar__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2)");
                     }
-                    // InternalChartDSL.g:19709:104: ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) )
-                    // InternalChartDSL.g:19710:5: ( ( rule__ChartBar__SwappedAssignment_2_2 ) )
+                    // InternalChartDSL.g:20719:104: ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) )
+                    // InternalChartDSL.g:20720:5: ( ( rule__ChartBar__SwappedAssignment_2_2 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2);
                     selected = true;
-                    // InternalChartDSL.g:19716:5: ( ( rule__ChartBar__SwappedAssignment_2_2 ) )
-                    // InternalChartDSL.g:19717:6: ( rule__ChartBar__SwappedAssignment_2_2 )
+                    // InternalChartDSL.g:20726:5: ( ( rule__ChartBar__SwappedAssignment_2_2 ) )
+                    // InternalChartDSL.g:20727:6: ( rule__ChartBar__SwappedAssignment_2_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartBarAccess().getSwappedAssignment_2_2()); 
                     }
-                    // InternalChartDSL.g:19718:6: ( rule__ChartBar__SwappedAssignment_2_2 )
-                    // InternalChartDSL.g:19718:7: rule__ChartBar__SwappedAssignment_2_2
+                    // InternalChartDSL.g:20728:6: ( rule__ChartBar__SwappedAssignment_2_2 )
+                    // InternalChartDSL.g:20728:7: rule__ChartBar__SwappedAssignment_2_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartBar__SwappedAssignment_2_2();
@@ -65104,28 +68493,28 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:19723:3: ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) )
+                    // InternalChartDSL.g:20733:3: ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) )
                     {
-                    // InternalChartDSL.g:19723:3: ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) )
-                    // InternalChartDSL.g:19724:4: {...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) )
+                    // InternalChartDSL.g:20733:3: ({...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) ) )
+                    // InternalChartDSL.g:20734:4: {...}? => ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartBar__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3)");
                     }
-                    // InternalChartDSL.g:19724:104: ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) )
-                    // InternalChartDSL.g:19725:5: ( ( rule__ChartBar__StackedAssignment_2_3 ) )
+                    // InternalChartDSL.g:20734:104: ( ( ( rule__ChartBar__StackedAssignment_2_3 ) ) )
+                    // InternalChartDSL.g:20735:5: ( ( rule__ChartBar__StackedAssignment_2_3 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3);
                     selected = true;
-                    // InternalChartDSL.g:19731:5: ( ( rule__ChartBar__StackedAssignment_2_3 ) )
-                    // InternalChartDSL.g:19732:6: ( rule__ChartBar__StackedAssignment_2_3 )
+                    // InternalChartDSL.g:20741:5: ( ( rule__ChartBar__StackedAssignment_2_3 ) )
+                    // InternalChartDSL.g:20742:6: ( rule__ChartBar__StackedAssignment_2_3 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartBarAccess().getStackedAssignment_2_3()); 
                     }
-                    // InternalChartDSL.g:19733:6: ( rule__ChartBar__StackedAssignment_2_3 )
-                    // InternalChartDSL.g:19733:7: rule__ChartBar__StackedAssignment_2_3
+                    // InternalChartDSL.g:20743:6: ( rule__ChartBar__StackedAssignment_2_3 )
+                    // InternalChartDSL.g:20743:7: rule__ChartBar__StackedAssignment_2_3
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartBar__StackedAssignment_2_3();
@@ -65174,37 +68563,37 @@
 
 
     // $ANTLR start "rule__ChartBar__UnorderedGroup_2__0"
-    // InternalChartDSL.g:19746:1: rule__ChartBar__UnorderedGroup_2__0 : rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__1 )? ;
+    // InternalChartDSL.g:20756:1: rule__ChartBar__UnorderedGroup_2__0 : rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__1 )? ;
     public final void rule__ChartBar__UnorderedGroup_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19750:1: ( rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__1 )? )
-            // InternalChartDSL.g:19751:2: rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__1 )?
+            // InternalChartDSL.g:20760:1: ( rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__1 )? )
+            // InternalChartDSL.g:20761:2: rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__1 )?
             {
-            pushFollow(FOLLOW_146);
+            pushFollow(FOLLOW_151);
             rule__ChartBar__UnorderedGroup_2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:19752:2: ( rule__ChartBar__UnorderedGroup_2__1 )?
-            int alt163=2;
-            int LA163_0 = input.LA(1);
+            // InternalChartDSL.g:20762:2: ( rule__ChartBar__UnorderedGroup_2__1 )?
+            int alt176=2;
+            int LA176_0 = input.LA(1);
 
-            if ( LA163_0 == 126 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
-                alt163=1;
+            if ( LA176_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
+                alt176=1;
             }
-            else if ( LA163_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
-                alt163=1;
+            else if ( LA176_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
+                alt176=1;
             }
-            else if ( LA163_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
-                alt163=1;
+            else if ( LA176_0 == 144 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
+                alt176=1;
             }
-            else if ( LA163_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
-                alt163=1;
+            else if ( LA176_0 == 145 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
+                alt176=1;
             }
-            switch (alt163) {
+            switch (alt176) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartBar__UnorderedGroup_2__1
                     {
@@ -65238,37 +68627,37 @@
 
 
     // $ANTLR start "rule__ChartBar__UnorderedGroup_2__1"
-    // InternalChartDSL.g:19758:1: rule__ChartBar__UnorderedGroup_2__1 : rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__2 )? ;
+    // InternalChartDSL.g:20768:1: rule__ChartBar__UnorderedGroup_2__1 : rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__2 )? ;
     public final void rule__ChartBar__UnorderedGroup_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19762:1: ( rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__2 )? )
-            // InternalChartDSL.g:19763:2: rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__2 )?
+            // InternalChartDSL.g:20772:1: ( rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__2 )? )
+            // InternalChartDSL.g:20773:2: rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__2 )?
             {
-            pushFollow(FOLLOW_146);
+            pushFollow(FOLLOW_151);
             rule__ChartBar__UnorderedGroup_2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:19764:2: ( rule__ChartBar__UnorderedGroup_2__2 )?
-            int alt164=2;
-            int LA164_0 = input.LA(1);
+            // InternalChartDSL.g:20774:2: ( rule__ChartBar__UnorderedGroup_2__2 )?
+            int alt177=2;
+            int LA177_0 = input.LA(1);
 
-            if ( LA164_0 == 126 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
-                alt164=1;
+            if ( LA177_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
+                alt177=1;
             }
-            else if ( LA164_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
-                alt164=1;
+            else if ( LA177_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
+                alt177=1;
             }
-            else if ( LA164_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
-                alt164=1;
+            else if ( LA177_0 == 144 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
+                alt177=1;
             }
-            else if ( LA164_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
-                alt164=1;
+            else if ( LA177_0 == 145 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
+                alt177=1;
             }
-            switch (alt164) {
+            switch (alt177) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartBar__UnorderedGroup_2__2
                     {
@@ -65302,37 +68691,37 @@
 
 
     // $ANTLR start "rule__ChartBar__UnorderedGroup_2__2"
-    // InternalChartDSL.g:19770:1: rule__ChartBar__UnorderedGroup_2__2 : rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__3 )? ;
+    // InternalChartDSL.g:20780:1: rule__ChartBar__UnorderedGroup_2__2 : rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__3 )? ;
     public final void rule__ChartBar__UnorderedGroup_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19774:1: ( rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__3 )? )
-            // InternalChartDSL.g:19775:2: rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__3 )?
+            // InternalChartDSL.g:20784:1: ( rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__3 )? )
+            // InternalChartDSL.g:20785:2: rule__ChartBar__UnorderedGroup_2__Impl ( rule__ChartBar__UnorderedGroup_2__3 )?
             {
-            pushFollow(FOLLOW_146);
+            pushFollow(FOLLOW_151);
             rule__ChartBar__UnorderedGroup_2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:19776:2: ( rule__ChartBar__UnorderedGroup_2__3 )?
-            int alt165=2;
-            int LA165_0 = input.LA(1);
+            // InternalChartDSL.g:20786:2: ( rule__ChartBar__UnorderedGroup_2__3 )?
+            int alt178=2;
+            int LA178_0 = input.LA(1);
 
-            if ( LA165_0 == 126 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
-                alt165=1;
+            if ( LA178_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
+                alt178=1;
             }
-            else if ( LA165_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
-                alt165=1;
+            else if ( LA178_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
+                alt178=1;
             }
-            else if ( LA165_0 == 128 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
-                alt165=1;
+            else if ( LA178_0 == 144 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
+                alt178=1;
             }
-            else if ( LA165_0 == 129 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
-                alt165=1;
+            else if ( LA178_0 == 145 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
+                alt178=1;
             }
-            switch (alt165) {
+            switch (alt178) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartBar__UnorderedGroup_2__3
                     {
@@ -65366,14 +68755,14 @@
 
 
     // $ANTLR start "rule__ChartBar__UnorderedGroup_2__3"
-    // InternalChartDSL.g:19782:1: rule__ChartBar__UnorderedGroup_2__3 : rule__ChartBar__UnorderedGroup_2__Impl ;
+    // InternalChartDSL.g:20792:1: rule__ChartBar__UnorderedGroup_2__3 : rule__ChartBar__UnorderedGroup_2__Impl ;
     public final void rule__ChartBar__UnorderedGroup_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19786:1: ( rule__ChartBar__UnorderedGroup_2__Impl )
-            // InternalChartDSL.g:19787:2: rule__ChartBar__UnorderedGroup_2__Impl
+            // InternalChartDSL.g:20796:1: ( rule__ChartBar__UnorderedGroup_2__Impl )
+            // InternalChartDSL.g:20797:2: rule__ChartBar__UnorderedGroup_2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartBar__UnorderedGroup_2__Impl();
@@ -65399,39 +68788,39 @@
 
 
     // $ANTLR start "rule__ChartLine__UnorderedGroup_2"
-    // InternalChartDSL.g:19794:1: rule__ChartLine__UnorderedGroup_2 : ( rule__ChartLine__UnorderedGroup_2__0 )? ;
+    // InternalChartDSL.g:20804:1: rule__ChartLine__UnorderedGroup_2 : ( rule__ChartLine__UnorderedGroup_2__0 )? ;
     public final void rule__ChartLine__UnorderedGroup_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getChartLineAccess().getUnorderedGroup_2());
         	
         try {
-            // InternalChartDSL.g:19799:1: ( ( rule__ChartLine__UnorderedGroup_2__0 )? )
-            // InternalChartDSL.g:19800:2: ( rule__ChartLine__UnorderedGroup_2__0 )?
+            // InternalChartDSL.g:20809:1: ( ( rule__ChartLine__UnorderedGroup_2__0 )? )
+            // InternalChartDSL.g:20810:2: ( rule__ChartLine__UnorderedGroup_2__0 )?
             {
-            // InternalChartDSL.g:19800:2: ( rule__ChartLine__UnorderedGroup_2__0 )?
-            int alt166=2;
-            int LA166_0 = input.LA(1);
+            // InternalChartDSL.g:20810:2: ( rule__ChartLine__UnorderedGroup_2__0 )?
+            int alt179=2;
+            int LA179_0 = input.LA(1);
 
-            if ( LA166_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
-                alt166=1;
+            if ( LA179_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
+                alt179=1;
             }
-            else if ( LA166_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
-                alt166=1;
+            else if ( LA179_0 == 146 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
+                alt179=1;
             }
-            else if ( LA166_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
-                alt166=1;
+            else if ( LA179_0 == 147 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
+                alt179=1;
             }
-            else if ( LA166_0 == 132 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
-                alt166=1;
+            else if ( LA179_0 == 148 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
+                alt179=1;
             }
-            else if ( LA166_0 == 134 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
-                alt166=1;
+            else if ( LA179_0 == 150 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
+                alt179=1;
             }
-            else if ( LA166_0 == 135 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
-                alt166=1;
+            else if ( LA179_0 == 151 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
+                alt179=1;
             }
-            switch (alt166) {
+            switch (alt179) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartLine__UnorderedGroup_2__0
                     {
@@ -65466,69 +68855,69 @@
 
 
     // $ANTLR start "rule__ChartLine__UnorderedGroup_2__Impl"
-    // InternalChartDSL.g:19808:1: rule__ChartLine__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) ) ) ;
+    // InternalChartDSL.g:20818:1: rule__ChartLine__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) ) ) ;
     public final void rule__ChartLine__UnorderedGroup_2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalChartDSL.g:19813:1: ( ( ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) ) ) )
-            // InternalChartDSL.g:19814:3: ( ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) ) )
+            // InternalChartDSL.g:20823:1: ( ( ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) ) ) )
+            // InternalChartDSL.g:20824:3: ( ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) ) )
             {
-            // InternalChartDSL.g:19814:3: ( ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) ) )
-            int alt167=6;
-            int LA167_0 = input.LA(1);
+            // InternalChartDSL.g:20824:3: ( ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) ) )
+            int alt180=6;
+            int LA180_0 = input.LA(1);
 
-            if ( LA167_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
-                alt167=1;
+            if ( LA180_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
+                alt180=1;
             }
-            else if ( LA167_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
-                alt167=2;
+            else if ( LA180_0 == 146 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
+                alt180=2;
             }
-            else if ( LA167_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
-                alt167=3;
+            else if ( LA180_0 == 147 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
+                alt180=3;
             }
-            else if ( LA167_0 == 132 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
-                alt167=4;
+            else if ( LA180_0 == 148 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
+                alt180=4;
             }
-            else if ( LA167_0 == 134 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
-                alt167=5;
+            else if ( LA180_0 == 150 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
+                alt180=5;
             }
-            else if ( LA167_0 == 135 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
-                alt167=6;
+            else if ( LA180_0 == 151 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
+                alt180=6;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 167, 0, input);
+                    new NoViableAltException("", 180, 0, input);
 
                 throw nvae;
             }
-            switch (alt167) {
+            switch (alt180) {
                 case 1 :
-                    // InternalChartDSL.g:19815:3: ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) )
+                    // InternalChartDSL.g:20825:3: ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) )
                     {
-                    // InternalChartDSL.g:19815:3: ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) )
-                    // InternalChartDSL.g:19816:4: {...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) )
+                    // InternalChartDSL.g:20825:3: ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) )
+                    // InternalChartDSL.g:20826:4: {...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartLine__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0)");
                     }
-                    // InternalChartDSL.g:19816:105: ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) )
-                    // InternalChartDSL.g:19817:5: ( ( rule__ChartLine__AnimatedAssignment_2_0 ) )
+                    // InternalChartDSL.g:20826:105: ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) )
+                    // InternalChartDSL.g:20827:5: ( ( rule__ChartLine__AnimatedAssignment_2_0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0);
                     selected = true;
-                    // InternalChartDSL.g:19823:5: ( ( rule__ChartLine__AnimatedAssignment_2_0 ) )
-                    // InternalChartDSL.g:19824:6: ( rule__ChartLine__AnimatedAssignment_2_0 )
+                    // InternalChartDSL.g:20833:5: ( ( rule__ChartLine__AnimatedAssignment_2_0 ) )
+                    // InternalChartDSL.g:20834:6: ( rule__ChartLine__AnimatedAssignment_2_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartLineAccess().getAnimatedAssignment_2_0()); 
                     }
-                    // InternalChartDSL.g:19825:6: ( rule__ChartLine__AnimatedAssignment_2_0 )
-                    // InternalChartDSL.g:19825:7: rule__ChartLine__AnimatedAssignment_2_0
+                    // InternalChartDSL.g:20835:6: ( rule__ChartLine__AnimatedAssignment_2_0 )
+                    // InternalChartDSL.g:20835:7: rule__ChartLine__AnimatedAssignment_2_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartLine__AnimatedAssignment_2_0();
@@ -65554,28 +68943,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:19830:3: ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) )
+                    // InternalChartDSL.g:20840:3: ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) )
                     {
-                    // InternalChartDSL.g:19830:3: ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) )
-                    // InternalChartDSL.g:19831:4: {...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) )
+                    // InternalChartDSL.g:20840:3: ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) )
+                    // InternalChartDSL.g:20841:4: {...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartLine__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1)");
                     }
-                    // InternalChartDSL.g:19831:105: ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) )
-                    // InternalChartDSL.g:19832:5: ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) )
+                    // InternalChartDSL.g:20841:105: ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) )
+                    // InternalChartDSL.g:20842:5: ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1);
                     selected = true;
-                    // InternalChartDSL.g:19838:5: ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) )
-                    // InternalChartDSL.g:19839:6: ( rule__ChartLine__ShowMarkerAssignment_2_1 )
+                    // InternalChartDSL.g:20848:5: ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) )
+                    // InternalChartDSL.g:20849:6: ( rule__ChartLine__ShowMarkerAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartLineAccess().getShowMarkerAssignment_2_1()); 
                     }
-                    // InternalChartDSL.g:19840:6: ( rule__ChartLine__ShowMarkerAssignment_2_1 )
-                    // InternalChartDSL.g:19840:7: rule__ChartLine__ShowMarkerAssignment_2_1
+                    // InternalChartDSL.g:20850:6: ( rule__ChartLine__ShowMarkerAssignment_2_1 )
+                    // InternalChartDSL.g:20850:7: rule__ChartLine__ShowMarkerAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartLine__ShowMarkerAssignment_2_1();
@@ -65601,28 +68990,28 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:19845:3: ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) )
+                    // InternalChartDSL.g:20855:3: ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) )
                     {
-                    // InternalChartDSL.g:19845:3: ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) )
-                    // InternalChartDSL.g:19846:4: {...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) )
+                    // InternalChartDSL.g:20855:3: ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) )
+                    // InternalChartDSL.g:20856:4: {...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartLine__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2)");
                     }
-                    // InternalChartDSL.g:19846:105: ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) )
-                    // InternalChartDSL.g:19847:5: ( ( rule__ChartLine__TrendLineAssignment_2_2 ) )
+                    // InternalChartDSL.g:20856:105: ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) )
+                    // InternalChartDSL.g:20857:5: ( ( rule__ChartLine__TrendLineAssignment_2_2 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2);
                     selected = true;
-                    // InternalChartDSL.g:19853:5: ( ( rule__ChartLine__TrendLineAssignment_2_2 ) )
-                    // InternalChartDSL.g:19854:6: ( rule__ChartLine__TrendLineAssignment_2_2 )
+                    // InternalChartDSL.g:20863:5: ( ( rule__ChartLine__TrendLineAssignment_2_2 ) )
+                    // InternalChartDSL.g:20864:6: ( rule__ChartLine__TrendLineAssignment_2_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartLineAccess().getTrendLineAssignment_2_2()); 
                     }
-                    // InternalChartDSL.g:19855:6: ( rule__ChartLine__TrendLineAssignment_2_2 )
-                    // InternalChartDSL.g:19855:7: rule__ChartLine__TrendLineAssignment_2_2
+                    // InternalChartDSL.g:20865:6: ( rule__ChartLine__TrendLineAssignment_2_2 )
+                    // InternalChartDSL.g:20865:7: rule__ChartLine__TrendLineAssignment_2_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartLine__TrendLineAssignment_2_2();
@@ -65648,28 +69037,28 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:19860:3: ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) )
+                    // InternalChartDSL.g:20870:3: ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) )
                     {
-                    // InternalChartDSL.g:19860:3: ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) )
-                    // InternalChartDSL.g:19861:4: {...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) )
+                    // InternalChartDSL.g:20870:3: ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) )
+                    // InternalChartDSL.g:20871:4: {...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartLine__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3)");
                     }
-                    // InternalChartDSL.g:19861:105: ( ( ( rule__ChartLine__Group_2_3__0 ) ) )
-                    // InternalChartDSL.g:19862:5: ( ( rule__ChartLine__Group_2_3__0 ) )
+                    // InternalChartDSL.g:20871:105: ( ( ( rule__ChartLine__Group_2_3__0 ) ) )
+                    // InternalChartDSL.g:20872:5: ( ( rule__ChartLine__Group_2_3__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3);
                     selected = true;
-                    // InternalChartDSL.g:19868:5: ( ( rule__ChartLine__Group_2_3__0 ) )
-                    // InternalChartDSL.g:19869:6: ( rule__ChartLine__Group_2_3__0 )
+                    // InternalChartDSL.g:20878:5: ( ( rule__ChartLine__Group_2_3__0 ) )
+                    // InternalChartDSL.g:20879:6: ( rule__ChartLine__Group_2_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartLineAccess().getGroup_2_3()); 
                     }
-                    // InternalChartDSL.g:19870:6: ( rule__ChartLine__Group_2_3__0 )
-                    // InternalChartDSL.g:19870:7: rule__ChartLine__Group_2_3__0
+                    // InternalChartDSL.g:20880:6: ( rule__ChartLine__Group_2_3__0 )
+                    // InternalChartDSL.g:20880:7: rule__ChartLine__Group_2_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartLine__Group_2_3__0();
@@ -65695,28 +69084,28 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:19875:3: ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) )
+                    // InternalChartDSL.g:20885:3: ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) )
                     {
-                    // InternalChartDSL.g:19875:3: ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) )
-                    // InternalChartDSL.g:19876:4: {...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) )
+                    // InternalChartDSL.g:20885:3: ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) )
+                    // InternalChartDSL.g:20886:4: {...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartLine__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4)");
                     }
-                    // InternalChartDSL.g:19876:105: ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) )
-                    // InternalChartDSL.g:19877:5: ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) )
+                    // InternalChartDSL.g:20886:105: ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) )
+                    // InternalChartDSL.g:20887:5: ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4);
                     selected = true;
-                    // InternalChartDSL.g:19883:5: ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) )
-                    // InternalChartDSL.g:19884:6: ( rule__ChartLine__FillToZeroAssignment_2_4 )
+                    // InternalChartDSL.g:20893:5: ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) )
+                    // InternalChartDSL.g:20894:6: ( rule__ChartLine__FillToZeroAssignment_2_4 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartLineAccess().getFillToZeroAssignment_2_4()); 
                     }
-                    // InternalChartDSL.g:19885:6: ( rule__ChartLine__FillToZeroAssignment_2_4 )
-                    // InternalChartDSL.g:19885:7: rule__ChartLine__FillToZeroAssignment_2_4
+                    // InternalChartDSL.g:20895:6: ( rule__ChartLine__FillToZeroAssignment_2_4 )
+                    // InternalChartDSL.g:20895:7: rule__ChartLine__FillToZeroAssignment_2_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartLine__FillToZeroAssignment_2_4();
@@ -65742,28 +69131,28 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:19890:3: ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) )
+                    // InternalChartDSL.g:20900:3: ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) )
                     {
-                    // InternalChartDSL.g:19890:3: ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) )
-                    // InternalChartDSL.g:19891:4: {...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) )
+                    // InternalChartDSL.g:20900:3: ({...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) ) )
+                    // InternalChartDSL.g:20901:4: {...}? => ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartLine__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5)");
                     }
-                    // InternalChartDSL.g:19891:105: ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) )
-                    // InternalChartDSL.g:19892:5: ( ( rule__ChartLine__FillAreaAssignment_2_5 ) )
+                    // InternalChartDSL.g:20901:105: ( ( ( rule__ChartLine__FillAreaAssignment_2_5 ) ) )
+                    // InternalChartDSL.g:20902:5: ( ( rule__ChartLine__FillAreaAssignment_2_5 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5);
                     selected = true;
-                    // InternalChartDSL.g:19898:5: ( ( rule__ChartLine__FillAreaAssignment_2_5 ) )
-                    // InternalChartDSL.g:19899:6: ( rule__ChartLine__FillAreaAssignment_2_5 )
+                    // InternalChartDSL.g:20908:5: ( ( rule__ChartLine__FillAreaAssignment_2_5 ) )
+                    // InternalChartDSL.g:20909:6: ( rule__ChartLine__FillAreaAssignment_2_5 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartLineAccess().getFillAreaAssignment_2_5()); 
                     }
-                    // InternalChartDSL.g:19900:6: ( rule__ChartLine__FillAreaAssignment_2_5 )
-                    // InternalChartDSL.g:19900:7: rule__ChartLine__FillAreaAssignment_2_5
+                    // InternalChartDSL.g:20910:6: ( rule__ChartLine__FillAreaAssignment_2_5 )
+                    // InternalChartDSL.g:20910:7: rule__ChartLine__FillAreaAssignment_2_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartLine__FillAreaAssignment_2_5();
@@ -65812,43 +69201,43 @@
 
 
     // $ANTLR start "rule__ChartLine__UnorderedGroup_2__0"
-    // InternalChartDSL.g:19913:1: rule__ChartLine__UnorderedGroup_2__0 : rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__1 )? ;
+    // InternalChartDSL.g:20923:1: rule__ChartLine__UnorderedGroup_2__0 : rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__1 )? ;
     public final void rule__ChartLine__UnorderedGroup_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19917:1: ( rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__1 )? )
-            // InternalChartDSL.g:19918:2: rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__1 )?
+            // InternalChartDSL.g:20927:1: ( rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__1 )? )
+            // InternalChartDSL.g:20928:2: rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__1 )?
             {
-            pushFollow(FOLLOW_147);
+            pushFollow(FOLLOW_152);
             rule__ChartLine__UnorderedGroup_2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:19919:2: ( rule__ChartLine__UnorderedGroup_2__1 )?
-            int alt168=2;
-            int LA168_0 = input.LA(1);
+            // InternalChartDSL.g:20929:2: ( rule__ChartLine__UnorderedGroup_2__1 )?
+            int alt181=2;
+            int LA181_0 = input.LA(1);
 
-            if ( LA168_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
-                alt168=1;
+            if ( LA181_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
+                alt181=1;
             }
-            else if ( LA168_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
-                alt168=1;
+            else if ( LA181_0 == 146 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
+                alt181=1;
             }
-            else if ( LA168_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
-                alt168=1;
+            else if ( LA181_0 == 147 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
+                alt181=1;
             }
-            else if ( LA168_0 == 132 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
-                alt168=1;
+            else if ( LA181_0 == 148 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
+                alt181=1;
             }
-            else if ( LA168_0 == 134 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
-                alt168=1;
+            else if ( LA181_0 == 150 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
+                alt181=1;
             }
-            else if ( LA168_0 == 135 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
-                alt168=1;
+            else if ( LA181_0 == 151 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
+                alt181=1;
             }
-            switch (alt168) {
+            switch (alt181) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartLine__UnorderedGroup_2__1
                     {
@@ -65882,43 +69271,43 @@
 
 
     // $ANTLR start "rule__ChartLine__UnorderedGroup_2__1"
-    // InternalChartDSL.g:19925:1: rule__ChartLine__UnorderedGroup_2__1 : rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__2 )? ;
+    // InternalChartDSL.g:20935:1: rule__ChartLine__UnorderedGroup_2__1 : rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__2 )? ;
     public final void rule__ChartLine__UnorderedGroup_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19929:1: ( rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__2 )? )
-            // InternalChartDSL.g:19930:2: rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__2 )?
+            // InternalChartDSL.g:20939:1: ( rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__2 )? )
+            // InternalChartDSL.g:20940:2: rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__2 )?
             {
-            pushFollow(FOLLOW_147);
+            pushFollow(FOLLOW_152);
             rule__ChartLine__UnorderedGroup_2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:19931:2: ( rule__ChartLine__UnorderedGroup_2__2 )?
-            int alt169=2;
-            int LA169_0 = input.LA(1);
+            // InternalChartDSL.g:20941:2: ( rule__ChartLine__UnorderedGroup_2__2 )?
+            int alt182=2;
+            int LA182_0 = input.LA(1);
 
-            if ( LA169_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
-                alt169=1;
+            if ( LA182_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
+                alt182=1;
             }
-            else if ( LA169_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
-                alt169=1;
+            else if ( LA182_0 == 146 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
+                alt182=1;
             }
-            else if ( LA169_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
-                alt169=1;
+            else if ( LA182_0 == 147 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
+                alt182=1;
             }
-            else if ( LA169_0 == 132 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
-                alt169=1;
+            else if ( LA182_0 == 148 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
+                alt182=1;
             }
-            else if ( LA169_0 == 134 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
-                alt169=1;
+            else if ( LA182_0 == 150 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
+                alt182=1;
             }
-            else if ( LA169_0 == 135 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
-                alt169=1;
+            else if ( LA182_0 == 151 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
+                alt182=1;
             }
-            switch (alt169) {
+            switch (alt182) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartLine__UnorderedGroup_2__2
                     {
@@ -65952,43 +69341,43 @@
 
 
     // $ANTLR start "rule__ChartLine__UnorderedGroup_2__2"
-    // InternalChartDSL.g:19937:1: rule__ChartLine__UnorderedGroup_2__2 : rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__3 )? ;
+    // InternalChartDSL.g:20947:1: rule__ChartLine__UnorderedGroup_2__2 : rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__3 )? ;
     public final void rule__ChartLine__UnorderedGroup_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19941:1: ( rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__3 )? )
-            // InternalChartDSL.g:19942:2: rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__3 )?
+            // InternalChartDSL.g:20951:1: ( rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__3 )? )
+            // InternalChartDSL.g:20952:2: rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__3 )?
             {
-            pushFollow(FOLLOW_147);
+            pushFollow(FOLLOW_152);
             rule__ChartLine__UnorderedGroup_2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:19943:2: ( rule__ChartLine__UnorderedGroup_2__3 )?
-            int alt170=2;
-            int LA170_0 = input.LA(1);
+            // InternalChartDSL.g:20953:2: ( rule__ChartLine__UnorderedGroup_2__3 )?
+            int alt183=2;
+            int LA183_0 = input.LA(1);
 
-            if ( LA170_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
-                alt170=1;
+            if ( LA183_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
+                alt183=1;
             }
-            else if ( LA170_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
-                alt170=1;
+            else if ( LA183_0 == 146 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
+                alt183=1;
             }
-            else if ( LA170_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
-                alt170=1;
+            else if ( LA183_0 == 147 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
+                alt183=1;
             }
-            else if ( LA170_0 == 132 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
-                alt170=1;
+            else if ( LA183_0 == 148 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
+                alt183=1;
             }
-            else if ( LA170_0 == 134 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
-                alt170=1;
+            else if ( LA183_0 == 150 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
+                alt183=1;
             }
-            else if ( LA170_0 == 135 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
-                alt170=1;
+            else if ( LA183_0 == 151 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
+                alt183=1;
             }
-            switch (alt170) {
+            switch (alt183) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartLine__UnorderedGroup_2__3
                     {
@@ -66022,43 +69411,43 @@
 
 
     // $ANTLR start "rule__ChartLine__UnorderedGroup_2__3"
-    // InternalChartDSL.g:19949:1: rule__ChartLine__UnorderedGroup_2__3 : rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__4 )? ;
+    // InternalChartDSL.g:20959:1: rule__ChartLine__UnorderedGroup_2__3 : rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__4 )? ;
     public final void rule__ChartLine__UnorderedGroup_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19953:1: ( rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__4 )? )
-            // InternalChartDSL.g:19954:2: rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__4 )?
+            // InternalChartDSL.g:20963:1: ( rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__4 )? )
+            // InternalChartDSL.g:20964:2: rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__4 )?
             {
-            pushFollow(FOLLOW_147);
+            pushFollow(FOLLOW_152);
             rule__ChartLine__UnorderedGroup_2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:19955:2: ( rule__ChartLine__UnorderedGroup_2__4 )?
-            int alt171=2;
-            int LA171_0 = input.LA(1);
+            // InternalChartDSL.g:20965:2: ( rule__ChartLine__UnorderedGroup_2__4 )?
+            int alt184=2;
+            int LA184_0 = input.LA(1);
 
-            if ( LA171_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
-                alt171=1;
+            if ( LA184_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
+                alt184=1;
             }
-            else if ( LA171_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
-                alt171=1;
+            else if ( LA184_0 == 146 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
+                alt184=1;
             }
-            else if ( LA171_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
-                alt171=1;
+            else if ( LA184_0 == 147 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
+                alt184=1;
             }
-            else if ( LA171_0 == 132 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
-                alt171=1;
+            else if ( LA184_0 == 148 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
+                alt184=1;
             }
-            else if ( LA171_0 == 134 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
-                alt171=1;
+            else if ( LA184_0 == 150 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
+                alt184=1;
             }
-            else if ( LA171_0 == 135 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
-                alt171=1;
+            else if ( LA184_0 == 151 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
+                alt184=1;
             }
-            switch (alt171) {
+            switch (alt184) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartLine__UnorderedGroup_2__4
                     {
@@ -66092,43 +69481,43 @@
 
 
     // $ANTLR start "rule__ChartLine__UnorderedGroup_2__4"
-    // InternalChartDSL.g:19961:1: rule__ChartLine__UnorderedGroup_2__4 : rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__5 )? ;
+    // InternalChartDSL.g:20971:1: rule__ChartLine__UnorderedGroup_2__4 : rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__5 )? ;
     public final void rule__ChartLine__UnorderedGroup_2__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19965:1: ( rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__5 )? )
-            // InternalChartDSL.g:19966:2: rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__5 )?
+            // InternalChartDSL.g:20975:1: ( rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__5 )? )
+            // InternalChartDSL.g:20976:2: rule__ChartLine__UnorderedGroup_2__Impl ( rule__ChartLine__UnorderedGroup_2__5 )?
             {
-            pushFollow(FOLLOW_147);
+            pushFollow(FOLLOW_152);
             rule__ChartLine__UnorderedGroup_2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:19967:2: ( rule__ChartLine__UnorderedGroup_2__5 )?
-            int alt172=2;
-            int LA172_0 = input.LA(1);
+            // InternalChartDSL.g:20977:2: ( rule__ChartLine__UnorderedGroup_2__5 )?
+            int alt185=2;
+            int LA185_0 = input.LA(1);
 
-            if ( LA172_0 == 127 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
-                alt172=1;
+            if ( LA185_0 == 143 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
+                alt185=1;
             }
-            else if ( LA172_0 == 130 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
-                alt172=1;
+            else if ( LA185_0 == 146 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
+                alt185=1;
             }
-            else if ( LA172_0 == 131 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
-                alt172=1;
+            else if ( LA185_0 == 147 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
+                alt185=1;
             }
-            else if ( LA172_0 == 132 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
-                alt172=1;
+            else if ( LA185_0 == 148 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
+                alt185=1;
             }
-            else if ( LA172_0 == 134 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
-                alt172=1;
+            else if ( LA185_0 == 150 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
+                alt185=1;
             }
-            else if ( LA172_0 == 135 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
-                alt172=1;
+            else if ( LA185_0 == 151 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
+                alt185=1;
             }
-            switch (alt172) {
+            switch (alt185) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartLine__UnorderedGroup_2__5
                     {
@@ -66162,14 +69551,14 @@
 
 
     // $ANTLR start "rule__ChartLine__UnorderedGroup_2__5"
-    // InternalChartDSL.g:19973:1: rule__ChartLine__UnorderedGroup_2__5 : rule__ChartLine__UnorderedGroup_2__Impl ;
+    // InternalChartDSL.g:20983:1: rule__ChartLine__UnorderedGroup_2__5 : rule__ChartLine__UnorderedGroup_2__Impl ;
     public final void rule__ChartLine__UnorderedGroup_2__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:19977:1: ( rule__ChartLine__UnorderedGroup_2__Impl )
-            // InternalChartDSL.g:19978:2: rule__ChartLine__UnorderedGroup_2__Impl
+            // InternalChartDSL.g:20987:1: ( rule__ChartLine__UnorderedGroup_2__Impl )
+            // InternalChartDSL.g:20988:2: rule__ChartLine__UnorderedGroup_2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartLine__UnorderedGroup_2__Impl();
@@ -66195,15 +69584,15 @@
 
 
     // $ANTLR start "rule__ChartBubble__UnorderedGroup_2"
-    // InternalChartDSL.g:19985:1: rule__ChartBubble__UnorderedGroup_2 : rule__ChartBubble__UnorderedGroup_2__0 {...}?;
+    // InternalChartDSL.g:20995:1: rule__ChartBubble__UnorderedGroup_2 : rule__ChartBubble__UnorderedGroup_2__0 {...}?;
     public final void rule__ChartBubble__UnorderedGroup_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2());
         	
         try {
-            // InternalChartDSL.g:19990:1: ( rule__ChartBubble__UnorderedGroup_2__0 {...}?)
-            // InternalChartDSL.g:19991:2: rule__ChartBubble__UnorderedGroup_2__0 {...}?
+            // InternalChartDSL.g:21000:1: ( rule__ChartBubble__UnorderedGroup_2__0 {...}?)
+            // InternalChartDSL.g:21001:2: rule__ChartBubble__UnorderedGroup_2__0 {...}?
             {
             pushFollow(FOLLOW_2);
             rule__ChartBubble__UnorderedGroup_2__0();
@@ -66234,57 +69623,57 @@
 
 
     // $ANTLR start "rule__ChartBubble__UnorderedGroup_2__Impl"
-    // InternalChartDSL.g:19999:1: rule__ChartBubble__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) ) ) ;
+    // InternalChartDSL.g:21009:1: rule__ChartBubble__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) ) ) ;
     public final void rule__ChartBubble__UnorderedGroup_2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalChartDSL.g:20004:1: ( ( ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) ) ) )
-            // InternalChartDSL.g:20005:3: ( ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) ) )
+            // InternalChartDSL.g:21014:1: ( ( ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) ) ) )
+            // InternalChartDSL.g:21015:3: ( ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) ) )
             {
-            // InternalChartDSL.g:20005:3: ( ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) ) )
-            int alt173=2;
-            int LA173_0 = input.LA(1);
+            // InternalChartDSL.g:21015:3: ( ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) ) )
+            int alt186=2;
+            int LA186_0 = input.LA(1);
 
-            if ( LA173_0 == 137 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
-                alt173=1;
+            if ( LA186_0 == 153 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
+                alt186=1;
             }
-            else if ( LA173_0 >= 138 && LA173_0 <= 139 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
-                alt173=2;
+            else if ( LA186_0 >= 154 && LA186_0 <= 155 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
+                alt186=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 173, 0, input);
+                    new NoViableAltException("", 186, 0, input);
 
                 throw nvae;
             }
-            switch (alt173) {
+            switch (alt186) {
                 case 1 :
-                    // InternalChartDSL.g:20006:3: ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) )
+                    // InternalChartDSL.g:21016:3: ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) )
                     {
-                    // InternalChartDSL.g:20006:3: ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) )
-                    // InternalChartDSL.g:20007:4: {...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) )
+                    // InternalChartDSL.g:21016:3: ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) )
+                    // InternalChartDSL.g:21017:4: {...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartBubble__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0)");
                     }
-                    // InternalChartDSL.g:20007:107: ( ( ( rule__ChartBubble__Group_2_0__0 ) ) )
-                    // InternalChartDSL.g:20008:5: ( ( rule__ChartBubble__Group_2_0__0 ) )
+                    // InternalChartDSL.g:21017:107: ( ( ( rule__ChartBubble__Group_2_0__0 ) ) )
+                    // InternalChartDSL.g:21018:5: ( ( rule__ChartBubble__Group_2_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0);
                     selected = true;
-                    // InternalChartDSL.g:20014:5: ( ( rule__ChartBubble__Group_2_0__0 ) )
-                    // InternalChartDSL.g:20015:6: ( rule__ChartBubble__Group_2_0__0 )
+                    // InternalChartDSL.g:21024:5: ( ( rule__ChartBubble__Group_2_0__0 ) )
+                    // InternalChartDSL.g:21025:6: ( rule__ChartBubble__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartBubbleAccess().getGroup_2_0()); 
                     }
-                    // InternalChartDSL.g:20016:6: ( rule__ChartBubble__Group_2_0__0 )
-                    // InternalChartDSL.g:20016:7: rule__ChartBubble__Group_2_0__0
+                    // InternalChartDSL.g:21026:6: ( rule__ChartBubble__Group_2_0__0 )
+                    // InternalChartDSL.g:21026:7: rule__ChartBubble__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartBubble__Group_2_0__0();
@@ -66310,28 +69699,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:20021:3: ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) )
+                    // InternalChartDSL.g:21031:3: ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) )
                     {
-                    // InternalChartDSL.g:20021:3: ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) )
-                    // InternalChartDSL.g:20022:4: {...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) )
+                    // InternalChartDSL.g:21031:3: ({...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) ) )
+                    // InternalChartDSL.g:21032:4: {...}? => ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartBubble__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1)");
                     }
-                    // InternalChartDSL.g:20022:107: ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) )
-                    // InternalChartDSL.g:20023:5: ( ( rule__ChartBubble__Alternatives_2_1 ) )
+                    // InternalChartDSL.g:21032:107: ( ( ( rule__ChartBubble__Alternatives_2_1 ) ) )
+                    // InternalChartDSL.g:21033:5: ( ( rule__ChartBubble__Alternatives_2_1 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1);
                     selected = true;
-                    // InternalChartDSL.g:20029:5: ( ( rule__ChartBubble__Alternatives_2_1 ) )
-                    // InternalChartDSL.g:20030:6: ( rule__ChartBubble__Alternatives_2_1 )
+                    // InternalChartDSL.g:21039:5: ( ( rule__ChartBubble__Alternatives_2_1 ) )
+                    // InternalChartDSL.g:21040:6: ( rule__ChartBubble__Alternatives_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartBubbleAccess().getAlternatives_2_1()); 
                     }
-                    // InternalChartDSL.g:20031:6: ( rule__ChartBubble__Alternatives_2_1 )
-                    // InternalChartDSL.g:20031:7: rule__ChartBubble__Alternatives_2_1
+                    // InternalChartDSL.g:21041:6: ( rule__ChartBubble__Alternatives_2_1 )
+                    // InternalChartDSL.g:21041:7: rule__ChartBubble__Alternatives_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartBubble__Alternatives_2_1();
@@ -66380,34 +69769,34 @@
 
 
     // $ANTLR start "rule__ChartBubble__UnorderedGroup_2__0"
-    // InternalChartDSL.g:20044:1: rule__ChartBubble__UnorderedGroup_2__0 : rule__ChartBubble__UnorderedGroup_2__Impl ( rule__ChartBubble__UnorderedGroup_2__1 )? ;
+    // InternalChartDSL.g:21054:1: rule__ChartBubble__UnorderedGroup_2__0 : rule__ChartBubble__UnorderedGroup_2__Impl ( rule__ChartBubble__UnorderedGroup_2__1 )? ;
     public final void rule__ChartBubble__UnorderedGroup_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20048:1: ( rule__ChartBubble__UnorderedGroup_2__Impl ( rule__ChartBubble__UnorderedGroup_2__1 )? )
-            // InternalChartDSL.g:20049:2: rule__ChartBubble__UnorderedGroup_2__Impl ( rule__ChartBubble__UnorderedGroup_2__1 )?
+            // InternalChartDSL.g:21058:1: ( rule__ChartBubble__UnorderedGroup_2__Impl ( rule__ChartBubble__UnorderedGroup_2__1 )? )
+            // InternalChartDSL.g:21059:2: rule__ChartBubble__UnorderedGroup_2__Impl ( rule__ChartBubble__UnorderedGroup_2__1 )?
             {
-            pushFollow(FOLLOW_148);
+            pushFollow(FOLLOW_153);
             rule__ChartBubble__UnorderedGroup_2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:20050:2: ( rule__ChartBubble__UnorderedGroup_2__1 )?
-            int alt174=2;
-            int LA174_0 = input.LA(1);
+            // InternalChartDSL.g:21060:2: ( rule__ChartBubble__UnorderedGroup_2__1 )?
+            int alt187=2;
+            int LA187_0 = input.LA(1);
 
-            if ( LA174_0 == 137 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
-                alt174=1;
+            if ( LA187_0 == 153 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
+                alt187=1;
             }
-            else if ( LA174_0 == 138 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
-                alt174=1;
+            else if ( LA187_0 == 154 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
+                alt187=1;
             }
-            else if ( LA174_0 == 139 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
-                alt174=1;
+            else if ( LA187_0 == 155 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
+                alt187=1;
             }
-            switch (alt174) {
+            switch (alt187) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartBubble__UnorderedGroup_2__1
                     {
@@ -66441,14 +69830,14 @@
 
 
     // $ANTLR start "rule__ChartBubble__UnorderedGroup_2__1"
-    // InternalChartDSL.g:20056:1: rule__ChartBubble__UnorderedGroup_2__1 : rule__ChartBubble__UnorderedGroup_2__Impl ;
+    // InternalChartDSL.g:21066:1: rule__ChartBubble__UnorderedGroup_2__1 : rule__ChartBubble__UnorderedGroup_2__Impl ;
     public final void rule__ChartBubble__UnorderedGroup_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20060:1: ( rule__ChartBubble__UnorderedGroup_2__Impl )
-            // InternalChartDSL.g:20061:2: rule__ChartBubble__UnorderedGroup_2__Impl
+            // InternalChartDSL.g:21070:1: ( rule__ChartBubble__UnorderedGroup_2__Impl )
+            // InternalChartDSL.g:21071:2: rule__ChartBubble__UnorderedGroup_2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartBubble__UnorderedGroup_2__Impl();
@@ -66474,30 +69863,30 @@
 
 
     // $ANTLR start "rule__ChartGauge__UnorderedGroup_2"
-    // InternalChartDSL.g:20068:1: rule__ChartGauge__UnorderedGroup_2 : ( rule__ChartGauge__UnorderedGroup_2__0 )? ;
+    // InternalChartDSL.g:21078:1: rule__ChartGauge__UnorderedGroup_2 : ( rule__ChartGauge__UnorderedGroup_2__0 )? ;
     public final void rule__ChartGauge__UnorderedGroup_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		getUnorderedGroupHelper().enter(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2());
         	
         try {
-            // InternalChartDSL.g:20073:1: ( ( rule__ChartGauge__UnorderedGroup_2__0 )? )
-            // InternalChartDSL.g:20074:2: ( rule__ChartGauge__UnorderedGroup_2__0 )?
+            // InternalChartDSL.g:21083:1: ( ( rule__ChartGauge__UnorderedGroup_2__0 )? )
+            // InternalChartDSL.g:21084:2: ( rule__ChartGauge__UnorderedGroup_2__0 )?
             {
-            // InternalChartDSL.g:20074:2: ( rule__ChartGauge__UnorderedGroup_2__0 )?
-            int alt175=2;
-            int LA175_0 = input.LA(1);
+            // InternalChartDSL.g:21084:2: ( rule__ChartGauge__UnorderedGroup_2__0 )?
+            int alt188=2;
+            int LA188_0 = input.LA(1);
 
-            if ( LA175_0 == 140 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
-                alt175=1;
+            if ( LA188_0 == 156 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
+                alt188=1;
             }
-            else if ( LA175_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
-                alt175=1;
+            else if ( LA188_0 == 157 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
+                alt188=1;
             }
-            else if ( LA175_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
-                alt175=1;
+            else if ( LA188_0 == 158 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
+                alt188=1;
             }
-            switch (alt175) {
+            switch (alt188) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartGauge__UnorderedGroup_2__0
                     {
@@ -66532,60 +69921,60 @@
 
 
     // $ANTLR start "rule__ChartGauge__UnorderedGroup_2__Impl"
-    // InternalChartDSL.g:20082:1: rule__ChartGauge__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) ) ) ;
+    // InternalChartDSL.g:21092:1: rule__ChartGauge__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) ) ) ;
     public final void rule__ChartGauge__UnorderedGroup_2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         		boolean selected = false;
         	
         try {
-            // InternalChartDSL.g:20087:1: ( ( ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) ) ) )
-            // InternalChartDSL.g:20088:3: ( ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) ) )
+            // InternalChartDSL.g:21097:1: ( ( ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) ) ) )
+            // InternalChartDSL.g:21098:3: ( ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) ) )
             {
-            // InternalChartDSL.g:20088:3: ( ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) ) )
-            int alt176=3;
-            int LA176_0 = input.LA(1);
+            // InternalChartDSL.g:21098:3: ( ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) ) | ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) ) )
+            int alt189=3;
+            int LA189_0 = input.LA(1);
 
-            if ( LA176_0 == 140 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
-                alt176=1;
+            if ( LA189_0 == 156 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
+                alt189=1;
             }
-            else if ( LA176_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
-                alt176=2;
+            else if ( LA189_0 == 157 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
+                alt189=2;
             }
-            else if ( LA176_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
-                alt176=3;
+            else if ( LA189_0 == 158 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
+                alt189=3;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 176, 0, input);
+                    new NoViableAltException("", 189, 0, input);
 
                 throw nvae;
             }
-            switch (alt176) {
+            switch (alt189) {
                 case 1 :
-                    // InternalChartDSL.g:20089:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) )
+                    // InternalChartDSL.g:21099:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) )
                     {
-                    // InternalChartDSL.g:20089:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) )
-                    // InternalChartDSL.g:20090:4: {...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) )
+                    // InternalChartDSL.g:21099:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) )
+                    // InternalChartDSL.g:21100:4: {...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartGauge__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0)");
                     }
-                    // InternalChartDSL.g:20090:106: ( ( ( rule__ChartGauge__Group_2_0__0 ) ) )
-                    // InternalChartDSL.g:20091:5: ( ( rule__ChartGauge__Group_2_0__0 ) )
+                    // InternalChartDSL.g:21100:106: ( ( ( rule__ChartGauge__Group_2_0__0 ) ) )
+                    // InternalChartDSL.g:21101:5: ( ( rule__ChartGauge__Group_2_0__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0);
                     selected = true;
-                    // InternalChartDSL.g:20097:5: ( ( rule__ChartGauge__Group_2_0__0 ) )
-                    // InternalChartDSL.g:20098:6: ( rule__ChartGauge__Group_2_0__0 )
+                    // InternalChartDSL.g:21107:5: ( ( rule__ChartGauge__Group_2_0__0 ) )
+                    // InternalChartDSL.g:21108:6: ( rule__ChartGauge__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartGaugeAccess().getGroup_2_0()); 
                     }
-                    // InternalChartDSL.g:20099:6: ( rule__ChartGauge__Group_2_0__0 )
-                    // InternalChartDSL.g:20099:7: rule__ChartGauge__Group_2_0__0
+                    // InternalChartDSL.g:21109:6: ( rule__ChartGauge__Group_2_0__0 )
+                    // InternalChartDSL.g:21109:7: rule__ChartGauge__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartGauge__Group_2_0__0();
@@ -66611,28 +70000,28 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:20104:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) )
+                    // InternalChartDSL.g:21114:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) )
                     {
-                    // InternalChartDSL.g:20104:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) )
-                    // InternalChartDSL.g:20105:4: {...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) )
+                    // InternalChartDSL.g:21114:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) )
+                    // InternalChartDSL.g:21115:4: {...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartGauge__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1)");
                     }
-                    // InternalChartDSL.g:20105:106: ( ( ( rule__ChartGauge__Group_2_1__0 ) ) )
-                    // InternalChartDSL.g:20106:5: ( ( rule__ChartGauge__Group_2_1__0 ) )
+                    // InternalChartDSL.g:21115:106: ( ( ( rule__ChartGauge__Group_2_1__0 ) ) )
+                    // InternalChartDSL.g:21116:5: ( ( rule__ChartGauge__Group_2_1__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1);
                     selected = true;
-                    // InternalChartDSL.g:20112:5: ( ( rule__ChartGauge__Group_2_1__0 ) )
-                    // InternalChartDSL.g:20113:6: ( rule__ChartGauge__Group_2_1__0 )
+                    // InternalChartDSL.g:21122:5: ( ( rule__ChartGauge__Group_2_1__0 ) )
+                    // InternalChartDSL.g:21123:6: ( rule__ChartGauge__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartGaugeAccess().getGroup_2_1()); 
                     }
-                    // InternalChartDSL.g:20114:6: ( rule__ChartGauge__Group_2_1__0 )
-                    // InternalChartDSL.g:20114:7: rule__ChartGauge__Group_2_1__0
+                    // InternalChartDSL.g:21124:6: ( rule__ChartGauge__Group_2_1__0 )
+                    // InternalChartDSL.g:21124:7: rule__ChartGauge__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartGauge__Group_2_1__0();
@@ -66658,28 +70047,28 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:20119:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) )
+                    // InternalChartDSL.g:21129:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) )
                     {
-                    // InternalChartDSL.g:20119:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) )
-                    // InternalChartDSL.g:20120:4: {...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) )
+                    // InternalChartDSL.g:21129:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) ) )
+                    // InternalChartDSL.g:21130:4: {...}? => ( ( ( rule__ChartGauge__Group_2_2__0 ) ) )
                     {
                     if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         throw new FailedPredicateException(input, "rule__ChartGauge__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2)");
                     }
-                    // InternalChartDSL.g:20120:106: ( ( ( rule__ChartGauge__Group_2_2__0 ) ) )
-                    // InternalChartDSL.g:20121:5: ( ( rule__ChartGauge__Group_2_2__0 ) )
+                    // InternalChartDSL.g:21130:106: ( ( ( rule__ChartGauge__Group_2_2__0 ) ) )
+                    // InternalChartDSL.g:21131:5: ( ( rule__ChartGauge__Group_2_2__0 ) )
                     {
                     getUnorderedGroupHelper().select(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2);
                     selected = true;
-                    // InternalChartDSL.g:20127:5: ( ( rule__ChartGauge__Group_2_2__0 ) )
-                    // InternalChartDSL.g:20128:6: ( rule__ChartGauge__Group_2_2__0 )
+                    // InternalChartDSL.g:21137:5: ( ( rule__ChartGauge__Group_2_2__0 ) )
+                    // InternalChartDSL.g:21138:6: ( rule__ChartGauge__Group_2_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getChartGaugeAccess().getGroup_2_2()); 
                     }
-                    // InternalChartDSL.g:20129:6: ( rule__ChartGauge__Group_2_2__0 )
-                    // InternalChartDSL.g:20129:7: rule__ChartGauge__Group_2_2__0
+                    // InternalChartDSL.g:21139:6: ( rule__ChartGauge__Group_2_2__0 )
+                    // InternalChartDSL.g:21139:7: rule__ChartGauge__Group_2_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ChartGauge__Group_2_2__0();
@@ -66728,34 +70117,34 @@
 
 
     // $ANTLR start "rule__ChartGauge__UnorderedGroup_2__0"
-    // InternalChartDSL.g:20142:1: rule__ChartGauge__UnorderedGroup_2__0 : rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__1 )? ;
+    // InternalChartDSL.g:21152:1: rule__ChartGauge__UnorderedGroup_2__0 : rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__1 )? ;
     public final void rule__ChartGauge__UnorderedGroup_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20146:1: ( rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__1 )? )
-            // InternalChartDSL.g:20147:2: rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__1 )?
+            // InternalChartDSL.g:21156:1: ( rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__1 )? )
+            // InternalChartDSL.g:21157:2: rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__1 )?
             {
-            pushFollow(FOLLOW_149);
+            pushFollow(FOLLOW_154);
             rule__ChartGauge__UnorderedGroup_2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:20148:2: ( rule__ChartGauge__UnorderedGroup_2__1 )?
-            int alt177=2;
-            int LA177_0 = input.LA(1);
+            // InternalChartDSL.g:21158:2: ( rule__ChartGauge__UnorderedGroup_2__1 )?
+            int alt190=2;
+            int LA190_0 = input.LA(1);
 
-            if ( LA177_0 == 140 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
-                alt177=1;
+            if ( LA190_0 == 156 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
+                alt190=1;
             }
-            else if ( LA177_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
-                alt177=1;
+            else if ( LA190_0 == 157 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
+                alt190=1;
             }
-            else if ( LA177_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
-                alt177=1;
+            else if ( LA190_0 == 158 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
+                alt190=1;
             }
-            switch (alt177) {
+            switch (alt190) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartGauge__UnorderedGroup_2__1
                     {
@@ -66789,34 +70178,34 @@
 
 
     // $ANTLR start "rule__ChartGauge__UnorderedGroup_2__1"
-    // InternalChartDSL.g:20154:1: rule__ChartGauge__UnorderedGroup_2__1 : rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__2 )? ;
+    // InternalChartDSL.g:21164:1: rule__ChartGauge__UnorderedGroup_2__1 : rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__2 )? ;
     public final void rule__ChartGauge__UnorderedGroup_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20158:1: ( rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__2 )? )
-            // InternalChartDSL.g:20159:2: rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__2 )?
+            // InternalChartDSL.g:21168:1: ( rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__2 )? )
+            // InternalChartDSL.g:21169:2: rule__ChartGauge__UnorderedGroup_2__Impl ( rule__ChartGauge__UnorderedGroup_2__2 )?
             {
-            pushFollow(FOLLOW_149);
+            pushFollow(FOLLOW_154);
             rule__ChartGauge__UnorderedGroup_2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            // InternalChartDSL.g:20160:2: ( rule__ChartGauge__UnorderedGroup_2__2 )?
-            int alt178=2;
-            int LA178_0 = input.LA(1);
+            // InternalChartDSL.g:21170:2: ( rule__ChartGauge__UnorderedGroup_2__2 )?
+            int alt191=2;
+            int LA191_0 = input.LA(1);
 
-            if ( LA178_0 == 140 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
-                alt178=1;
+            if ( LA191_0 == 156 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
+                alt191=1;
             }
-            else if ( LA178_0 == 141 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
-                alt178=1;
+            else if ( LA191_0 == 157 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
+                alt191=1;
             }
-            else if ( LA178_0 == 142 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
-                alt178=1;
+            else if ( LA191_0 == 158 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
+                alt191=1;
             }
-            switch (alt178) {
+            switch (alt191) {
                 case 1 :
                     // InternalChartDSL.g:0:0: rule__ChartGauge__UnorderedGroup_2__2
                     {
@@ -66850,14 +70239,14 @@
 
 
     // $ANTLR start "rule__ChartGauge__UnorderedGroup_2__2"
-    // InternalChartDSL.g:20166:1: rule__ChartGauge__UnorderedGroup_2__2 : rule__ChartGauge__UnorderedGroup_2__Impl ;
+    // InternalChartDSL.g:21176:1: rule__ChartGauge__UnorderedGroup_2__2 : rule__ChartGauge__UnorderedGroup_2__Impl ;
     public final void rule__ChartGauge__UnorderedGroup_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20170:1: ( rule__ChartGauge__UnorderedGroup_2__Impl )
-            // InternalChartDSL.g:20171:2: rule__ChartGauge__UnorderedGroup_2__Impl
+            // InternalChartDSL.g:21180:1: ( rule__ChartGauge__UnorderedGroup_2__Impl )
+            // InternalChartDSL.g:21181:2: rule__ChartGauge__UnorderedGroup_2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ChartGauge__UnorderedGroup_2__Impl();
@@ -66883,17 +70272,17 @@
 
 
     // $ANTLR start "rule__ChartModel__ImportSectionAssignment_0"
-    // InternalChartDSL.g:20178:1: rule__ChartModel__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
+    // InternalChartDSL.g:21188:1: rule__ChartModel__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
     public final void rule__ChartModel__ImportSectionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20182:1: ( ( ruleXImportSection ) )
-            // InternalChartDSL.g:20183:2: ( ruleXImportSection )
+            // InternalChartDSL.g:21192:1: ( ( ruleXImportSection ) )
+            // InternalChartDSL.g:21193:2: ( ruleXImportSection )
             {
-            // InternalChartDSL.g:20183:2: ( ruleXImportSection )
-            // InternalChartDSL.g:20184:3: ruleXImportSection
+            // InternalChartDSL.g:21193:2: ( ruleXImportSection )
+            // InternalChartDSL.g:21194:3: ruleXImportSection
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartModelAccess().getImportSectionXImportSectionParserRuleCall_0_0()); 
@@ -66928,17 +70317,17 @@
 
 
     // $ANTLR start "rule__ChartModel__PackagesAssignment_1"
-    // InternalChartDSL.g:20193:1: rule__ChartModel__PackagesAssignment_1 : ( ruleChartPackage ) ;
+    // InternalChartDSL.g:21203:1: rule__ChartModel__PackagesAssignment_1 : ( ruleChartPackage ) ;
     public final void rule__ChartModel__PackagesAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20197:1: ( ( ruleChartPackage ) )
-            // InternalChartDSL.g:20198:2: ( ruleChartPackage )
+            // InternalChartDSL.g:21207:1: ( ( ruleChartPackage ) )
+            // InternalChartDSL.g:21208:2: ( ruleChartPackage )
             {
-            // InternalChartDSL.g:20198:2: ( ruleChartPackage )
-            // InternalChartDSL.g:20199:3: ruleChartPackage
+            // InternalChartDSL.g:21208:2: ( ruleChartPackage )
+            // InternalChartDSL.g:21209:3: ruleChartPackage
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartModelAccess().getPackagesChartPackageParserRuleCall_1_0()); 
@@ -66973,17 +70362,17 @@
 
 
     // $ANTLR start "rule__ChartPackage__NameAssignment_2"
-    // InternalChartDSL.g:20208:1: rule__ChartPackage__NameAssignment_2 : ( ruleQualifiedName ) ;
+    // InternalChartDSL.g:21218:1: rule__ChartPackage__NameAssignment_2 : ( ruleQualifiedName ) ;
     public final void rule__ChartPackage__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20212:1: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:20213:2: ( ruleQualifiedName )
+            // InternalChartDSL.g:21222:1: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:21223:2: ( ruleQualifiedName )
             {
-            // InternalChartDSL.g:20213:2: ( ruleQualifiedName )
-            // InternalChartDSL.g:20214:3: ruleQualifiedName
+            // InternalChartDSL.g:21223:2: ( ruleQualifiedName )
+            // InternalChartDSL.g:21224:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
@@ -67017,29 +70406,37 @@
     // $ANTLR end "rule__ChartPackage__NameAssignment_2"
 
 
-    // $ANTLR start "rule__ChartPackage__ChartsAssignment_3_1"
-    // InternalChartDSL.g:20223:1: rule__ChartPackage__ChartsAssignment_3_1 : ( ruleChart ) ;
-    public final void rule__ChartPackage__ChartsAssignment_3_1() throws RecognitionException {
+    // $ANTLR start "rule__ChartPackage__HasColorsAssignment_3_0"
+    // InternalChartDSL.g:21233:1: rule__ChartPackage__HasColorsAssignment_3_0 : ( ( 'seriesColors' ) ) ;
+    public final void rule__ChartPackage__HasColorsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20227:1: ( ( ruleChart ) )
-            // InternalChartDSL.g:20228:2: ( ruleChart )
+            // InternalChartDSL.g:21237:1: ( ( ( 'seriesColors' ) ) )
+            // InternalChartDSL.g:21238:2: ( ( 'seriesColors' ) )
             {
-            // InternalChartDSL.g:20228:2: ( ruleChart )
-            // InternalChartDSL.g:20229:3: ruleChart
+            // InternalChartDSL.g:21238:2: ( ( 'seriesColors' ) )
+            // InternalChartDSL.g:21239:3: ( 'seriesColors' )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_3_1_0()); 
+               before(grammarAccess.getChartPackageAccess().getHasColorsSeriesColorsKeyword_3_0_0()); 
             }
-            pushFollow(FOLLOW_2);
-            ruleChart();
-
-            state._fsp--;
-            if (state.failed) return ;
+            // InternalChartDSL.g:21240:3: ( 'seriesColors' )
+            // InternalChartDSL.g:21241:4: 'seriesColors'
+            {
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_3_1_0()); 
+               before(grammarAccess.getChartPackageAccess().getHasColorsSeriesColorsKeyword_3_0_0()); 
+            }
+            match(input,139,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getHasColorsSeriesColorsKeyword_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getHasColorsSeriesColorsKeyword_3_0_0()); 
             }
 
             }
@@ -67059,21 +70456,197 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartPackage__ChartsAssignment_3_1"
+    // $ANTLR end "rule__ChartPackage__HasColorsAssignment_3_0"
+
+
+    // $ANTLR start "rule__ChartPackage__ColorsAssignment_3_2"
+    // InternalChartDSL.g:21252:1: rule__ChartPackage__ColorsAssignment_3_2 : ( ruleSeriesColor ) ;
+    public final void rule__ChartPackage__ColorsAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:21256:1: ( ( ruleSeriesColor ) )
+            // InternalChartDSL.g:21257:2: ( ruleSeriesColor )
+            {
+            // InternalChartDSL.g:21257:2: ( ruleSeriesColor )
+            // InternalChartDSL.g:21258:3: ruleSeriesColor
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartPackageAccess().getColorsSeriesColorParserRuleCall_3_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSeriesColor();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getColorsSeriesColorParserRuleCall_3_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__ColorsAssignment_3_2"
+
+
+    // $ANTLR start "rule__ChartPackage__DefaultFontFamilyAssignment_4_1"
+    // InternalChartDSL.g:21267:1: rule__ChartPackage__DefaultFontFamilyAssignment_4_1 : ( ruleCanvasFontFamilyEnum ) ;
+    public final void rule__ChartPackage__DefaultFontFamilyAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:21271:1: ( ( ruleCanvasFontFamilyEnum ) )
+            // InternalChartDSL.g:21272:2: ( ruleCanvasFontFamilyEnum )
+            {
+            // InternalChartDSL.g:21272:2: ( ruleCanvasFontFamilyEnum )
+            // InternalChartDSL.g:21273:3: ruleCanvasFontFamilyEnum
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartPackageAccess().getDefaultFontFamilyCanvasFontFamilyEnumEnumRuleCall_4_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleCanvasFontFamilyEnum();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getDefaultFontFamilyCanvasFontFamilyEnumEnumRuleCall_4_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__DefaultFontFamilyAssignment_4_1"
+
+
+    // $ANTLR start "rule__ChartPackage__ChartsAssignment_5_1"
+    // InternalChartDSL.g:21282:1: rule__ChartPackage__ChartsAssignment_5_1 : ( ruleChart ) ;
+    public final void rule__ChartPackage__ChartsAssignment_5_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:21286:1: ( ( ruleChart ) )
+            // InternalChartDSL.g:21287:2: ( ruleChart )
+            {
+            // InternalChartDSL.g:21287:2: ( ruleChart )
+            // InternalChartDSL.g:21288:3: ruleChart
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_5_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleChart();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_5_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartPackage__ChartsAssignment_5_1"
+
+
+    // $ANTLR start "rule__SeriesColor__RgbAssignment_1"
+    // InternalChartDSL.g:21297:1: rule__SeriesColor__RgbAssignment_1 : ( RULE_STRING ) ;
+    public final void rule__SeriesColor__RgbAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:21301:1: ( ( RULE_STRING ) )
+            // InternalChartDSL.g:21302:2: ( RULE_STRING )
+            {
+            // InternalChartDSL.g:21302:2: ( RULE_STRING )
+            // InternalChartDSL.g:21303:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSeriesColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSeriesColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SeriesColor__RgbAssignment_1"
 
 
     // $ANTLR start "rule__Chart__NameAssignment_2"
-    // InternalChartDSL.g:20238:1: rule__Chart__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
+    // InternalChartDSL.g:21312:1: rule__Chart__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
     public final void rule__Chart__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20242:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalChartDSL.g:20243:2: ( ruleTRANSLATABLEID )
+            // InternalChartDSL.g:21316:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalChartDSL.g:21317:2: ( ruleTRANSLATABLEID )
             {
-            // InternalChartDSL.g:20243:2: ( ruleTRANSLATABLEID )
-            // InternalChartDSL.g:20244:3: ruleTRANSLATABLEID
+            // InternalChartDSL.g:21317:2: ( ruleTRANSLATABLEID )
+            // InternalChartDSL.g:21318:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
@@ -67108,28 +70681,28 @@
 
 
     // $ANTLR start "rule__Chart__DescriptionAssignment_3_0"
-    // InternalChartDSL.g:20253:1: rule__Chart__DescriptionAssignment_3_0 : ( ( 'describedBy' ) ) ;
+    // InternalChartDSL.g:21327:1: rule__Chart__DescriptionAssignment_3_0 : ( ( 'describedBy' ) ) ;
     public final void rule__Chart__DescriptionAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20257:1: ( ( ( 'describedBy' ) ) )
-            // InternalChartDSL.g:20258:2: ( ( 'describedBy' ) )
+            // InternalChartDSL.g:21331:1: ( ( ( 'describedBy' ) ) )
+            // InternalChartDSL.g:21332:2: ( ( 'describedBy' ) )
             {
-            // InternalChartDSL.g:20258:2: ( ( 'describedBy' ) )
-            // InternalChartDSL.g:20259:3: ( 'describedBy' )
+            // InternalChartDSL.g:21332:2: ( ( 'describedBy' ) )
+            // InternalChartDSL.g:21333:3: ( 'describedBy' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getDescriptionDescribedByKeyword_3_0_0()); 
             }
-            // InternalChartDSL.g:20260:3: ( 'describedBy' )
-            // InternalChartDSL.g:20261:4: 'describedBy'
+            // InternalChartDSL.g:21334:3: ( 'describedBy' )
+            // InternalChartDSL.g:21335:4: 'describedBy'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getDescriptionDescribedByKeyword_3_0_0()); 
             }
-            match(input,124,FOLLOW_2); if (state.failed) return ;
+            match(input,140,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartAccess().getDescriptionDescribedByKeyword_3_0_0()); 
             }
@@ -67161,17 +70734,17 @@
 
 
     // $ANTLR start "rule__Chart__DescriptionValueAssignment_3_1"
-    // InternalChartDSL.g:20272:1: rule__Chart__DescriptionValueAssignment_3_1 : ( ruleTRANSLATABLESTRING ) ;
+    // InternalChartDSL.g:21346:1: rule__Chart__DescriptionValueAssignment_3_1 : ( ruleTRANSLATABLESTRING ) ;
     public final void rule__Chart__DescriptionValueAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20276:1: ( ( ruleTRANSLATABLESTRING ) )
-            // InternalChartDSL.g:20277:2: ( ruleTRANSLATABLESTRING )
+            // InternalChartDSL.g:21350:1: ( ( ruleTRANSLATABLESTRING ) )
+            // InternalChartDSL.g:21351:2: ( ruleTRANSLATABLESTRING )
             {
-            // InternalChartDSL.g:20277:2: ( ruleTRANSLATABLESTRING )
-            // InternalChartDSL.g:20278:3: ruleTRANSLATABLESTRING
+            // InternalChartDSL.g:21351:2: ( ruleTRANSLATABLESTRING )
+            // InternalChartDSL.g:21352:3: ruleTRANSLATABLESTRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
@@ -67206,17 +70779,17 @@
 
 
     // $ANTLR start "rule__Chart__CharttypeAssignment_5"
-    // InternalChartDSL.g:20287:1: rule__Chart__CharttypeAssignment_5 : ( ruleChartOption ) ;
+    // InternalChartDSL.g:21361:1: rule__Chart__CharttypeAssignment_5 : ( ruleChartOption ) ;
     public final void rule__Chart__CharttypeAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20291:1: ( ( ruleChartOption ) )
-            // InternalChartDSL.g:20292:2: ( ruleChartOption )
+            // InternalChartDSL.g:21365:1: ( ( ruleChartOption ) )
+            // InternalChartDSL.g:21366:2: ( ruleChartOption )
             {
-            // InternalChartDSL.g:20292:2: ( ruleChartOption )
-            // InternalChartDSL.g:20293:3: ruleChartOption
+            // InternalChartDSL.g:21366:2: ( ruleChartOption )
+            // InternalChartDSL.g:21367:3: ruleChartOption
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getCharttypeChartOptionParserRuleCall_5_0()); 
@@ -67251,28 +70824,28 @@
 
 
     // $ANTLR start "rule__Chart__SelectByIdAssignment_6_0"
-    // InternalChartDSL.g:20302:1: rule__Chart__SelectByIdAssignment_6_0 : ( ( 'selectById' ) ) ;
+    // InternalChartDSL.g:21376:1: rule__Chart__SelectByIdAssignment_6_0 : ( ( 'selectById' ) ) ;
     public final void rule__Chart__SelectByIdAssignment_6_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20306:1: ( ( ( 'selectById' ) ) )
-            // InternalChartDSL.g:20307:2: ( ( 'selectById' ) )
+            // InternalChartDSL.g:21380:1: ( ( ( 'selectById' ) ) )
+            // InternalChartDSL.g:21381:2: ( ( 'selectById' ) )
             {
-            // InternalChartDSL.g:20307:2: ( ( 'selectById' ) )
-            // InternalChartDSL.g:20308:3: ( 'selectById' )
+            // InternalChartDSL.g:21381:2: ( ( 'selectById' ) )
+            // InternalChartDSL.g:21382:3: ( 'selectById' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getSelectByIdSelectByIdKeyword_6_0_0()); 
             }
-            // InternalChartDSL.g:20309:3: ( 'selectById' )
-            // InternalChartDSL.g:20310:4: 'selectById'
+            // InternalChartDSL.g:21383:3: ( 'selectById' )
+            // InternalChartDSL.g:21384:4: 'selectById'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getSelectByIdSelectByIdKeyword_6_0_0()); 
             }
-            match(input,125,FOLLOW_2); if (state.failed) return ;
+            match(input,141,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartAccess().getSelectByIdSelectByIdKeyword_6_0_0()); 
             }
@@ -67304,23 +70877,23 @@
 
 
     // $ANTLR start "rule__Chart__ToolbarAssignment_6_1_1"
-    // InternalChartDSL.g:20321:1: rule__Chart__ToolbarAssignment_6_1_1 : ( ( RULE_ID ) ) ;
+    // InternalChartDSL.g:21395:1: rule__Chart__ToolbarAssignment_6_1_1 : ( ( RULE_ID ) ) ;
     public final void rule__Chart__ToolbarAssignment_6_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20325:1: ( ( ( RULE_ID ) ) )
-            // InternalChartDSL.g:20326:2: ( ( RULE_ID ) )
+            // InternalChartDSL.g:21399:1: ( ( ( RULE_ID ) ) )
+            // InternalChartDSL.g:21400:2: ( ( RULE_ID ) )
             {
-            // InternalChartDSL.g:20326:2: ( ( RULE_ID ) )
-            // InternalChartDSL.g:20327:3: ( RULE_ID )
+            // InternalChartDSL.g:21400:2: ( ( RULE_ID ) )
+            // InternalChartDSL.g:21401:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getToolbarActionToolbarCrossReference_6_1_1_0()); 
             }
-            // InternalChartDSL.g:20328:3: ( RULE_ID )
-            // InternalChartDSL.g:20329:4: RULE_ID
+            // InternalChartDSL.g:21402:3: ( RULE_ID )
+            // InternalChartDSL.g:21403:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getToolbarActionToolbarIDTerminalRuleCall_6_1_1_0_1()); 
@@ -67357,17 +70930,17 @@
 
 
     // $ANTLR start "rule__Chart__SourceAssignment_7_1"
-    // InternalChartDSL.g:20340:1: rule__Chart__SourceAssignment_7_1 : ( ruleChartDatamart ) ;
+    // InternalChartDSL.g:21414:1: rule__Chart__SourceAssignment_7_1 : ( ruleChartDatamart ) ;
     public final void rule__Chart__SourceAssignment_7_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20344:1: ( ( ruleChartDatamart ) )
-            // InternalChartDSL.g:20345:2: ( ruleChartDatamart )
+            // InternalChartDSL.g:21418:1: ( ( ruleChartDatamart ) )
+            // InternalChartDSL.g:21419:2: ( ruleChartDatamart )
             {
-            // InternalChartDSL.g:20345:2: ( ruleChartDatamart )
-            // InternalChartDSL.g:20346:3: ruleChartDatamart
+            // InternalChartDSL.g:21419:2: ( ruleChartDatamart )
+            // InternalChartDSL.g:21420:3: ruleChartDatamart
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAccess().getSourceChartDatamartParserRuleCall_7_1_0()); 
@@ -67402,28 +70975,28 @@
 
 
     // $ANTLR start "rule__ChartBar__ShadowAssignment_2_0"
-    // InternalChartDSL.g:20355:1: rule__ChartBar__ShadowAssignment_2_0 : ( ( 'shaded' ) ) ;
+    // InternalChartDSL.g:21429:1: rule__ChartBar__ShadowAssignment_2_0 : ( ( 'shaded' ) ) ;
     public final void rule__ChartBar__ShadowAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20359:1: ( ( ( 'shaded' ) ) )
-            // InternalChartDSL.g:20360:2: ( ( 'shaded' ) )
+            // InternalChartDSL.g:21433:1: ( ( ( 'shaded' ) ) )
+            // InternalChartDSL.g:21434:2: ( ( 'shaded' ) )
             {
-            // InternalChartDSL.g:20360:2: ( ( 'shaded' ) )
-            // InternalChartDSL.g:20361:3: ( 'shaded' )
+            // InternalChartDSL.g:21434:2: ( ( 'shaded' ) )
+            // InternalChartDSL.g:21435:3: ( 'shaded' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getShadowShadedKeyword_2_0_0()); 
             }
-            // InternalChartDSL.g:20362:3: ( 'shaded' )
-            // InternalChartDSL.g:20363:4: 'shaded'
+            // InternalChartDSL.g:21436:3: ( 'shaded' )
+            // InternalChartDSL.g:21437:4: 'shaded'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getShadowShadedKeyword_2_0_0()); 
             }
-            match(input,126,FOLLOW_2); if (state.failed) return ;
+            match(input,142,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartBarAccess().getShadowShadedKeyword_2_0_0()); 
             }
@@ -67455,28 +71028,28 @@
 
 
     // $ANTLR start "rule__ChartBar__AnimatedAssignment_2_1"
-    // InternalChartDSL.g:20374:1: rule__ChartBar__AnimatedAssignment_2_1 : ( ( 'animated' ) ) ;
+    // InternalChartDSL.g:21448:1: rule__ChartBar__AnimatedAssignment_2_1 : ( ( 'animated' ) ) ;
     public final void rule__ChartBar__AnimatedAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20378:1: ( ( ( 'animated' ) ) )
-            // InternalChartDSL.g:20379:2: ( ( 'animated' ) )
+            // InternalChartDSL.g:21452:1: ( ( ( 'animated' ) ) )
+            // InternalChartDSL.g:21453:2: ( ( 'animated' ) )
             {
-            // InternalChartDSL.g:20379:2: ( ( 'animated' ) )
-            // InternalChartDSL.g:20380:3: ( 'animated' )
+            // InternalChartDSL.g:21453:2: ( ( 'animated' ) )
+            // InternalChartDSL.g:21454:3: ( 'animated' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getAnimatedAnimatedKeyword_2_1_0()); 
             }
-            // InternalChartDSL.g:20381:3: ( 'animated' )
-            // InternalChartDSL.g:20382:4: 'animated'
+            // InternalChartDSL.g:21455:3: ( 'animated' )
+            // InternalChartDSL.g:21456:4: 'animated'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getAnimatedAnimatedKeyword_2_1_0()); 
             }
-            match(input,127,FOLLOW_2); if (state.failed) return ;
+            match(input,143,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartBarAccess().getAnimatedAnimatedKeyword_2_1_0()); 
             }
@@ -67508,28 +71081,28 @@
 
 
     // $ANTLR start "rule__ChartBar__SwappedAssignment_2_2"
-    // InternalChartDSL.g:20393:1: rule__ChartBar__SwappedAssignment_2_2 : ( ( 'swapped' ) ) ;
+    // InternalChartDSL.g:21467:1: rule__ChartBar__SwappedAssignment_2_2 : ( ( 'swapped' ) ) ;
     public final void rule__ChartBar__SwappedAssignment_2_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20397:1: ( ( ( 'swapped' ) ) )
-            // InternalChartDSL.g:20398:2: ( ( 'swapped' ) )
+            // InternalChartDSL.g:21471:1: ( ( ( 'swapped' ) ) )
+            // InternalChartDSL.g:21472:2: ( ( 'swapped' ) )
             {
-            // InternalChartDSL.g:20398:2: ( ( 'swapped' ) )
-            // InternalChartDSL.g:20399:3: ( 'swapped' )
+            // InternalChartDSL.g:21472:2: ( ( 'swapped' ) )
+            // InternalChartDSL.g:21473:3: ( 'swapped' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getSwappedSwappedKeyword_2_2_0()); 
             }
-            // InternalChartDSL.g:20400:3: ( 'swapped' )
-            // InternalChartDSL.g:20401:4: 'swapped'
+            // InternalChartDSL.g:21474:3: ( 'swapped' )
+            // InternalChartDSL.g:21475:4: 'swapped'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getSwappedSwappedKeyword_2_2_0()); 
             }
-            match(input,128,FOLLOW_2); if (state.failed) return ;
+            match(input,144,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartBarAccess().getSwappedSwappedKeyword_2_2_0()); 
             }
@@ -67561,28 +71134,28 @@
 
 
     // $ANTLR start "rule__ChartBar__StackedAssignment_2_3"
-    // InternalChartDSL.g:20412:1: rule__ChartBar__StackedAssignment_2_3 : ( ( 'stacked' ) ) ;
+    // InternalChartDSL.g:21486:1: rule__ChartBar__StackedAssignment_2_3 : ( ( 'stacked' ) ) ;
     public final void rule__ChartBar__StackedAssignment_2_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20416:1: ( ( ( 'stacked' ) ) )
-            // InternalChartDSL.g:20417:2: ( ( 'stacked' ) )
+            // InternalChartDSL.g:21490:1: ( ( ( 'stacked' ) ) )
+            // InternalChartDSL.g:21491:2: ( ( 'stacked' ) )
             {
-            // InternalChartDSL.g:20417:2: ( ( 'stacked' ) )
-            // InternalChartDSL.g:20418:3: ( 'stacked' )
+            // InternalChartDSL.g:21491:2: ( ( 'stacked' ) )
+            // InternalChartDSL.g:21492:3: ( 'stacked' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getStackedStackedKeyword_2_3_0()); 
             }
-            // InternalChartDSL.g:20419:3: ( 'stacked' )
-            // InternalChartDSL.g:20420:4: 'stacked'
+            // InternalChartDSL.g:21493:3: ( 'stacked' )
+            // InternalChartDSL.g:21494:4: 'stacked'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBarAccess().getStackedStackedKeyword_2_3_0()); 
             }
-            match(input,129,FOLLOW_2); if (state.failed) return ;
+            match(input,145,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartBarAccess().getStackedStackedKeyword_2_3_0()); 
             }
@@ -67614,28 +71187,28 @@
 
 
     // $ANTLR start "rule__ChartLine__AnimatedAssignment_2_0"
-    // InternalChartDSL.g:20431:1: rule__ChartLine__AnimatedAssignment_2_0 : ( ( 'animated' ) ) ;
+    // InternalChartDSL.g:21505:1: rule__ChartLine__AnimatedAssignment_2_0 : ( ( 'animated' ) ) ;
     public final void rule__ChartLine__AnimatedAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20435:1: ( ( ( 'animated' ) ) )
-            // InternalChartDSL.g:20436:2: ( ( 'animated' ) )
+            // InternalChartDSL.g:21509:1: ( ( ( 'animated' ) ) )
+            // InternalChartDSL.g:21510:2: ( ( 'animated' ) )
             {
-            // InternalChartDSL.g:20436:2: ( ( 'animated' ) )
-            // InternalChartDSL.g:20437:3: ( 'animated' )
+            // InternalChartDSL.g:21510:2: ( ( 'animated' ) )
+            // InternalChartDSL.g:21511:3: ( 'animated' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getAnimatedAnimatedKeyword_2_0_0()); 
             }
-            // InternalChartDSL.g:20438:3: ( 'animated' )
-            // InternalChartDSL.g:20439:4: 'animated'
+            // InternalChartDSL.g:21512:3: ( 'animated' )
+            // InternalChartDSL.g:21513:4: 'animated'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getAnimatedAnimatedKeyword_2_0_0()); 
             }
-            match(input,127,FOLLOW_2); if (state.failed) return ;
+            match(input,143,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartLineAccess().getAnimatedAnimatedKeyword_2_0_0()); 
             }
@@ -67667,28 +71240,28 @@
 
 
     // $ANTLR start "rule__ChartLine__ShowMarkerAssignment_2_1"
-    // InternalChartDSL.g:20450:1: rule__ChartLine__ShowMarkerAssignment_2_1 : ( ( 'showMarker' ) ) ;
+    // InternalChartDSL.g:21524:1: rule__ChartLine__ShowMarkerAssignment_2_1 : ( ( 'showMarker' ) ) ;
     public final void rule__ChartLine__ShowMarkerAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20454:1: ( ( ( 'showMarker' ) ) )
-            // InternalChartDSL.g:20455:2: ( ( 'showMarker' ) )
+            // InternalChartDSL.g:21528:1: ( ( ( 'showMarker' ) ) )
+            // InternalChartDSL.g:21529:2: ( ( 'showMarker' ) )
             {
-            // InternalChartDSL.g:20455:2: ( ( 'showMarker' ) )
-            // InternalChartDSL.g:20456:3: ( 'showMarker' )
+            // InternalChartDSL.g:21529:2: ( ( 'showMarker' ) )
+            // InternalChartDSL.g:21530:3: ( 'showMarker' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getShowMarkerShowMarkerKeyword_2_1_0()); 
             }
-            // InternalChartDSL.g:20457:3: ( 'showMarker' )
-            // InternalChartDSL.g:20458:4: 'showMarker'
+            // InternalChartDSL.g:21531:3: ( 'showMarker' )
+            // InternalChartDSL.g:21532:4: 'showMarker'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getShowMarkerShowMarkerKeyword_2_1_0()); 
             }
-            match(input,130,FOLLOW_2); if (state.failed) return ;
+            match(input,146,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartLineAccess().getShowMarkerShowMarkerKeyword_2_1_0()); 
             }
@@ -67720,28 +71293,28 @@
 
 
     // $ANTLR start "rule__ChartLine__TrendLineAssignment_2_2"
-    // InternalChartDSL.g:20469:1: rule__ChartLine__TrendLineAssignment_2_2 : ( ( 'trendLine' ) ) ;
+    // InternalChartDSL.g:21543:1: rule__ChartLine__TrendLineAssignment_2_2 : ( ( 'trendLine' ) ) ;
     public final void rule__ChartLine__TrendLineAssignment_2_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20473:1: ( ( ( 'trendLine' ) ) )
-            // InternalChartDSL.g:20474:2: ( ( 'trendLine' ) )
+            // InternalChartDSL.g:21547:1: ( ( ( 'trendLine' ) ) )
+            // InternalChartDSL.g:21548:2: ( ( 'trendLine' ) )
             {
-            // InternalChartDSL.g:20474:2: ( ( 'trendLine' ) )
-            // InternalChartDSL.g:20475:3: ( 'trendLine' )
+            // InternalChartDSL.g:21548:2: ( ( 'trendLine' ) )
+            // InternalChartDSL.g:21549:3: ( 'trendLine' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getTrendLineTrendLineKeyword_2_2_0()); 
             }
-            // InternalChartDSL.g:20476:3: ( 'trendLine' )
-            // InternalChartDSL.g:20477:4: 'trendLine'
+            // InternalChartDSL.g:21550:3: ( 'trendLine' )
+            // InternalChartDSL.g:21551:4: 'trendLine'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getTrendLineTrendLineKeyword_2_2_0()); 
             }
-            match(input,131,FOLLOW_2); if (state.failed) return ;
+            match(input,147,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartLineAccess().getTrendLineTrendLineKeyword_2_2_0()); 
             }
@@ -67773,28 +71346,28 @@
 
 
     // $ANTLR start "rule__ChartLine__CursorAssignment_2_3_0"
-    // InternalChartDSL.g:20488:1: rule__ChartLine__CursorAssignment_2_3_0 : ( ( 'cursor' ) ) ;
+    // InternalChartDSL.g:21562:1: rule__ChartLine__CursorAssignment_2_3_0 : ( ( 'cursor' ) ) ;
     public final void rule__ChartLine__CursorAssignment_2_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20492:1: ( ( ( 'cursor' ) ) )
-            // InternalChartDSL.g:20493:2: ( ( 'cursor' ) )
+            // InternalChartDSL.g:21566:1: ( ( ( 'cursor' ) ) )
+            // InternalChartDSL.g:21567:2: ( ( 'cursor' ) )
             {
-            // InternalChartDSL.g:20493:2: ( ( 'cursor' ) )
-            // InternalChartDSL.g:20494:3: ( 'cursor' )
+            // InternalChartDSL.g:21567:2: ( ( 'cursor' ) )
+            // InternalChartDSL.g:21568:3: ( 'cursor' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getCursorCursorKeyword_2_3_0_0()); 
             }
-            // InternalChartDSL.g:20495:3: ( 'cursor' )
-            // InternalChartDSL.g:20496:4: 'cursor'
+            // InternalChartDSL.g:21569:3: ( 'cursor' )
+            // InternalChartDSL.g:21570:4: 'cursor'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getCursorCursorKeyword_2_3_0_0()); 
             }
-            match(input,132,FOLLOW_2); if (state.failed) return ;
+            match(input,148,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartLineAccess().getCursorCursorKeyword_2_3_0_0()); 
             }
@@ -67826,28 +71399,28 @@
 
 
     // $ANTLR start "rule__ChartLine__ZoomAssignment_2_3_1"
-    // InternalChartDSL.g:20507:1: rule__ChartLine__ZoomAssignment_2_3_1 : ( ( 'zoom' ) ) ;
+    // InternalChartDSL.g:21581:1: rule__ChartLine__ZoomAssignment_2_3_1 : ( ( 'zoom' ) ) ;
     public final void rule__ChartLine__ZoomAssignment_2_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20511:1: ( ( ( 'zoom' ) ) )
-            // InternalChartDSL.g:20512:2: ( ( 'zoom' ) )
+            // InternalChartDSL.g:21585:1: ( ( ( 'zoom' ) ) )
+            // InternalChartDSL.g:21586:2: ( ( 'zoom' ) )
             {
-            // InternalChartDSL.g:20512:2: ( ( 'zoom' ) )
-            // InternalChartDSL.g:20513:3: ( 'zoom' )
+            // InternalChartDSL.g:21586:2: ( ( 'zoom' ) )
+            // InternalChartDSL.g:21587:3: ( 'zoom' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getZoomZoomKeyword_2_3_1_0()); 
             }
-            // InternalChartDSL.g:20514:3: ( 'zoom' )
-            // InternalChartDSL.g:20515:4: 'zoom'
+            // InternalChartDSL.g:21588:3: ( 'zoom' )
+            // InternalChartDSL.g:21589:4: 'zoom'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getZoomZoomKeyword_2_3_1_0()); 
             }
-            match(input,133,FOLLOW_2); if (state.failed) return ;
+            match(input,149,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartLineAccess().getZoomZoomKeyword_2_3_1_0()); 
             }
@@ -67879,28 +71452,28 @@
 
 
     // $ANTLR start "rule__ChartLine__TooltipAssignment_2_3_2"
-    // InternalChartDSL.g:20526:1: rule__ChartLine__TooltipAssignment_2_3_2 : ( ( 'tooltip' ) ) ;
+    // InternalChartDSL.g:21600:1: rule__ChartLine__TooltipAssignment_2_3_2 : ( ( 'tooltip' ) ) ;
     public final void rule__ChartLine__TooltipAssignment_2_3_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20530:1: ( ( ( 'tooltip' ) ) )
-            // InternalChartDSL.g:20531:2: ( ( 'tooltip' ) )
+            // InternalChartDSL.g:21604:1: ( ( ( 'tooltip' ) ) )
+            // InternalChartDSL.g:21605:2: ( ( 'tooltip' ) )
             {
-            // InternalChartDSL.g:20531:2: ( ( 'tooltip' ) )
-            // InternalChartDSL.g:20532:3: ( 'tooltip' )
+            // InternalChartDSL.g:21605:2: ( ( 'tooltip' ) )
+            // InternalChartDSL.g:21606:3: ( 'tooltip' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getTooltipTooltipKeyword_2_3_2_0()); 
             }
-            // InternalChartDSL.g:20533:3: ( 'tooltip' )
-            // InternalChartDSL.g:20534:4: 'tooltip'
+            // InternalChartDSL.g:21607:3: ( 'tooltip' )
+            // InternalChartDSL.g:21608:4: 'tooltip'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getTooltipTooltipKeyword_2_3_2_0()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartLineAccess().getTooltipTooltipKeyword_2_3_2_0()); 
             }
@@ -67932,28 +71505,28 @@
 
 
     // $ANTLR start "rule__ChartLine__FillToZeroAssignment_2_4"
-    // InternalChartDSL.g:20545:1: rule__ChartLine__FillToZeroAssignment_2_4 : ( ( 'fillZero' ) ) ;
+    // InternalChartDSL.g:21619:1: rule__ChartLine__FillToZeroAssignment_2_4 : ( ( 'fillZero' ) ) ;
     public final void rule__ChartLine__FillToZeroAssignment_2_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20549:1: ( ( ( 'fillZero' ) ) )
-            // InternalChartDSL.g:20550:2: ( ( 'fillZero' ) )
+            // InternalChartDSL.g:21623:1: ( ( ( 'fillZero' ) ) )
+            // InternalChartDSL.g:21624:2: ( ( 'fillZero' ) )
             {
-            // InternalChartDSL.g:20550:2: ( ( 'fillZero' ) )
-            // InternalChartDSL.g:20551:3: ( 'fillZero' )
+            // InternalChartDSL.g:21624:2: ( ( 'fillZero' ) )
+            // InternalChartDSL.g:21625:3: ( 'fillZero' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getFillToZeroFillZeroKeyword_2_4_0()); 
             }
-            // InternalChartDSL.g:20552:3: ( 'fillZero' )
-            // InternalChartDSL.g:20553:4: 'fillZero'
+            // InternalChartDSL.g:21626:3: ( 'fillZero' )
+            // InternalChartDSL.g:21627:4: 'fillZero'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getFillToZeroFillZeroKeyword_2_4_0()); 
             }
-            match(input,134,FOLLOW_2); if (state.failed) return ;
+            match(input,150,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartLineAccess().getFillToZeroFillZeroKeyword_2_4_0()); 
             }
@@ -67985,28 +71558,28 @@
 
 
     // $ANTLR start "rule__ChartLine__FillAreaAssignment_2_5"
-    // InternalChartDSL.g:20564:1: rule__ChartLine__FillAreaAssignment_2_5 : ( ( 'filled' ) ) ;
+    // InternalChartDSL.g:21638:1: rule__ChartLine__FillAreaAssignment_2_5 : ( ( 'filled' ) ) ;
     public final void rule__ChartLine__FillAreaAssignment_2_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20568:1: ( ( ( 'filled' ) ) )
-            // InternalChartDSL.g:20569:2: ( ( 'filled' ) )
+            // InternalChartDSL.g:21642:1: ( ( ( 'filled' ) ) )
+            // InternalChartDSL.g:21643:2: ( ( 'filled' ) )
             {
-            // InternalChartDSL.g:20569:2: ( ( 'filled' ) )
-            // InternalChartDSL.g:20570:3: ( 'filled' )
+            // InternalChartDSL.g:21643:2: ( ( 'filled' ) )
+            // InternalChartDSL.g:21644:3: ( 'filled' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getFillAreaFilledKeyword_2_5_0()); 
             }
-            // InternalChartDSL.g:20571:3: ( 'filled' )
-            // InternalChartDSL.g:20572:4: 'filled'
+            // InternalChartDSL.g:21645:3: ( 'filled' )
+            // InternalChartDSL.g:21646:4: 'filled'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartLineAccess().getFillAreaFilledKeyword_2_5_0()); 
             }
-            match(input,135,FOLLOW_2); if (state.failed) return ;
+            match(input,151,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartLineAccess().getFillAreaFilledKeyword_2_5_0()); 
             }
@@ -68038,28 +71611,28 @@
 
 
     // $ANTLR start "rule__ChartPie__EmptyAssignment_2"
-    // InternalChartDSL.g:20583:1: rule__ChartPie__EmptyAssignment_2 : ( ( 'empty' ) ) ;
+    // InternalChartDSL.g:21657:1: rule__ChartPie__EmptyAssignment_2 : ( ( 'empty' ) ) ;
     public final void rule__ChartPie__EmptyAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20587:1: ( ( ( 'empty' ) ) )
-            // InternalChartDSL.g:20588:2: ( ( 'empty' ) )
+            // InternalChartDSL.g:21661:1: ( ( ( 'empty' ) ) )
+            // InternalChartDSL.g:21662:2: ( ( 'empty' ) )
             {
-            // InternalChartDSL.g:20588:2: ( ( 'empty' ) )
-            // InternalChartDSL.g:20589:3: ( 'empty' )
+            // InternalChartDSL.g:21662:2: ( ( 'empty' ) )
+            // InternalChartDSL.g:21663:3: ( 'empty' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPieAccess().getEmptyEmptyKeyword_2_0()); 
             }
-            // InternalChartDSL.g:20590:3: ( 'empty' )
-            // InternalChartDSL.g:20591:4: 'empty'
+            // InternalChartDSL.g:21664:3: ( 'empty' )
+            // InternalChartDSL.g:21665:4: 'empty'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartPieAccess().getEmptyEmptyKeyword_2_0()); 
             }
-            match(input,136,FOLLOW_2); if (state.failed) return ;
+            match(input,152,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartPieAccess().getEmptyEmptyKeyword_2_0()); 
             }
@@ -68091,28 +71664,28 @@
 
 
     // $ANTLR start "rule__ChartBubble__MultiplierAssignment_2_0_0"
-    // InternalChartDSL.g:20602:1: rule__ChartBubble__MultiplierAssignment_2_0_0 : ( ( 'multiplier' ) ) ;
+    // InternalChartDSL.g:21676:1: rule__ChartBubble__MultiplierAssignment_2_0_0 : ( ( 'multiplier' ) ) ;
     public final void rule__ChartBubble__MultiplierAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20606:1: ( ( ( 'multiplier' ) ) )
-            // InternalChartDSL.g:20607:2: ( ( 'multiplier' ) )
+            // InternalChartDSL.g:21680:1: ( ( ( 'multiplier' ) ) )
+            // InternalChartDSL.g:21681:2: ( ( 'multiplier' ) )
             {
-            // InternalChartDSL.g:20607:2: ( ( 'multiplier' ) )
-            // InternalChartDSL.g:20608:3: ( 'multiplier' )
+            // InternalChartDSL.g:21681:2: ( ( 'multiplier' ) )
+            // InternalChartDSL.g:21682:3: ( 'multiplier' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getMultiplierMultiplierKeyword_2_0_0_0()); 
             }
-            // InternalChartDSL.g:20609:3: ( 'multiplier' )
-            // InternalChartDSL.g:20610:4: 'multiplier'
+            // InternalChartDSL.g:21683:3: ( 'multiplier' )
+            // InternalChartDSL.g:21684:4: 'multiplier'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getMultiplierMultiplierKeyword_2_0_0_0()); 
             }
-            match(input,137,FOLLOW_2); if (state.failed) return ;
+            match(input,153,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartBubbleAccess().getMultiplierMultiplierKeyword_2_0_0_0()); 
             }
@@ -68144,17 +71717,17 @@
 
 
     // $ANTLR start "rule__ChartBubble__MultiplierValueAssignment_2_0_1"
-    // InternalChartDSL.g:20621:1: rule__ChartBubble__MultiplierValueAssignment_2_0_1 : ( ruleNumber ) ;
+    // InternalChartDSL.g:21695:1: rule__ChartBubble__MultiplierValueAssignment_2_0_1 : ( ruleNumber ) ;
     public final void rule__ChartBubble__MultiplierValueAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20625:1: ( ( ruleNumber ) )
-            // InternalChartDSL.g:20626:2: ( ruleNumber )
+            // InternalChartDSL.g:21699:1: ( ( ruleNumber ) )
+            // InternalChartDSL.g:21700:2: ( ruleNumber )
             {
-            // InternalChartDSL.g:20626:2: ( ruleNumber )
-            // InternalChartDSL.g:20627:3: ruleNumber
+            // InternalChartDSL.g:21700:2: ( ruleNumber )
+            // InternalChartDSL.g:21701:3: ruleNumber
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getMultiplierValueNumberParserRuleCall_2_0_1_0()); 
@@ -68189,28 +71762,28 @@
 
 
     // $ANTLR start "rule__ChartBubble__GradientAssignment_2_1_0"
-    // InternalChartDSL.g:20636:1: rule__ChartBubble__GradientAssignment_2_1_0 : ( ( 'gradient' ) ) ;
+    // InternalChartDSL.g:21710:1: rule__ChartBubble__GradientAssignment_2_1_0 : ( ( 'gradient' ) ) ;
     public final void rule__ChartBubble__GradientAssignment_2_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20640:1: ( ( ( 'gradient' ) ) )
-            // InternalChartDSL.g:20641:2: ( ( 'gradient' ) )
+            // InternalChartDSL.g:21714:1: ( ( ( 'gradient' ) ) )
+            // InternalChartDSL.g:21715:2: ( ( 'gradient' ) )
             {
-            // InternalChartDSL.g:20641:2: ( ( 'gradient' ) )
-            // InternalChartDSL.g:20642:3: ( 'gradient' )
+            // InternalChartDSL.g:21715:2: ( ( 'gradient' ) )
+            // InternalChartDSL.g:21716:3: ( 'gradient' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getGradientGradientKeyword_2_1_0_0()); 
             }
-            // InternalChartDSL.g:20643:3: ( 'gradient' )
-            // InternalChartDSL.g:20644:4: 'gradient'
+            // InternalChartDSL.g:21717:3: ( 'gradient' )
+            // InternalChartDSL.g:21718:4: 'gradient'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getGradientGradientKeyword_2_1_0_0()); 
             }
-            match(input,138,FOLLOW_2); if (state.failed) return ;
+            match(input,154,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartBubbleAccess().getGradientGradientKeyword_2_1_0_0()); 
             }
@@ -68242,28 +71815,28 @@
 
 
     // $ANTLR start "rule__ChartBubble__TransparentAssignment_2_1_1"
-    // InternalChartDSL.g:20655:1: rule__ChartBubble__TransparentAssignment_2_1_1 : ( ( 'transparent' ) ) ;
+    // InternalChartDSL.g:21729:1: rule__ChartBubble__TransparentAssignment_2_1_1 : ( ( 'transparent' ) ) ;
     public final void rule__ChartBubble__TransparentAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20659:1: ( ( ( 'transparent' ) ) )
-            // InternalChartDSL.g:20660:2: ( ( 'transparent' ) )
+            // InternalChartDSL.g:21733:1: ( ( ( 'transparent' ) ) )
+            // InternalChartDSL.g:21734:2: ( ( 'transparent' ) )
             {
-            // InternalChartDSL.g:20660:2: ( ( 'transparent' ) )
-            // InternalChartDSL.g:20661:3: ( 'transparent' )
+            // InternalChartDSL.g:21734:2: ( ( 'transparent' ) )
+            // InternalChartDSL.g:21735:3: ( 'transparent' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getTransparentTransparentKeyword_2_1_1_0()); 
             }
-            // InternalChartDSL.g:20662:3: ( 'transparent' )
-            // InternalChartDSL.g:20663:4: 'transparent'
+            // InternalChartDSL.g:21736:3: ( 'transparent' )
+            // InternalChartDSL.g:21737:4: 'transparent'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartBubbleAccess().getTransparentTransparentKeyword_2_1_1_0()); 
             }
-            match(input,139,FOLLOW_2); if (state.failed) return ;
+            match(input,155,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartBubbleAccess().getTransparentTransparentKeyword_2_1_1_0()); 
             }
@@ -68295,28 +71868,28 @@
 
 
     // $ANTLR start "rule__ChartGauge__LabeledAssignment_2_0_0"
-    // InternalChartDSL.g:20674:1: rule__ChartGauge__LabeledAssignment_2_0_0 : ( ( 'label' ) ) ;
+    // InternalChartDSL.g:21748:1: rule__ChartGauge__LabeledAssignment_2_0_0 : ( ( 'label' ) ) ;
     public final void rule__ChartGauge__LabeledAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20678:1: ( ( ( 'label' ) ) )
-            // InternalChartDSL.g:20679:2: ( ( 'label' ) )
+            // InternalChartDSL.g:21752:1: ( ( ( 'label' ) ) )
+            // InternalChartDSL.g:21753:2: ( ( 'label' ) )
             {
-            // InternalChartDSL.g:20679:2: ( ( 'label' ) )
-            // InternalChartDSL.g:20680:3: ( 'label' )
+            // InternalChartDSL.g:21753:2: ( ( 'label' ) )
+            // InternalChartDSL.g:21754:3: ( 'label' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getLabeledLabelKeyword_2_0_0_0()); 
             }
-            // InternalChartDSL.g:20681:3: ( 'label' )
-            // InternalChartDSL.g:20682:4: 'label'
+            // InternalChartDSL.g:21755:3: ( 'label' )
+            // InternalChartDSL.g:21756:4: 'label'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getLabeledLabelKeyword_2_0_0_0()); 
             }
-            match(input,140,FOLLOW_2); if (state.failed) return ;
+            match(input,156,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartGaugeAccess().getLabeledLabelKeyword_2_0_0_0()); 
             }
@@ -68348,17 +71921,17 @@
 
 
     // $ANTLR start "rule__ChartGauge__LabelValueAssignment_2_0_1"
-    // InternalChartDSL.g:20693:1: rule__ChartGauge__LabelValueAssignment_2_0_1 : ( RULE_STRING ) ;
+    // InternalChartDSL.g:21767:1: rule__ChartGauge__LabelValueAssignment_2_0_1 : ( RULE_STRING ) ;
     public final void rule__ChartGauge__LabelValueAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20697:1: ( ( RULE_STRING ) )
-            // InternalChartDSL.g:20698:2: ( RULE_STRING )
+            // InternalChartDSL.g:21771:1: ( ( RULE_STRING ) )
+            // InternalChartDSL.g:21772:2: ( RULE_STRING )
             {
-            // InternalChartDSL.g:20698:2: ( RULE_STRING )
-            // InternalChartDSL.g:20699:3: RULE_STRING
+            // InternalChartDSL.g:21772:2: ( RULE_STRING )
+            // InternalChartDSL.g:21773:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getLabelValueSTRINGTerminalRuleCall_2_0_1_0()); 
@@ -68389,28 +71962,28 @@
 
 
     // $ANTLR start "rule__ChartGauge__HasTicksAssignment_2_1_0"
-    // InternalChartDSL.g:20708:1: rule__ChartGauge__HasTicksAssignment_2_1_0 : ( ( 'hasTicks' ) ) ;
+    // InternalChartDSL.g:21782:1: rule__ChartGauge__HasTicksAssignment_2_1_0 : ( ( 'hasTicks' ) ) ;
     public final void rule__ChartGauge__HasTicksAssignment_2_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20712:1: ( ( ( 'hasTicks' ) ) )
-            // InternalChartDSL.g:20713:2: ( ( 'hasTicks' ) )
+            // InternalChartDSL.g:21786:1: ( ( ( 'hasTicks' ) ) )
+            // InternalChartDSL.g:21787:2: ( ( 'hasTicks' ) )
             {
-            // InternalChartDSL.g:20713:2: ( ( 'hasTicks' ) )
-            // InternalChartDSL.g:20714:3: ( 'hasTicks' )
+            // InternalChartDSL.g:21787:2: ( ( 'hasTicks' ) )
+            // InternalChartDSL.g:21788:3: ( 'hasTicks' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getHasTicksHasTicksKeyword_2_1_0_0()); 
             }
-            // InternalChartDSL.g:20715:3: ( 'hasTicks' )
-            // InternalChartDSL.g:20716:4: 'hasTicks'
+            // InternalChartDSL.g:21789:3: ( 'hasTicks' )
+            // InternalChartDSL.g:21790:4: 'hasTicks'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getHasTicksHasTicksKeyword_2_1_0_0()); 
             }
-            match(input,141,FOLLOW_2); if (state.failed) return ;
+            match(input,157,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartGaugeAccess().getHasTicksHasTicksKeyword_2_1_0_0()); 
             }
@@ -68442,17 +72015,17 @@
 
 
     // $ANTLR start "rule__ChartGauge__MinValueAssignment_2_1_2"
-    // InternalChartDSL.g:20727:1: rule__ChartGauge__MinValueAssignment_2_1_2 : ( RULE_INT ) ;
+    // InternalChartDSL.g:21801:1: rule__ChartGauge__MinValueAssignment_2_1_2 : ( RULE_INT ) ;
     public final void rule__ChartGauge__MinValueAssignment_2_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20731:1: ( ( RULE_INT ) )
-            // InternalChartDSL.g:20732:2: ( RULE_INT )
+            // InternalChartDSL.g:21805:1: ( ( RULE_INT ) )
+            // InternalChartDSL.g:21806:2: ( RULE_INT )
             {
-            // InternalChartDSL.g:20732:2: ( RULE_INT )
-            // InternalChartDSL.g:20733:3: RULE_INT
+            // InternalChartDSL.g:21806:2: ( RULE_INT )
+            // InternalChartDSL.g:21807:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getMinValueINTTerminalRuleCall_2_1_2_0()); 
@@ -68483,17 +72056,17 @@
 
 
     // $ANTLR start "rule__ChartGauge__MaxValueAssignment_2_1_4"
-    // InternalChartDSL.g:20742:1: rule__ChartGauge__MaxValueAssignment_2_1_4 : ( RULE_INT ) ;
+    // InternalChartDSL.g:21816:1: rule__ChartGauge__MaxValueAssignment_2_1_4 : ( RULE_INT ) ;
     public final void rule__ChartGauge__MaxValueAssignment_2_1_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20746:1: ( ( RULE_INT ) )
-            // InternalChartDSL.g:20747:2: ( RULE_INT )
+            // InternalChartDSL.g:21820:1: ( ( RULE_INT ) )
+            // InternalChartDSL.g:21821:2: ( RULE_INT )
             {
-            // InternalChartDSL.g:20747:2: ( RULE_INT )
-            // InternalChartDSL.g:20748:3: RULE_INT
+            // InternalChartDSL.g:21821:2: ( RULE_INT )
+            // InternalChartDSL.g:21822:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getMaxValueINTTerminalRuleCall_2_1_4_0()); 
@@ -68524,28 +72097,28 @@
 
 
     // $ANTLR start "rule__ChartGauge__HasIntervalsAssignment_2_2_0"
-    // InternalChartDSL.g:20757:1: rule__ChartGauge__HasIntervalsAssignment_2_2_0 : ( ( 'intervals' ) ) ;
+    // InternalChartDSL.g:21831:1: rule__ChartGauge__HasIntervalsAssignment_2_2_0 : ( ( 'intervals' ) ) ;
     public final void rule__ChartGauge__HasIntervalsAssignment_2_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20761:1: ( ( ( 'intervals' ) ) )
-            // InternalChartDSL.g:20762:2: ( ( 'intervals' ) )
+            // InternalChartDSL.g:21835:1: ( ( ( 'intervals' ) ) )
+            // InternalChartDSL.g:21836:2: ( ( 'intervals' ) )
             {
-            // InternalChartDSL.g:20762:2: ( ( 'intervals' ) )
-            // InternalChartDSL.g:20763:3: ( 'intervals' )
+            // InternalChartDSL.g:21836:2: ( ( 'intervals' ) )
+            // InternalChartDSL.g:21837:3: ( 'intervals' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getHasIntervalsIntervalsKeyword_2_2_0_0()); 
             }
-            // InternalChartDSL.g:20764:3: ( 'intervals' )
-            // InternalChartDSL.g:20765:4: 'intervals'
+            // InternalChartDSL.g:21838:3: ( 'intervals' )
+            // InternalChartDSL.g:21839:4: 'intervals'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getHasIntervalsIntervalsKeyword_2_2_0_0()); 
             }
-            match(input,142,FOLLOW_2); if (state.failed) return ;
+            match(input,158,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartGaugeAccess().getHasIntervalsIntervalsKeyword_2_2_0_0()); 
             }
@@ -68577,17 +72150,17 @@
 
 
     // $ANTLR start "rule__ChartGauge__IntervalsAssignment_2_2_2"
-    // InternalChartDSL.g:20776:1: rule__ChartGauge__IntervalsAssignment_2_2_2 : ( ruleChartInterval ) ;
+    // InternalChartDSL.g:21850:1: rule__ChartGauge__IntervalsAssignment_2_2_2 : ( ruleChartInterval ) ;
     public final void rule__ChartGauge__IntervalsAssignment_2_2_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20780:1: ( ( ruleChartInterval ) )
-            // InternalChartDSL.g:20781:2: ( ruleChartInterval )
+            // InternalChartDSL.g:21854:1: ( ( ruleChartInterval ) )
+            // InternalChartDSL.g:21855:2: ( ruleChartInterval )
             {
-            // InternalChartDSL.g:20781:2: ( ruleChartInterval )
-            // InternalChartDSL.g:20782:3: ruleChartInterval
+            // InternalChartDSL.g:21855:2: ( ruleChartInterval )
+            // InternalChartDSL.g:21856:3: ruleChartInterval
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartGaugeAccess().getIntervalsChartIntervalParserRuleCall_2_2_2_0()); 
@@ -68622,28 +72195,28 @@
 
 
     // $ANTLR start "rule__ChartTree__MapAssignment_2_0"
-    // InternalChartDSL.g:20791:1: rule__ChartTree__MapAssignment_2_0 : ( ( 'map' ) ) ;
+    // InternalChartDSL.g:21865:1: rule__ChartTree__MapAssignment_2_0 : ( ( 'map' ) ) ;
     public final void rule__ChartTree__MapAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20795:1: ( ( ( 'map' ) ) )
-            // InternalChartDSL.g:20796:2: ( ( 'map' ) )
+            // InternalChartDSL.g:21869:1: ( ( ( 'map' ) ) )
+            // InternalChartDSL.g:21870:2: ( ( 'map' ) )
             {
-            // InternalChartDSL.g:20796:2: ( ( 'map' ) )
-            // InternalChartDSL.g:20797:3: ( 'map' )
+            // InternalChartDSL.g:21870:2: ( ( 'map' ) )
+            // InternalChartDSL.g:21871:3: ( 'map' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartTreeAccess().getMapMapKeyword_2_0_0()); 
             }
-            // InternalChartDSL.g:20798:3: ( 'map' )
-            // InternalChartDSL.g:20799:4: 'map'
+            // InternalChartDSL.g:21872:3: ( 'map' )
+            // InternalChartDSL.g:21873:4: 'map'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartTreeAccess().getMapMapKeyword_2_0_0()); 
             }
-            match(input,143,FOLLOW_2); if (state.failed) return ;
+            match(input,159,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartTreeAccess().getMapMapKeyword_2_0_0()); 
             }
@@ -68675,28 +72248,28 @@
 
 
     // $ANTLR start "rule__ChartTree__CollapsibleAssignment_2_1"
-    // InternalChartDSL.g:20810:1: rule__ChartTree__CollapsibleAssignment_2_1 : ( ( 'collapsible' ) ) ;
+    // InternalChartDSL.g:21884:1: rule__ChartTree__CollapsibleAssignment_2_1 : ( ( 'collapsible' ) ) ;
     public final void rule__ChartTree__CollapsibleAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20814:1: ( ( ( 'collapsible' ) ) )
-            // InternalChartDSL.g:20815:2: ( ( 'collapsible' ) )
+            // InternalChartDSL.g:21888:1: ( ( ( 'collapsible' ) ) )
+            // InternalChartDSL.g:21889:2: ( ( 'collapsible' ) )
             {
-            // InternalChartDSL.g:20815:2: ( ( 'collapsible' ) )
-            // InternalChartDSL.g:20816:3: ( 'collapsible' )
+            // InternalChartDSL.g:21889:2: ( ( 'collapsible' ) )
+            // InternalChartDSL.g:21890:3: ( 'collapsible' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartTreeAccess().getCollapsibleCollapsibleKeyword_2_1_0()); 
             }
-            // InternalChartDSL.g:20817:3: ( 'collapsible' )
-            // InternalChartDSL.g:20818:4: 'collapsible'
+            // InternalChartDSL.g:21891:3: ( 'collapsible' )
+            // InternalChartDSL.g:21892:4: 'collapsible'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartTreeAccess().getCollapsibleCollapsibleKeyword_2_1_0()); 
             }
-            match(input,144,FOLLOW_2); if (state.failed) return ;
+            match(input,160,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartTreeAccess().getCollapsibleCollapsibleKeyword_2_1_0()); 
             }
@@ -68728,17 +72301,17 @@
 
 
     // $ANTLR start "rule__ChartNumberInterval__NumberIntervalValueAssignment_2"
-    // InternalChartDSL.g:20829:1: rule__ChartNumberInterval__NumberIntervalValueAssignment_2 : ( ruleSignedNumber ) ;
+    // InternalChartDSL.g:21903:1: rule__ChartNumberInterval__NumberIntervalValueAssignment_2 : ( ruleSignedNumber ) ;
     public final void rule__ChartNumberInterval__NumberIntervalValueAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20833:1: ( ( ruleSignedNumber ) )
-            // InternalChartDSL.g:20834:2: ( ruleSignedNumber )
+            // InternalChartDSL.g:21907:1: ( ( ruleSignedNumber ) )
+            // InternalChartDSL.g:21908:2: ( ruleSignedNumber )
             {
-            // InternalChartDSL.g:20834:2: ( ruleSignedNumber )
-            // InternalChartDSL.g:20835:3: ruleSignedNumber
+            // InternalChartDSL.g:21908:2: ( ruleSignedNumber )
+            // InternalChartDSL.g:21909:3: ruleSignedNumber
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0()); 
@@ -68773,17 +72346,17 @@
 
 
     // $ANTLR start "rule__ChartNumberInterval__NumberRangeAssignment_3"
-    // InternalChartDSL.g:20844:1: rule__ChartNumberInterval__NumberRangeAssignment_3 : ( ruleChartRangeElement ) ;
+    // InternalChartDSL.g:21918:1: rule__ChartNumberInterval__NumberRangeAssignment_3 : ( ruleChartRangeElement ) ;
     public final void rule__ChartNumberInterval__NumberRangeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20848:1: ( ( ruleChartRangeElement ) )
-            // InternalChartDSL.g:20849:2: ( ruleChartRangeElement )
+            // InternalChartDSL.g:21922:1: ( ( ruleChartRangeElement ) )
+            // InternalChartDSL.g:21923:2: ( ruleChartRangeElement )
             {
-            // InternalChartDSL.g:20849:2: ( ruleChartRangeElement )
-            // InternalChartDSL.g:20850:3: ruleChartRangeElement
+            // InternalChartDSL.g:21923:2: ( ruleChartRangeElement )
+            // InternalChartDSL.g:21924:3: ruleChartRangeElement
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartNumberIntervalAccess().getNumberRangeChartRangeElementParserRuleCall_3_0()); 
@@ -68818,23 +72391,23 @@
 
 
     // $ANTLR start "rule__ChartDatamart__DatamartRefAssignment_1"
-    // InternalChartDSL.g:20859:1: rule__ChartDatamart__DatamartRefAssignment_1 : ( ( RULE_ID ) ) ;
+    // InternalChartDSL.g:21933:1: rule__ChartDatamart__DatamartRefAssignment_1 : ( ( RULE_ID ) ) ;
     public final void rule__ChartDatamart__DatamartRefAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20863:1: ( ( ( RULE_ID ) ) )
-            // InternalChartDSL.g:20864:2: ( ( RULE_ID ) )
+            // InternalChartDSL.g:21937:1: ( ( ( RULE_ID ) ) )
+            // InternalChartDSL.g:21938:2: ( ( RULE_ID ) )
             {
-            // InternalChartDSL.g:20864:2: ( ( RULE_ID ) )
-            // InternalChartDSL.g:20865:3: ( RULE_ID )
+            // InternalChartDSL.g:21938:2: ( ( RULE_ID ) )
+            // InternalChartDSL.g:21939:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDatamartAccess().getDatamartRefDatamartDefinitionCrossReference_1_0()); 
             }
-            // InternalChartDSL.g:20866:3: ( RULE_ID )
-            // InternalChartDSL.g:20867:4: RULE_ID
+            // InternalChartDSL.g:21940:3: ( RULE_ID )
+            // InternalChartDSL.g:21941:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDatamartAccess().getDatamartRefDatamartDefinitionIDTerminalRuleCall_1_0_1()); 
@@ -68871,17 +72444,17 @@
 
 
     // $ANTLR start "rule__ChartDatamart__ElementsAssignment_3"
-    // InternalChartDSL.g:20878:1: rule__ChartDatamart__ElementsAssignment_3 : ( ruleChartElement ) ;
+    // InternalChartDSL.g:21952:1: rule__ChartDatamart__ElementsAssignment_3 : ( ruleChartElement ) ;
     public final void rule__ChartDatamart__ElementsAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20882:1: ( ( ruleChartElement ) )
-            // InternalChartDSL.g:20883:2: ( ruleChartElement )
+            // InternalChartDSL.g:21956:1: ( ( ruleChartElement ) )
+            // InternalChartDSL.g:21957:2: ( ruleChartElement )
             {
-            // InternalChartDSL.g:20883:2: ( ruleChartElement )
-            // InternalChartDSL.g:20884:3: ruleChartElement
+            // InternalChartDSL.g:21957:2: ( ruleChartElement )
+            // InternalChartDSL.g:21958:3: ruleChartElement
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartDatamartAccess().getElementsChartElementParserRuleCall_3_0()); 
@@ -68915,21 +72488,74 @@
     // $ANTLR end "rule__ChartDatamart__ElementsAssignment_3"
 
 
-    // $ANTLR start "rule__ChartLegend__PlacementAssignment_1"
-    // InternalChartDSL.g:20893:1: rule__ChartLegend__PlacementAssignment_1 : ( ruleLegendPlacementEnum ) ;
-    public final void rule__ChartLegend__PlacementAssignment_1() throws RecognitionException {
+    // $ANTLR start "rule__ChartLegend__NoLegendAssignment_2"
+    // InternalChartDSL.g:21967:1: rule__ChartLegend__NoLegendAssignment_2 : ( ( 'noLegend' ) ) ;
+    public final void rule__ChartLegend__NoLegendAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20897:1: ( ( ruleLegendPlacementEnum ) )
-            // InternalChartDSL.g:20898:2: ( ruleLegendPlacementEnum )
+            // InternalChartDSL.g:21971:1: ( ( ( 'noLegend' ) ) )
+            // InternalChartDSL.g:21972:2: ( ( 'noLegend' ) )
             {
-            // InternalChartDSL.g:20898:2: ( ruleLegendPlacementEnum )
-            // InternalChartDSL.g:20899:3: ruleLegendPlacementEnum
+            // InternalChartDSL.g:21972:2: ( ( 'noLegend' ) )
+            // InternalChartDSL.g:21973:3: ( 'noLegend' )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_1_0()); 
+               before(grammarAccess.getChartLegendAccess().getNoLegendNoLegendKeyword_2_0()); 
+            }
+            // InternalChartDSL.g:21974:3: ( 'noLegend' )
+            // InternalChartDSL.g:21975:4: 'noLegend'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getNoLegendNoLegendKeyword_2_0()); 
+            }
+            match(input,161,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getNoLegendNoLegendKeyword_2_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getNoLegendNoLegendKeyword_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__NoLegendAssignment_2"
+
+
+    // $ANTLR start "rule__ChartLegend__PlacementAssignment_3_0"
+    // InternalChartDSL.g:21986:1: rule__ChartLegend__PlacementAssignment_3_0 : ( ruleLegendPlacementEnum ) ;
+    public final void rule__ChartLegend__PlacementAssignment_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:21990:1: ( ( ruleLegendPlacementEnum ) )
+            // InternalChartDSL.g:21991:2: ( ruleLegendPlacementEnum )
+            {
+            // InternalChartDSL.g:21991:2: ( ruleLegendPlacementEnum )
+            // InternalChartDSL.g:21992:3: ruleLegendPlacementEnum
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_3_0_0()); 
             }
             pushFollow(FOLLOW_2);
             ruleLegendPlacementEnum();
@@ -68937,7 +72563,7 @@
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_1_0()); 
+               after(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_3_0_0()); 
             }
 
             }
@@ -68957,40 +72583,40 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartLegend__PlacementAssignment_1"
+    // $ANTLR end "rule__ChartLegend__PlacementAssignment_3_0"
 
 
-    // $ANTLR start "rule__ChartLegend__ToggleAssignment_2_0"
-    // InternalChartDSL.g:20908:1: rule__ChartLegend__ToggleAssignment_2_0 : ( ( 'toggle' ) ) ;
-    public final void rule__ChartLegend__ToggleAssignment_2_0() throws RecognitionException {
+    // $ANTLR start "rule__ChartLegend__ToggleAssignment_3_1_0"
+    // InternalChartDSL.g:22001:1: rule__ChartLegend__ToggleAssignment_3_1_0 : ( ( 'toggle' ) ) ;
+    public final void rule__ChartLegend__ToggleAssignment_3_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20912:1: ( ( ( 'toggle' ) ) )
-            // InternalChartDSL.g:20913:2: ( ( 'toggle' ) )
+            // InternalChartDSL.g:22005:1: ( ( ( 'toggle' ) ) )
+            // InternalChartDSL.g:22006:2: ( ( 'toggle' ) )
             {
-            // InternalChartDSL.g:20913:2: ( ( 'toggle' ) )
-            // InternalChartDSL.g:20914:3: ( 'toggle' )
+            // InternalChartDSL.g:22006:2: ( ( 'toggle' ) )
+            // InternalChartDSL.g:22007:3: ( 'toggle' )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_2_0_0()); 
+               before(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_3_1_0_0()); 
             }
-            // InternalChartDSL.g:20915:3: ( 'toggle' )
-            // InternalChartDSL.g:20916:4: 'toggle'
+            // InternalChartDSL.g:22008:3: ( 'toggle' )
+            // InternalChartDSL.g:22009:4: 'toggle'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_2_0_0()); 
+               before(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_3_1_0_0()); 
             }
-            match(input,145,FOLLOW_2); if (state.failed) return ;
+            match(input,162,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_2_0_0()); 
+               after(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_3_1_0_0()); 
             }
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_2_0_0()); 
+               after(grammarAccess.getChartLegendAccess().getToggleToggleKeyword_3_1_0_0()); 
             }
 
             }
@@ -69010,40 +72636,40 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartLegend__ToggleAssignment_2_0"
+    // $ANTLR end "rule__ChartLegend__ToggleAssignment_3_1_0"
 
 
-    // $ANTLR start "rule__ChartLegend__ReplotAssignment_2_1"
-    // InternalChartDSL.g:20927:1: rule__ChartLegend__ReplotAssignment_2_1 : ( ( 'replot' ) ) ;
-    public final void rule__ChartLegend__ReplotAssignment_2_1() throws RecognitionException {
+    // $ANTLR start "rule__ChartLegend__ReplotAssignment_3_1_1"
+    // InternalChartDSL.g:22020:1: rule__ChartLegend__ReplotAssignment_3_1_1 : ( ( 'replot' ) ) ;
+    public final void rule__ChartLegend__ReplotAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20931:1: ( ( ( 'replot' ) ) )
-            // InternalChartDSL.g:20932:2: ( ( 'replot' ) )
+            // InternalChartDSL.g:22024:1: ( ( ( 'replot' ) ) )
+            // InternalChartDSL.g:22025:2: ( ( 'replot' ) )
             {
-            // InternalChartDSL.g:20932:2: ( ( 'replot' ) )
-            // InternalChartDSL.g:20933:3: ( 'replot' )
+            // InternalChartDSL.g:22025:2: ( ( 'replot' ) )
+            // InternalChartDSL.g:22026:3: ( 'replot' )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_2_1_0()); 
+               before(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_3_1_1_0()); 
             }
-            // InternalChartDSL.g:20934:3: ( 'replot' )
-            // InternalChartDSL.g:20935:4: 'replot'
+            // InternalChartDSL.g:22027:3: ( 'replot' )
+            // InternalChartDSL.g:22028:4: 'replot'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_2_1_0()); 
+               before(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_3_1_1_0()); 
             }
-            match(input,146,FOLLOW_2); if (state.failed) return ;
+            match(input,163,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_2_1_0()); 
+               after(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_3_1_1_0()); 
             }
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_2_1_0()); 
+               after(grammarAccess.getChartLegendAccess().getReplotReplotKeyword_3_1_1_0()); 
             }
 
             }
@@ -69063,24 +72689,24 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartLegend__ReplotAssignment_2_1"
+    // $ANTLR end "rule__ChartLegend__ReplotAssignment_3_1_1"
 
 
-    // $ANTLR start "rule__ChartLegend__ToggleTypeAssignment_2_2"
-    // InternalChartDSL.g:20946:1: rule__ChartLegend__ToggleTypeAssignment_2_2 : ( ruleToggleTypeEnum ) ;
-    public final void rule__ChartLegend__ToggleTypeAssignment_2_2() throws RecognitionException {
+    // $ANTLR start "rule__ChartLegend__ToggleTypeAssignment_3_1_2"
+    // InternalChartDSL.g:22039:1: rule__ChartLegend__ToggleTypeAssignment_3_1_2 : ( ruleToggleTypeEnum ) ;
+    public final void rule__ChartLegend__ToggleTypeAssignment_3_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20950:1: ( ( ruleToggleTypeEnum ) )
-            // InternalChartDSL.g:20951:2: ( ruleToggleTypeEnum )
+            // InternalChartDSL.g:22043:1: ( ( ruleToggleTypeEnum ) )
+            // InternalChartDSL.g:22044:2: ( ruleToggleTypeEnum )
             {
-            // InternalChartDSL.g:20951:2: ( ruleToggleTypeEnum )
-            // InternalChartDSL.g:20952:3: ruleToggleTypeEnum
+            // InternalChartDSL.g:22044:2: ( ruleToggleTypeEnum )
+            // InternalChartDSL.g:22045:3: ruleToggleTypeEnum
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_2_2_0()); 
+               before(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_3_1_2_0()); 
             }
             pushFollow(FOLLOW_2);
             ruleToggleTypeEnum();
@@ -69088,7 +72714,7 @@
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_2_2_0()); 
+               after(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_3_1_2_0()); 
             }
 
             }
@@ -69108,21 +72734,103 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartLegend__ToggleTypeAssignment_2_2"
+    // $ANTLR end "rule__ChartLegend__ToggleTypeAssignment_3_1_2"
+
+
+    // $ANTLR start "rule__ChartLegend__FontSizeAssignment_4_1"
+    // InternalChartDSL.g:22054:1: rule__ChartLegend__FontSizeAssignment_4_1 : ( RULE_INT ) ;
+    public final void rule__ChartLegend__FontSizeAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:22058:1: ( ( RULE_INT ) )
+            // InternalChartDSL.g:22059:2: ( RULE_INT )
+            {
+            // InternalChartDSL.g:22059:2: ( RULE_INT )
+            // InternalChartDSL.g:22060:3: RULE_INT
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getFontSizeINTTerminalRuleCall_4_1_0()); 
+            }
+            match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getFontSizeINTTerminalRuleCall_4_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__FontSizeAssignment_4_1"
+
+
+    // $ANTLR start "rule__ChartLegend__TextColorAssignment_5_1"
+    // InternalChartDSL.g:22069:1: rule__ChartLegend__TextColorAssignment_5_1 : ( RULE_STRING ) ;
+    public final void rule__ChartLegend__TextColorAssignment_5_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:22073:1: ( ( RULE_STRING ) )
+            // InternalChartDSL.g:22074:2: ( RULE_STRING )
+            {
+            // InternalChartDSL.g:22074:2: ( RULE_STRING )
+            // InternalChartDSL.g:22075:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartLegendAccess().getTextColorSTRINGTerminalRuleCall_5_1_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartLegendAccess().getTextColorSTRINGTerminalRuleCall_5_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartLegend__TextColorAssignment_5_1"
 
 
     // $ANTLR start "rule__ChartHighlighter__LocationAssignment_1"
-    // InternalChartDSL.g:20961:1: rule__ChartHighlighter__LocationAssignment_1 : ( ruleTooltipLocationEnum ) ;
+    // InternalChartDSL.g:22084:1: rule__ChartHighlighter__LocationAssignment_1 : ( ruleTooltipLocationEnum ) ;
     public final void rule__ChartHighlighter__LocationAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20965:1: ( ( ruleTooltipLocationEnum ) )
-            // InternalChartDSL.g:20966:2: ( ruleTooltipLocationEnum )
+            // InternalChartDSL.g:22088:1: ( ( ruleTooltipLocationEnum ) )
+            // InternalChartDSL.g:22089:2: ( ruleTooltipLocationEnum )
             {
-            // InternalChartDSL.g:20966:2: ( ruleTooltipLocationEnum )
-            // InternalChartDSL.g:20967:3: ruleTooltipLocationEnum
+            // InternalChartDSL.g:22089:2: ( ruleTooltipLocationEnum )
+            // InternalChartDSL.g:22090:3: ruleTooltipLocationEnum
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterAccess().getLocationTooltipLocationEnumEnumRuleCall_1_0()); 
@@ -69157,28 +72865,28 @@
 
 
     // $ANTLR start "rule__ChartHighlighter__TooltipAlwaysAssignment_2_0"
-    // InternalChartDSL.g:20976:1: rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 : ( ( 'always' ) ) ;
+    // InternalChartDSL.g:22099:1: rule__ChartHighlighter__TooltipAlwaysAssignment_2_0 : ( ( 'always' ) ) ;
     public final void rule__ChartHighlighter__TooltipAlwaysAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20980:1: ( ( ( 'always' ) ) )
-            // InternalChartDSL.g:20981:2: ( ( 'always' ) )
+            // InternalChartDSL.g:22103:1: ( ( ( 'always' ) ) )
+            // InternalChartDSL.g:22104:2: ( ( 'always' ) )
             {
-            // InternalChartDSL.g:20981:2: ( ( 'always' ) )
-            // InternalChartDSL.g:20982:3: ( 'always' )
+            // InternalChartDSL.g:22104:2: ( ( 'always' ) )
+            // InternalChartDSL.g:22105:3: ( 'always' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterAccess().getTooltipAlwaysAlwaysKeyword_2_0_0()); 
             }
-            // InternalChartDSL.g:20983:3: ( 'always' )
-            // InternalChartDSL.g:20984:4: 'always'
+            // InternalChartDSL.g:22106:3: ( 'always' )
+            // InternalChartDSL.g:22107:4: 'always'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterAccess().getTooltipAlwaysAlwaysKeyword_2_0_0()); 
             }
-            match(input,147,FOLLOW_2); if (state.failed) return ;
+            match(input,164,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartHighlighterAccess().getTooltipAlwaysAlwaysKeyword_2_0_0()); 
             }
@@ -69210,23 +72918,23 @@
 
 
     // $ANTLR start "rule__ChartHighlighter__InsideChartAssignment_2_1"
-    // InternalChartDSL.g:20995:1: rule__ChartHighlighter__InsideChartAssignment_2_1 : ( ( 'inside' ) ) ;
+    // InternalChartDSL.g:22118:1: rule__ChartHighlighter__InsideChartAssignment_2_1 : ( ( 'inside' ) ) ;
     public final void rule__ChartHighlighter__InsideChartAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:20999:1: ( ( ( 'inside' ) ) )
-            // InternalChartDSL.g:21000:2: ( ( 'inside' ) )
+            // InternalChartDSL.g:22122:1: ( ( ( 'inside' ) ) )
+            // InternalChartDSL.g:22123:2: ( ( 'inside' ) )
             {
-            // InternalChartDSL.g:21000:2: ( ( 'inside' ) )
-            // InternalChartDSL.g:21001:3: ( 'inside' )
+            // InternalChartDSL.g:22123:2: ( ( 'inside' ) )
+            // InternalChartDSL.g:22124:3: ( 'inside' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterAccess().getInsideChartInsideKeyword_2_1_0()); 
             }
-            // InternalChartDSL.g:21002:3: ( 'inside' )
-            // InternalChartDSL.g:21003:4: 'inside'
+            // InternalChartDSL.g:22125:3: ( 'inside' )
+            // InternalChartDSL.g:22126:4: 'inside'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartHighlighterAccess().getInsideChartInsideKeyword_2_1_0()); 
@@ -69263,23 +72971,23 @@
 
 
     // $ANTLR start "rule__ChartAxis__AxisAssignment_1"
-    // InternalChartDSL.g:21014:1: rule__ChartAxis__AxisAssignment_1 : ( ( RULE_ID ) ) ;
+    // InternalChartDSL.g:22137:1: rule__ChartAxis__AxisAssignment_1 : ( ( RULE_ID ) ) ;
     public final void rule__ChartAxis__AxisAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21018:1: ( ( ( RULE_ID ) ) )
-            // InternalChartDSL.g:21019:2: ( ( RULE_ID ) )
+            // InternalChartDSL.g:22141:1: ( ( ( RULE_ID ) ) )
+            // InternalChartDSL.g:22142:2: ( ( RULE_ID ) )
             {
-            // InternalChartDSL.g:21019:2: ( ( RULE_ID ) )
-            // InternalChartDSL.g:21020:3: ( RULE_ID )
+            // InternalChartDSL.g:22142:2: ( ( RULE_ID ) )
+            // InternalChartDSL.g:22143:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getAxisDatamartAxisCrossReference_1_0()); 
             }
-            // InternalChartDSL.g:21021:3: ( RULE_ID )
-            // InternalChartDSL.g:21022:4: RULE_ID
+            // InternalChartDSL.g:22144:3: ( RULE_ID )
+            // InternalChartDSL.g:22145:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getAxisDatamartAxisIDTerminalRuleCall_1_0_1()); 
@@ -69316,17 +73024,17 @@
 
 
     // $ANTLR start "rule__ChartAxis__RenderTypeAssignment_3"
-    // InternalChartDSL.g:21033:1: rule__ChartAxis__RenderTypeAssignment_3 : ( ruleRenderTypeEnum ) ;
+    // InternalChartDSL.g:22156:1: rule__ChartAxis__RenderTypeAssignment_3 : ( ruleRenderTypeEnum ) ;
     public final void rule__ChartAxis__RenderTypeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21037:1: ( ( ruleRenderTypeEnum ) )
-            // InternalChartDSL.g:21038:2: ( ruleRenderTypeEnum )
+            // InternalChartDSL.g:22160:1: ( ( ruleRenderTypeEnum ) )
+            // InternalChartDSL.g:22161:2: ( ruleRenderTypeEnum )
             {
-            // InternalChartDSL.g:21038:2: ( ruleRenderTypeEnum )
-            // InternalChartDSL.g:21039:3: ruleRenderTypeEnum
+            // InternalChartDSL.g:22161:2: ( ruleRenderTypeEnum )
+            // InternalChartDSL.g:22162:3: ruleRenderTypeEnum
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getRenderTypeRenderTypeEnumEnumRuleCall_3_0()); 
@@ -69361,28 +73069,28 @@
 
 
     // $ANTLR start "rule__ChartAxis__ShortLabelAssignment_4"
-    // InternalChartDSL.g:21048:1: rule__ChartAxis__ShortLabelAssignment_4 : ( ( 'shortLabel' ) ) ;
+    // InternalChartDSL.g:22171:1: rule__ChartAxis__ShortLabelAssignment_4 : ( ( 'shortLabel' ) ) ;
     public final void rule__ChartAxis__ShortLabelAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21052:1: ( ( ( 'shortLabel' ) ) )
-            // InternalChartDSL.g:21053:2: ( ( 'shortLabel' ) )
+            // InternalChartDSL.g:22175:1: ( ( ( 'shortLabel' ) ) )
+            // InternalChartDSL.g:22176:2: ( ( 'shortLabel' ) )
             {
-            // InternalChartDSL.g:21053:2: ( ( 'shortLabel' ) )
-            // InternalChartDSL.g:21054:3: ( 'shortLabel' )
+            // InternalChartDSL.g:22176:2: ( ( 'shortLabel' ) )
+            // InternalChartDSL.g:22177:3: ( 'shortLabel' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getShortLabelShortLabelKeyword_4_0()); 
             }
-            // InternalChartDSL.g:21055:3: ( 'shortLabel' )
-            // InternalChartDSL.g:21056:4: 'shortLabel'
+            // InternalChartDSL.g:22178:3: ( 'shortLabel' )
+            // InternalChartDSL.g:22179:4: 'shortLabel'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartAxisAccess().getShortLabelShortLabelKeyword_4_0()); 
             }
-            match(input,148,FOLLOW_2); if (state.failed) return ;
+            match(input,165,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getChartAxisAccess().getShortLabelShortLabelKeyword_4_0()); 
             }
@@ -69413,21 +73121,21 @@
     // $ANTLR end "rule__ChartAxis__ShortLabelAssignment_4"
 
 
-    // $ANTLR start "rule__ChartAxis__AngleAssignment_5_1"
-    // InternalChartDSL.g:21067:1: rule__ChartAxis__AngleAssignment_5_1 : ( ruleSignedNumber ) ;
-    public final void rule__ChartAxis__AngleAssignment_5_1() throws RecognitionException {
+    // $ANTLR start "rule__ChartAxis__LabelAngleAssignment_5_1"
+    // InternalChartDSL.g:22190:1: rule__ChartAxis__LabelAngleAssignment_5_1 : ( ruleSignedNumber ) ;
+    public final void rule__ChartAxis__LabelAngleAssignment_5_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21071:1: ( ( ruleSignedNumber ) )
-            // InternalChartDSL.g:21072:2: ( ruleSignedNumber )
+            // InternalChartDSL.g:22194:1: ( ( ruleSignedNumber ) )
+            // InternalChartDSL.g:22195:2: ( ruleSignedNumber )
             {
-            // InternalChartDSL.g:21072:2: ( ruleSignedNumber )
-            // InternalChartDSL.g:21073:3: ruleSignedNumber
+            // InternalChartDSL.g:22195:2: ( ruleSignedNumber )
+            // InternalChartDSL.g:22196:3: ruleSignedNumber
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getChartAxisAccess().getAngleSignedNumberParserRuleCall_5_1_0()); 
+               before(grammarAccess.getChartAxisAccess().getLabelAngleSignedNumberParserRuleCall_5_1_0()); 
             }
             pushFollow(FOLLOW_2);
             ruleSignedNumber();
@@ -69435,7 +73143,7 @@
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getChartAxisAccess().getAngleSignedNumberParserRuleCall_5_1_0()); 
+               after(grammarAccess.getChartAxisAccess().getLabelAngleSignedNumberParserRuleCall_5_1_0()); 
             }
 
             }
@@ -69455,21 +73163,230 @@
         }
         return ;
     }
-    // $ANTLR end "rule__ChartAxis__AngleAssignment_5_1"
+    // $ANTLR end "rule__ChartAxis__LabelAngleAssignment_5_1"
+
+
+    // $ANTLR start "rule__ChartAxis__LabelFontSizeAssignment_6_1"
+    // InternalChartDSL.g:22205:1: rule__ChartAxis__LabelFontSizeAssignment_6_1 : ( RULE_INT ) ;
+    public final void rule__ChartAxis__LabelFontSizeAssignment_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:22209:1: ( ( RULE_INT ) )
+            // InternalChartDSL.g:22210:2: ( RULE_INT )
+            {
+            // InternalChartDSL.g:22210:2: ( RULE_INT )
+            // InternalChartDSL.g:22211:3: RULE_INT
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getLabelFontSizeINTTerminalRuleCall_6_1_0()); 
+            }
+            match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getLabelFontSizeINTTerminalRuleCall_6_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__LabelFontSizeAssignment_6_1"
+
+
+    // $ANTLR start "rule__ChartAxis__LabelTextColorAssignment_7_1"
+    // InternalChartDSL.g:22220:1: rule__ChartAxis__LabelTextColorAssignment_7_1 : ( RULE_STRING ) ;
+    public final void rule__ChartAxis__LabelTextColorAssignment_7_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:22224:1: ( ( RULE_STRING ) )
+            // InternalChartDSL.g:22225:2: ( RULE_STRING )
+            {
+            // InternalChartDSL.g:22225:2: ( RULE_STRING )
+            // InternalChartDSL.g:22226:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getLabelTextColorSTRINGTerminalRuleCall_7_1_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getLabelTextColorSTRINGTerminalRuleCall_7_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__LabelTextColorAssignment_7_1"
+
+
+    // $ANTLR start "rule__ChartAxis__TickAngleAssignment_8_1"
+    // InternalChartDSL.g:22235:1: rule__ChartAxis__TickAngleAssignment_8_1 : ( ruleSignedNumber ) ;
+    public final void rule__ChartAxis__TickAngleAssignment_8_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:22239:1: ( ( ruleSignedNumber ) )
+            // InternalChartDSL.g:22240:2: ( ruleSignedNumber )
+            {
+            // InternalChartDSL.g:22240:2: ( ruleSignedNumber )
+            // InternalChartDSL.g:22241:3: ruleSignedNumber
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getTickAngleSignedNumberParserRuleCall_8_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSignedNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getTickAngleSignedNumberParserRuleCall_8_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__TickAngleAssignment_8_1"
+
+
+    // $ANTLR start "rule__ChartAxis__TickFontSizeAssignment_9_1"
+    // InternalChartDSL.g:22250:1: rule__ChartAxis__TickFontSizeAssignment_9_1 : ( RULE_INT ) ;
+    public final void rule__ChartAxis__TickFontSizeAssignment_9_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:22254:1: ( ( RULE_INT ) )
+            // InternalChartDSL.g:22255:2: ( RULE_INT )
+            {
+            // InternalChartDSL.g:22255:2: ( RULE_INT )
+            // InternalChartDSL.g:22256:3: RULE_INT
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getTickFontSizeINTTerminalRuleCall_9_1_0()); 
+            }
+            match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getTickFontSizeINTTerminalRuleCall_9_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__TickFontSizeAssignment_9_1"
+
+
+    // $ANTLR start "rule__ChartAxis__TickTextColorAssignment_10_1"
+    // InternalChartDSL.g:22265:1: rule__ChartAxis__TickTextColorAssignment_10_1 : ( RULE_STRING ) ;
+    public final void rule__ChartAxis__TickTextColorAssignment_10_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalChartDSL.g:22269:1: ( ( RULE_STRING ) )
+            // InternalChartDSL.g:22270:2: ( RULE_STRING )
+            {
+            // InternalChartDSL.g:22270:2: ( RULE_STRING )
+            // InternalChartDSL.g:22271:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartAxisAccess().getTickTextColorSTRINGTerminalRuleCall_10_1_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartAxisAccess().getTickTextColorSTRINGTerminalRuleCall_10_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ChartAxis__TickTextColorAssignment_10_1"
 
 
     // $ANTLR start "rule__ChartSegmentColor__RgbAssignment_1"
-    // InternalChartDSL.g:21082:1: rule__ChartSegmentColor__RgbAssignment_1 : ( RULE_STRING ) ;
+    // InternalChartDSL.g:22280:1: rule__ChartSegmentColor__RgbAssignment_1 : ( RULE_STRING ) ;
     public final void rule__ChartSegmentColor__RgbAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21086:1: ( ( RULE_STRING ) )
-            // InternalChartDSL.g:21087:2: ( RULE_STRING )
+            // InternalChartDSL.g:22284:1: ( ( RULE_STRING ) )
+            // InternalChartDSL.g:22285:2: ( RULE_STRING )
             {
-            // InternalChartDSL.g:21087:2: ( RULE_STRING )
-            // InternalChartDSL.g:21088:3: RULE_STRING
+            // InternalChartDSL.g:22285:2: ( RULE_STRING )
+            // InternalChartDSL.g:22286:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getChartSegmentColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); 
@@ -69500,23 +73417,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__StaticAssignment_2_0_0"
-    // InternalChartDSL.g:21097:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
+    // InternalChartDSL.g:22295:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
     public final void rule__XImportDeclaration__StaticAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21101:1: ( ( ( 'static' ) ) )
-            // InternalChartDSL.g:21102:2: ( ( 'static' ) )
+            // InternalChartDSL.g:22299:1: ( ( ( 'static' ) ) )
+            // InternalChartDSL.g:22300:2: ( ( 'static' ) )
             {
-            // InternalChartDSL.g:21102:2: ( ( 'static' ) )
-            // InternalChartDSL.g:21103:3: ( 'static' )
+            // InternalChartDSL.g:22300:2: ( ( 'static' ) )
+            // InternalChartDSL.g:22301:3: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
             }
-            // InternalChartDSL.g:21104:3: ( 'static' )
-            // InternalChartDSL.g:21105:4: 'static'
+            // InternalChartDSL.g:22302:3: ( 'static' )
+            // InternalChartDSL.g:22303:4: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
@@ -69553,23 +73470,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ExtensionAssignment_2_0_1"
-    // InternalChartDSL.g:21116:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
+    // InternalChartDSL.g:22314:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
     public final void rule__XImportDeclaration__ExtensionAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21120:1: ( ( ( 'extension' ) ) )
-            // InternalChartDSL.g:21121:2: ( ( 'extension' ) )
+            // InternalChartDSL.g:22318:1: ( ( ( 'extension' ) ) )
+            // InternalChartDSL.g:22319:2: ( ( 'extension' ) )
             {
-            // InternalChartDSL.g:21121:2: ( ( 'extension' ) )
-            // InternalChartDSL.g:21122:3: ( 'extension' )
+            // InternalChartDSL.g:22319:2: ( ( 'extension' ) )
+            // InternalChartDSL.g:22320:3: ( 'extension' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
             }
-            // InternalChartDSL.g:21123:3: ( 'extension' )
-            // InternalChartDSL.g:21124:4: 'extension'
+            // InternalChartDSL.g:22321:3: ( 'extension' )
+            // InternalChartDSL.g:22322:4: 'extension'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
@@ -69606,23 +73523,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_0_2"
-    // InternalChartDSL.g:21135:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
+    // InternalChartDSL.g:22333:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
     public final void rule__XImportDeclaration__ImportedTypeAssignment_2_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21139:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
-            // InternalChartDSL.g:21140:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalChartDSL.g:22337:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
+            // InternalChartDSL.g:22338:2: ( ( ruleQualifiedNameInStaticImport ) )
             {
-            // InternalChartDSL.g:21140:2: ( ( ruleQualifiedNameInStaticImport ) )
-            // InternalChartDSL.g:21141:3: ( ruleQualifiedNameInStaticImport )
+            // InternalChartDSL.g:22338:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalChartDSL.g:22339:3: ( ruleQualifiedNameInStaticImport )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0()); 
             }
-            // InternalChartDSL.g:21142:3: ( ruleQualifiedNameInStaticImport )
-            // InternalChartDSL.g:21143:4: ruleQualifiedNameInStaticImport
+            // InternalChartDSL.g:22340:3: ( ruleQualifiedNameInStaticImport )
+            // InternalChartDSL.g:22341:4: ruleQualifiedNameInStaticImport
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_2_0_2_0_1()); 
@@ -69663,23 +73580,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__WildcardAssignment_2_0_3_0"
-    // InternalChartDSL.g:21154:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
+    // InternalChartDSL.g:22352:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
     public final void rule__XImportDeclaration__WildcardAssignment_2_0_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21158:1: ( ( ( '*' ) ) )
-            // InternalChartDSL.g:21159:2: ( ( '*' ) )
+            // InternalChartDSL.g:22356:1: ( ( ( '*' ) ) )
+            // InternalChartDSL.g:22357:2: ( ( '*' ) )
             {
-            // InternalChartDSL.g:21159:2: ( ( '*' ) )
-            // InternalChartDSL.g:21160:3: ( '*' )
+            // InternalChartDSL.g:22357:2: ( ( '*' ) )
+            // InternalChartDSL.g:22358:3: ( '*' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
             }
-            // InternalChartDSL.g:21161:3: ( '*' )
-            // InternalChartDSL.g:21162:4: '*'
+            // InternalChartDSL.g:22359:3: ( '*' )
+            // InternalChartDSL.g:22360:4: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
@@ -69716,17 +73633,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__MemberNameAssignment_2_0_3_1"
-    // InternalChartDSL.g:21173:1: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 : ( ruleValidID ) ;
+    // InternalChartDSL.g:22371:1: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 : ( ruleValidID ) ;
     public final void rule__XImportDeclaration__MemberNameAssignment_2_0_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21177:1: ( ( ruleValidID ) )
-            // InternalChartDSL.g:21178:2: ( ruleValidID )
+            // InternalChartDSL.g:22375:1: ( ( ruleValidID ) )
+            // InternalChartDSL.g:22376:2: ( ruleValidID )
             {
-            // InternalChartDSL.g:21178:2: ( ruleValidID )
-            // InternalChartDSL.g:21179:3: ruleValidID
+            // InternalChartDSL.g:22376:2: ( ruleValidID )
+            // InternalChartDSL.g:22377:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0()); 
@@ -69761,23 +73678,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_1"
-    // InternalChartDSL.g:21188:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalChartDSL.g:22386:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XImportDeclaration__ImportedTypeAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21192:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalChartDSL.g:21193:2: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:22390:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalChartDSL.g:22391:2: ( ( ruleQualifiedName ) )
             {
-            // InternalChartDSL.g:21193:2: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:21194:3: ( ruleQualifiedName )
+            // InternalChartDSL.g:22391:2: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:22392:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0()); 
             }
-            // InternalChartDSL.g:21195:3: ( ruleQualifiedName )
-            // InternalChartDSL.g:21196:4: ruleQualifiedName
+            // InternalChartDSL.g:22393:3: ( ruleQualifiedName )
+            // InternalChartDSL.g:22394:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_2_1_0_1()); 
@@ -69818,17 +73735,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedNamespaceAssignment_2_2"
-    // InternalChartDSL.g:21207:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
+    // InternalChartDSL.g:22405:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
     public final void rule__XImportDeclaration__ImportedNamespaceAssignment_2_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21211:1: ( ( ruleQualifiedNameWithWildcard ) )
-            // InternalChartDSL.g:21212:2: ( ruleQualifiedNameWithWildcard )
+            // InternalChartDSL.g:22409:1: ( ( ruleQualifiedNameWithWildcard ) )
+            // InternalChartDSL.g:22410:2: ( ruleQualifiedNameWithWildcard )
             {
-            // InternalChartDSL.g:21212:2: ( ruleQualifiedNameWithWildcard )
-            // InternalChartDSL.g:21213:3: ruleQualifiedNameWithWildcard
+            // InternalChartDSL.g:22410:2: ( ruleQualifiedNameWithWildcard )
+            // InternalChartDSL.g:22411:3: ruleQualifiedNameWithWildcard
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0()); 
@@ -69863,28 +73780,28 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__FqnImportAssignment_2_3_0"
-    // InternalChartDSL.g:21222:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
+    // InternalChartDSL.g:22420:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
     public final void rule__XImportDeclaration__FqnImportAssignment_2_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21226:1: ( ( ( 'ns' ) ) )
-            // InternalChartDSL.g:21227:2: ( ( 'ns' ) )
+            // InternalChartDSL.g:22424:1: ( ( ( 'ns' ) ) )
+            // InternalChartDSL.g:22425:2: ( ( 'ns' ) )
             {
-            // InternalChartDSL.g:21227:2: ( ( 'ns' ) )
-            // InternalChartDSL.g:21228:3: ( 'ns' )
+            // InternalChartDSL.g:22425:2: ( ( 'ns' ) )
+            // InternalChartDSL.g:22426:3: ( 'ns' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            // InternalChartDSL.g:21229:3: ( 'ns' )
-            // InternalChartDSL.g:21230:4: 'ns'
+            // InternalChartDSL.g:22427:3: ( 'ns' )
+            // InternalChartDSL.g:22428:4: 'ns'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            match(input,149,FOLLOW_2); if (state.failed) return ;
+            match(input,166,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
@@ -69916,17 +73833,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1"
-    // InternalChartDSL.g:21241:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
+    // InternalChartDSL.g:22439:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
     public final void rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21245:1: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:21246:2: ( ruleQualifiedName )
+            // InternalChartDSL.g:22443:1: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:22444:2: ( ruleQualifiedName )
             {
-            // InternalChartDSL.g:21246:2: ( ruleQualifiedName )
-            // InternalChartDSL.g:21247:3: ruleQualifiedName
+            // InternalChartDSL.g:22444:2: ( ruleQualifiedName )
+            // InternalChartDSL.g:22445:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0()); 
@@ -69961,23 +73878,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__AnnotationTypeAssignment_2"
-    // InternalChartDSL.g:21256:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalChartDSL.g:22454:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XAnnotation__AnnotationTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21260:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalChartDSL.g:21261:2: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:22458:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalChartDSL.g:22459:2: ( ( ruleQualifiedName ) )
             {
-            // InternalChartDSL.g:21261:2: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:21262:3: ( ruleQualifiedName )
+            // InternalChartDSL.g:22459:2: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:22460:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
             }
-            // InternalChartDSL.g:21263:3: ( ruleQualifiedName )
-            // InternalChartDSL.g:21264:4: ruleQualifiedName
+            // InternalChartDSL.g:22461:3: ( ruleQualifiedName )
+            // InternalChartDSL.g:22462:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeQualifiedNameParserRuleCall_2_0_1()); 
@@ -70018,17 +73935,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0"
-    // InternalChartDSL.g:21275:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalChartDSL.g:22473:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 : ( ruleXAnnotationElementValuePair ) ;
     public final void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21279:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalChartDSL.g:21280:2: ( ruleXAnnotationElementValuePair )
+            // InternalChartDSL.g:22477:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalChartDSL.g:22478:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalChartDSL.g:21280:2: ( ruleXAnnotationElementValuePair )
-            // InternalChartDSL.g:21281:3: ruleXAnnotationElementValuePair
+            // InternalChartDSL.g:22478:2: ( ruleXAnnotationElementValuePair )
+            // InternalChartDSL.g:22479:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
@@ -70063,17 +73980,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1"
-    // InternalChartDSL.g:21290:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalChartDSL.g:22488:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 : ( ruleXAnnotationElementValuePair ) ;
     public final void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21294:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalChartDSL.g:21295:2: ( ruleXAnnotationElementValuePair )
+            // InternalChartDSL.g:22492:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalChartDSL.g:22493:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalChartDSL.g:21295:2: ( ruleXAnnotationElementValuePair )
-            // InternalChartDSL.g:21296:3: ruleXAnnotationElementValuePair
+            // InternalChartDSL.g:22493:2: ( ruleXAnnotationElementValuePair )
+            // InternalChartDSL.g:22494:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
@@ -70108,17 +74025,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ValueAssignment_3_1_1"
-    // InternalChartDSL.g:21305:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
+    // InternalChartDSL.g:22503:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
     public final void rule__XAnnotation__ValueAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21309:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
-            // InternalChartDSL.g:21310:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalChartDSL.g:22507:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
+            // InternalChartDSL.g:22508:2: ( ruleXAnnotationElementValueOrCommaList )
             {
-            // InternalChartDSL.g:21310:2: ( ruleXAnnotationElementValueOrCommaList )
-            // InternalChartDSL.g:21311:3: ruleXAnnotationElementValueOrCommaList
+            // InternalChartDSL.g:22508:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalChartDSL.g:22509:3: ruleXAnnotationElementValueOrCommaList
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
@@ -70153,23 +74070,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ElementAssignment_0_0_0"
-    // InternalChartDSL.g:21320:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
+    // InternalChartDSL.g:22518:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
     public final void rule__XAnnotationElementValuePair__ElementAssignment_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21324:1: ( ( ( ruleValidID ) ) )
-            // InternalChartDSL.g:21325:2: ( ( ruleValidID ) )
+            // InternalChartDSL.g:22522:1: ( ( ( ruleValidID ) ) )
+            // InternalChartDSL.g:22523:2: ( ( ruleValidID ) )
             {
-            // InternalChartDSL.g:21325:2: ( ( ruleValidID ) )
-            // InternalChartDSL.g:21326:3: ( ruleValidID )
+            // InternalChartDSL.g:22523:2: ( ( ruleValidID ) )
+            // InternalChartDSL.g:22524:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
             }
-            // InternalChartDSL.g:21327:3: ( ruleValidID )
-            // InternalChartDSL.g:21328:4: ruleValidID
+            // InternalChartDSL.g:22525:3: ( ruleValidID )
+            // InternalChartDSL.g:22526:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationValidIDParserRuleCall_0_0_0_0_1()); 
@@ -70210,17 +74127,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ValueAssignment_1"
-    // InternalChartDSL.g:21339:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
+    // InternalChartDSL.g:22537:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
     public final void rule__XAnnotationElementValuePair__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21343:1: ( ( ruleXAnnotationElementValue ) )
-            // InternalChartDSL.g:21344:2: ( ruleXAnnotationElementValue )
+            // InternalChartDSL.g:22541:1: ( ( ruleXAnnotationElementValue ) )
+            // InternalChartDSL.g:22542:2: ( ruleXAnnotationElementValue )
             {
-            // InternalChartDSL.g:21344:2: ( ruleXAnnotationElementValue )
-            // InternalChartDSL.g:21345:3: ruleXAnnotationElementValue
+            // InternalChartDSL.g:22542:2: ( ruleXAnnotationElementValue )
+            // InternalChartDSL.g:22543:3: ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
@@ -70255,17 +74172,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0"
-    // InternalChartDSL.g:21354:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalChartDSL.g:22552:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21358:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalChartDSL.g:21359:2: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:22556:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalChartDSL.g:22557:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalChartDSL.g:21359:2: ( ruleXAnnotationOrExpression )
-            // InternalChartDSL.g:21360:3: ruleXAnnotationOrExpression
+            // InternalChartDSL.g:22557:2: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:22558:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -70300,17 +74217,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1"
-    // InternalChartDSL.g:21369:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalChartDSL.g:22567:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21373:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalChartDSL.g:21374:2: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:22571:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalChartDSL.g:22572:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalChartDSL.g:21374:2: ( ruleXAnnotationOrExpression )
-            // InternalChartDSL.g:21375:3: ruleXAnnotationOrExpression
+            // InternalChartDSL.g:22572:2: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:22573:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -70345,17 +74262,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1"
-    // InternalChartDSL.g:21384:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalChartDSL.g:22582:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21388:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalChartDSL.g:21389:2: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:22586:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalChartDSL.g:22587:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalChartDSL.g:21389:2: ( ruleXAnnotationOrExpression )
-            // InternalChartDSL.g:21390:3: ruleXAnnotationOrExpression
+            // InternalChartDSL.g:22587:2: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:22588:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
@@ -70390,17 +74307,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_0"
-    // InternalChartDSL.g:21399:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalChartDSL.g:22597:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValue__ElementsAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21403:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalChartDSL.g:21404:2: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:22601:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalChartDSL.g:22602:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalChartDSL.g:21404:2: ( ruleXAnnotationOrExpression )
-            // InternalChartDSL.g:21405:3: ruleXAnnotationOrExpression
+            // InternalChartDSL.g:22602:2: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:22603:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -70435,17 +74352,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1"
-    // InternalChartDSL.g:21414:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalChartDSL.g:22612:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21418:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalChartDSL.g:21419:2: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:22616:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalChartDSL.g:22617:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalChartDSL.g:21419:2: ( ruleXAnnotationOrExpression )
-            // InternalChartDSL.g:21420:3: ruleXAnnotationOrExpression
+            // InternalChartDSL.g:22617:2: ( ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:22618:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -70480,23 +74397,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_0_1"
-    // InternalChartDSL.g:21429:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
+    // InternalChartDSL.g:22627:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
     public final void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21433:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalChartDSL.g:21434:2: ( ( ruleFeatureCallID ) )
+            // InternalChartDSL.g:22631:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalChartDSL.g:22632:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalChartDSL.g:21434:2: ( ( ruleFeatureCallID ) )
-            // InternalChartDSL.g:21435:3: ( ruleFeatureCallID )
+            // InternalChartDSL.g:22632:2: ( ( ruleFeatureCallID ) )
+            // InternalChartDSL.g:22633:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalChartDSL.g:21436:3: ( ruleFeatureCallID )
-            // InternalChartDSL.g:21437:4: ruleFeatureCallID
+            // InternalChartDSL.g:22634:3: ( ruleFeatureCallID )
+            // InternalChartDSL.g:22635:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); 
@@ -70537,17 +74454,17 @@
 
 
     // $ANTLR start "rule__XAssignment__ValueAssignment_0_3"
-    // InternalChartDSL.g:21448:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
+    // InternalChartDSL.g:22646:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
     public final void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21452:1: ( ( ruleXAssignment ) )
-            // InternalChartDSL.g:21453:2: ( ruleXAssignment )
+            // InternalChartDSL.g:22650:1: ( ( ruleXAssignment ) )
+            // InternalChartDSL.g:22651:2: ( ruleXAssignment )
             {
-            // InternalChartDSL.g:21453:2: ( ruleXAssignment )
-            // InternalChartDSL.g:21454:3: ruleXAssignment
+            // InternalChartDSL.g:22651:2: ( ruleXAssignment )
+            // InternalChartDSL.g:22652:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
@@ -70582,23 +74499,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_1_1_0_0_1"
-    // InternalChartDSL.g:21463:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
+    // InternalChartDSL.g:22661:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
     public final void rule__XAssignment__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21467:1: ( ( ( ruleOpMultiAssign ) ) )
-            // InternalChartDSL.g:21468:2: ( ( ruleOpMultiAssign ) )
+            // InternalChartDSL.g:22665:1: ( ( ( ruleOpMultiAssign ) ) )
+            // InternalChartDSL.g:22666:2: ( ( ruleOpMultiAssign ) )
             {
-            // InternalChartDSL.g:21468:2: ( ( ruleOpMultiAssign ) )
-            // InternalChartDSL.g:21469:3: ( ruleOpMultiAssign )
+            // InternalChartDSL.g:22666:2: ( ( ruleOpMultiAssign ) )
+            // InternalChartDSL.g:22667:3: ( ruleOpMultiAssign )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalChartDSL.g:21470:3: ( ruleOpMultiAssign )
-            // InternalChartDSL.g:21471:4: ruleOpMultiAssign
+            // InternalChartDSL.g:22668:3: ( ruleOpMultiAssign )
+            // InternalChartDSL.g:22669:4: ruleOpMultiAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); 
@@ -70639,17 +74556,17 @@
 
 
     // $ANTLR start "rule__XAssignment__RightOperandAssignment_1_1_1"
-    // InternalChartDSL.g:21482:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
+    // InternalChartDSL.g:22680:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
     public final void rule__XAssignment__RightOperandAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21486:1: ( ( ruleXAssignment ) )
-            // InternalChartDSL.g:21487:2: ( ruleXAssignment )
+            // InternalChartDSL.g:22684:1: ( ( ruleXAssignment ) )
+            // InternalChartDSL.g:22685:2: ( ruleXAssignment )
             {
-            // InternalChartDSL.g:21487:2: ( ruleXAssignment )
-            // InternalChartDSL.g:21488:3: ruleXAssignment
+            // InternalChartDSL.g:22685:2: ( ruleXAssignment )
+            // InternalChartDSL.g:22686:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
@@ -70684,23 +74601,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__FeatureAssignment_1_0_0_1"
-    // InternalChartDSL.g:21497:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
+    // InternalChartDSL.g:22695:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
     public final void rule__XOrExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21501:1: ( ( ( ruleOpOr ) ) )
-            // InternalChartDSL.g:21502:2: ( ( ruleOpOr ) )
+            // InternalChartDSL.g:22699:1: ( ( ( ruleOpOr ) ) )
+            // InternalChartDSL.g:22700:2: ( ( ruleOpOr ) )
             {
-            // InternalChartDSL.g:21502:2: ( ( ruleOpOr ) )
-            // InternalChartDSL.g:21503:3: ( ruleOpOr )
+            // InternalChartDSL.g:22700:2: ( ( ruleOpOr ) )
+            // InternalChartDSL.g:22701:3: ( ruleOpOr )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalChartDSL.g:21504:3: ( ruleOpOr )
-            // InternalChartDSL.g:21505:4: ruleOpOr
+            // InternalChartDSL.g:22702:3: ( ruleOpOr )
+            // InternalChartDSL.g:22703:4: ruleOpOr
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); 
@@ -70741,17 +74658,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__RightOperandAssignment_1_1"
-    // InternalChartDSL.g:21516:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
+    // InternalChartDSL.g:22714:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21520:1: ( ( ruleXAndExpression ) )
-            // InternalChartDSL.g:21521:2: ( ruleXAndExpression )
+            // InternalChartDSL.g:22718:1: ( ( ruleXAndExpression ) )
+            // InternalChartDSL.g:22719:2: ( ruleXAndExpression )
             {
-            // InternalChartDSL.g:21521:2: ( ruleXAndExpression )
-            // InternalChartDSL.g:21522:3: ruleXAndExpression
+            // InternalChartDSL.g:22719:2: ( ruleXAndExpression )
+            // InternalChartDSL.g:22720:3: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
@@ -70786,23 +74703,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__FeatureAssignment_1_0_0_1"
-    // InternalChartDSL.g:21531:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
+    // InternalChartDSL.g:22729:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
     public final void rule__XAndExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21535:1: ( ( ( ruleOpAnd ) ) )
-            // InternalChartDSL.g:21536:2: ( ( ruleOpAnd ) )
+            // InternalChartDSL.g:22733:1: ( ( ( ruleOpAnd ) ) )
+            // InternalChartDSL.g:22734:2: ( ( ruleOpAnd ) )
             {
-            // InternalChartDSL.g:21536:2: ( ( ruleOpAnd ) )
-            // InternalChartDSL.g:21537:3: ( ruleOpAnd )
+            // InternalChartDSL.g:22734:2: ( ( ruleOpAnd ) )
+            // InternalChartDSL.g:22735:3: ( ruleOpAnd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalChartDSL.g:21538:3: ( ruleOpAnd )
-            // InternalChartDSL.g:21539:4: ruleOpAnd
+            // InternalChartDSL.g:22736:3: ( ruleOpAnd )
+            // InternalChartDSL.g:22737:4: ruleOpAnd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); 
@@ -70843,17 +74760,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__RightOperandAssignment_1_1"
-    // InternalChartDSL.g:21550:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
+    // InternalChartDSL.g:22748:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21554:1: ( ( ruleXEqualityExpression ) )
-            // InternalChartDSL.g:21555:2: ( ruleXEqualityExpression )
+            // InternalChartDSL.g:22752:1: ( ( ruleXEqualityExpression ) )
+            // InternalChartDSL.g:22753:2: ( ruleXEqualityExpression )
             {
-            // InternalChartDSL.g:21555:2: ( ruleXEqualityExpression )
-            // InternalChartDSL.g:21556:3: ruleXEqualityExpression
+            // InternalChartDSL.g:22753:2: ( ruleXEqualityExpression )
+            // InternalChartDSL.g:22754:3: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
@@ -70888,23 +74805,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"
-    // InternalChartDSL.g:21565:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
+    // InternalChartDSL.g:22763:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
     public final void rule__XEqualityExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21569:1: ( ( ( ruleOpEquality ) ) )
-            // InternalChartDSL.g:21570:2: ( ( ruleOpEquality ) )
+            // InternalChartDSL.g:22767:1: ( ( ( ruleOpEquality ) ) )
+            // InternalChartDSL.g:22768:2: ( ( ruleOpEquality ) )
             {
-            // InternalChartDSL.g:21570:2: ( ( ruleOpEquality ) )
-            // InternalChartDSL.g:21571:3: ( ruleOpEquality )
+            // InternalChartDSL.g:22768:2: ( ( ruleOpEquality ) )
+            // InternalChartDSL.g:22769:3: ( ruleOpEquality )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalChartDSL.g:21572:3: ( ruleOpEquality )
-            // InternalChartDSL.g:21573:4: ruleOpEquality
+            // InternalChartDSL.g:22770:3: ( ruleOpEquality )
+            // InternalChartDSL.g:22771:4: ruleOpEquality
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); 
@@ -70945,17 +74862,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__RightOperandAssignment_1_1"
-    // InternalChartDSL.g:21584:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
+    // InternalChartDSL.g:22782:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21588:1: ( ( ruleXRelationalExpression ) )
-            // InternalChartDSL.g:21589:2: ( ruleXRelationalExpression )
+            // InternalChartDSL.g:22786:1: ( ( ruleXRelationalExpression ) )
+            // InternalChartDSL.g:22787:2: ( ruleXRelationalExpression )
             {
-            // InternalChartDSL.g:21589:2: ( ruleXRelationalExpression )
-            // InternalChartDSL.g:21590:3: ruleXRelationalExpression
+            // InternalChartDSL.g:22787:2: ( ruleXRelationalExpression )
+            // InternalChartDSL.g:22788:3: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
@@ -70990,17 +74907,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__TypeAssignment_1_0_1"
-    // InternalChartDSL.g:21599:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:22797:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XRelationalExpression__TypeAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21603:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:21604:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:22801:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:22802:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:21604:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:21605:3: ruleJvmTypeReference
+            // InternalChartDSL.g:22802:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:22803:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
@@ -71035,23 +74952,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"
-    // InternalChartDSL.g:21614:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
+    // InternalChartDSL.g:22812:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
     public final void rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21618:1: ( ( ( ruleOpCompare ) ) )
-            // InternalChartDSL.g:21619:2: ( ( ruleOpCompare ) )
+            // InternalChartDSL.g:22816:1: ( ( ( ruleOpCompare ) ) )
+            // InternalChartDSL.g:22817:2: ( ( ruleOpCompare ) )
             {
-            // InternalChartDSL.g:21619:2: ( ( ruleOpCompare ) )
-            // InternalChartDSL.g:21620:3: ( ruleOpCompare )
+            // InternalChartDSL.g:22817:2: ( ( ruleOpCompare ) )
+            // InternalChartDSL.g:22818:3: ( ruleOpCompare )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalChartDSL.g:21621:3: ( ruleOpCompare )
-            // InternalChartDSL.g:21622:4: ruleOpCompare
+            // InternalChartDSL.g:22819:3: ( ruleOpCompare )
+            // InternalChartDSL.g:22820:4: ruleOpCompare
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); 
@@ -71092,17 +75009,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__RightOperandAssignment_1_1_1"
-    // InternalChartDSL.g:21633:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
+    // InternalChartDSL.g:22831:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
     public final void rule__XRelationalExpression__RightOperandAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21637:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalChartDSL.g:21638:2: ( ruleXOtherOperatorExpression )
+            // InternalChartDSL.g:22835:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalChartDSL.g:22836:2: ( ruleXOtherOperatorExpression )
             {
-            // InternalChartDSL.g:21638:2: ( ruleXOtherOperatorExpression )
-            // InternalChartDSL.g:21639:3: ruleXOtherOperatorExpression
+            // InternalChartDSL.g:22836:2: ( ruleXOtherOperatorExpression )
+            // InternalChartDSL.g:22837:3: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
@@ -71137,23 +75054,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"
-    // InternalChartDSL.g:21648:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
+    // InternalChartDSL.g:22846:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
     public final void rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21652:1: ( ( ( ruleOpOther ) ) )
-            // InternalChartDSL.g:21653:2: ( ( ruleOpOther ) )
+            // InternalChartDSL.g:22850:1: ( ( ( ruleOpOther ) ) )
+            // InternalChartDSL.g:22851:2: ( ( ruleOpOther ) )
             {
-            // InternalChartDSL.g:21653:2: ( ( ruleOpOther ) )
-            // InternalChartDSL.g:21654:3: ( ruleOpOther )
+            // InternalChartDSL.g:22851:2: ( ( ruleOpOther ) )
+            // InternalChartDSL.g:22852:3: ( ruleOpOther )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalChartDSL.g:21655:3: ( ruleOpOther )
-            // InternalChartDSL.g:21656:4: ruleOpOther
+            // InternalChartDSL.g:22853:3: ( ruleOpOther )
+            // InternalChartDSL.g:22854:4: ruleOpOther
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); 
@@ -71194,17 +75111,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"
-    // InternalChartDSL.g:21667:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
+    // InternalChartDSL.g:22865:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21671:1: ( ( ruleXAdditiveExpression ) )
-            // InternalChartDSL.g:21672:2: ( ruleXAdditiveExpression )
+            // InternalChartDSL.g:22869:1: ( ( ruleXAdditiveExpression ) )
+            // InternalChartDSL.g:22870:2: ( ruleXAdditiveExpression )
             {
-            // InternalChartDSL.g:21672:2: ( ruleXAdditiveExpression )
-            // InternalChartDSL.g:21673:3: ruleXAdditiveExpression
+            // InternalChartDSL.g:22870:2: ( ruleXAdditiveExpression )
+            // InternalChartDSL.g:22871:3: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
@@ -71239,23 +75156,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"
-    // InternalChartDSL.g:21682:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
+    // InternalChartDSL.g:22880:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
     public final void rule__XAdditiveExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21686:1: ( ( ( ruleOpAdd ) ) )
-            // InternalChartDSL.g:21687:2: ( ( ruleOpAdd ) )
+            // InternalChartDSL.g:22884:1: ( ( ( ruleOpAdd ) ) )
+            // InternalChartDSL.g:22885:2: ( ( ruleOpAdd ) )
             {
-            // InternalChartDSL.g:21687:2: ( ( ruleOpAdd ) )
-            // InternalChartDSL.g:21688:3: ( ruleOpAdd )
+            // InternalChartDSL.g:22885:2: ( ( ruleOpAdd ) )
+            // InternalChartDSL.g:22886:3: ( ruleOpAdd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalChartDSL.g:21689:3: ( ruleOpAdd )
-            // InternalChartDSL.g:21690:4: ruleOpAdd
+            // InternalChartDSL.g:22887:3: ( ruleOpAdd )
+            // InternalChartDSL.g:22888:4: ruleOpAdd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); 
@@ -71296,17 +75213,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__RightOperandAssignment_1_1"
-    // InternalChartDSL.g:21701:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
+    // InternalChartDSL.g:22899:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21705:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalChartDSL.g:21706:2: ( ruleXMultiplicativeExpression )
+            // InternalChartDSL.g:22903:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalChartDSL.g:22904:2: ( ruleXMultiplicativeExpression )
             {
-            // InternalChartDSL.g:21706:2: ( ruleXMultiplicativeExpression )
-            // InternalChartDSL.g:21707:3: ruleXMultiplicativeExpression
+            // InternalChartDSL.g:22904:2: ( ruleXMultiplicativeExpression )
+            // InternalChartDSL.g:22905:3: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
@@ -71341,23 +75258,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"
-    // InternalChartDSL.g:21716:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
+    // InternalChartDSL.g:22914:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
     public final void rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21720:1: ( ( ( ruleOpMulti ) ) )
-            // InternalChartDSL.g:21721:2: ( ( ruleOpMulti ) )
+            // InternalChartDSL.g:22918:1: ( ( ( ruleOpMulti ) ) )
+            // InternalChartDSL.g:22919:2: ( ( ruleOpMulti ) )
             {
-            // InternalChartDSL.g:21721:2: ( ( ruleOpMulti ) )
-            // InternalChartDSL.g:21722:3: ( ruleOpMulti )
+            // InternalChartDSL.g:22919:2: ( ( ruleOpMulti ) )
+            // InternalChartDSL.g:22920:3: ( ruleOpMulti )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalChartDSL.g:21723:3: ( ruleOpMulti )
-            // InternalChartDSL.g:21724:4: ruleOpMulti
+            // InternalChartDSL.g:22921:3: ( ruleOpMulti )
+            // InternalChartDSL.g:22922:4: ruleOpMulti
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); 
@@ -71398,17 +75315,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"
-    // InternalChartDSL.g:21735:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
+    // InternalChartDSL.g:22933:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21739:1: ( ( ruleXUnaryOperation ) )
-            // InternalChartDSL.g:21740:2: ( ruleXUnaryOperation )
+            // InternalChartDSL.g:22937:1: ( ( ruleXUnaryOperation ) )
+            // InternalChartDSL.g:22938:2: ( ruleXUnaryOperation )
             {
-            // InternalChartDSL.g:21740:2: ( ruleXUnaryOperation )
-            // InternalChartDSL.g:21741:3: ruleXUnaryOperation
+            // InternalChartDSL.g:22938:2: ( ruleXUnaryOperation )
+            // InternalChartDSL.g:22939:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
@@ -71443,23 +75360,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__FeatureAssignment_0_1"
-    // InternalChartDSL.g:21750:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
+    // InternalChartDSL.g:22948:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
     public final void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21754:1: ( ( ( ruleOpUnary ) ) )
-            // InternalChartDSL.g:21755:2: ( ( ruleOpUnary ) )
+            // InternalChartDSL.g:22952:1: ( ( ( ruleOpUnary ) ) )
+            // InternalChartDSL.g:22953:2: ( ( ruleOpUnary ) )
             {
-            // InternalChartDSL.g:21755:2: ( ( ruleOpUnary ) )
-            // InternalChartDSL.g:21756:3: ( ruleOpUnary )
+            // InternalChartDSL.g:22953:2: ( ( ruleOpUnary ) )
+            // InternalChartDSL.g:22954:3: ( ruleOpUnary )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalChartDSL.g:21757:3: ( ruleOpUnary )
-            // InternalChartDSL.g:21758:4: ruleOpUnary
+            // InternalChartDSL.g:22955:3: ( ruleOpUnary )
+            // InternalChartDSL.g:22956:4: ruleOpUnary
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); 
@@ -71500,17 +75417,17 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__OperandAssignment_0_2"
-    // InternalChartDSL.g:21769:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
+    // InternalChartDSL.g:22967:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
     public final void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21773:1: ( ( ruleXUnaryOperation ) )
-            // InternalChartDSL.g:21774:2: ( ruleXUnaryOperation )
+            // InternalChartDSL.g:22971:1: ( ( ruleXUnaryOperation ) )
+            // InternalChartDSL.g:22972:2: ( ruleXUnaryOperation )
             {
-            // InternalChartDSL.g:21774:2: ( ruleXUnaryOperation )
-            // InternalChartDSL.g:21775:3: ruleXUnaryOperation
+            // InternalChartDSL.g:22972:2: ( ruleXUnaryOperation )
+            // InternalChartDSL.g:22973:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
@@ -71545,17 +75462,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__TypeAssignment_1_1"
-    // InternalChartDSL.g:21784:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:22982:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21788:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:21789:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:22986:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:22987:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:21789:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:21790:3: ruleJvmTypeReference
+            // InternalChartDSL.g:22987:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:22988:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
@@ -71590,23 +75507,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__FeatureAssignment_1_0_1"
-    // InternalChartDSL.g:21799:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
+    // InternalChartDSL.g:22997:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
     public final void rule__XPostfixOperation__FeatureAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21803:1: ( ( ( ruleOpPostfix ) ) )
-            // InternalChartDSL.g:21804:2: ( ( ruleOpPostfix ) )
+            // InternalChartDSL.g:23001:1: ( ( ( ruleOpPostfix ) ) )
+            // InternalChartDSL.g:23002:2: ( ( ruleOpPostfix ) )
             {
-            // InternalChartDSL.g:21804:2: ( ( ruleOpPostfix ) )
-            // InternalChartDSL.g:21805:3: ( ruleOpPostfix )
+            // InternalChartDSL.g:23002:2: ( ( ruleOpPostfix ) )
+            // InternalChartDSL.g:23003:3: ( ruleOpPostfix )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
             }
-            // InternalChartDSL.g:21806:3: ( ruleOpPostfix )
-            // InternalChartDSL.g:21807:4: ruleOpPostfix
+            // InternalChartDSL.g:23004:3: ( ruleOpPostfix )
+            // InternalChartDSL.g:23005:4: ruleOpPostfix
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); 
@@ -71647,28 +75564,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"
-    // InternalChartDSL.g:21818:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
+    // InternalChartDSL.g:23016:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21822:1: ( ( ( '::' ) ) )
-            // InternalChartDSL.g:21823:2: ( ( '::' ) )
+            // InternalChartDSL.g:23020:1: ( ( ( '::' ) ) )
+            // InternalChartDSL.g:23021:2: ( ( '::' ) )
             {
-            // InternalChartDSL.g:21823:2: ( ( '::' ) )
-            // InternalChartDSL.g:21824:3: ( '::' )
+            // InternalChartDSL.g:23021:2: ( ( '::' ) )
+            // InternalChartDSL.g:23022:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            // InternalChartDSL.g:21825:3: ( '::' )
-            // InternalChartDSL.g:21826:4: '::'
+            // InternalChartDSL.g:23023:3: ( '::' )
+            // InternalChartDSL.g:23024:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            match(input,150,FOLLOW_2); if (state.failed) return ;
+            match(input,167,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
@@ -71700,23 +75617,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"
-    // InternalChartDSL.g:21837:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
+    // InternalChartDSL.g:23035:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
     public final void rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21841:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalChartDSL.g:21842:2: ( ( ruleFeatureCallID ) )
+            // InternalChartDSL.g:23039:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalChartDSL.g:23040:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalChartDSL.g:21842:2: ( ( ruleFeatureCallID ) )
-            // InternalChartDSL.g:21843:3: ( ruleFeatureCallID )
+            // InternalChartDSL.g:23040:2: ( ( ruleFeatureCallID ) )
+            // InternalChartDSL.g:23041:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
             }
-            // InternalChartDSL.g:21844:3: ( ruleFeatureCallID )
-            // InternalChartDSL.g:21845:4: ruleFeatureCallID
+            // InternalChartDSL.g:23042:3: ( ruleFeatureCallID )
+            // InternalChartDSL.g:23043:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); 
@@ -71757,17 +75674,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ValueAssignment_1_0_1"
-    // InternalChartDSL.g:21856:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
+    // InternalChartDSL.g:23054:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
     public final void rule__XMemberFeatureCall__ValueAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21860:1: ( ( ruleXAssignment ) )
-            // InternalChartDSL.g:21861:2: ( ruleXAssignment )
+            // InternalChartDSL.g:23058:1: ( ( ruleXAssignment ) )
+            // InternalChartDSL.g:23059:2: ( ruleXAssignment )
             {
-            // InternalChartDSL.g:21861:2: ( ruleXAssignment )
-            // InternalChartDSL.g:21862:3: ruleXAssignment
+            // InternalChartDSL.g:23059:2: ( ruleXAssignment )
+            // InternalChartDSL.g:23060:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
@@ -71802,28 +75719,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"
-    // InternalChartDSL.g:21871:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
+    // InternalChartDSL.g:23069:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
     public final void rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21875:1: ( ( ( '?.' ) ) )
-            // InternalChartDSL.g:21876:2: ( ( '?.' ) )
+            // InternalChartDSL.g:23073:1: ( ( ( '?.' ) ) )
+            // InternalChartDSL.g:23074:2: ( ( '?.' ) )
             {
-            // InternalChartDSL.g:21876:2: ( ( '?.' ) )
-            // InternalChartDSL.g:21877:3: ( '?.' )
+            // InternalChartDSL.g:23074:2: ( ( '?.' ) )
+            // InternalChartDSL.g:23075:3: ( '?.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            // InternalChartDSL.g:21878:3: ( '?.' )
-            // InternalChartDSL.g:21879:4: '?.'
+            // InternalChartDSL.g:23076:3: ( '?.' )
+            // InternalChartDSL.g:23077:4: '?.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            match(input,151,FOLLOW_2); if (state.failed) return ;
+            match(input,168,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
@@ -71855,28 +75772,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"
-    // InternalChartDSL.g:21890:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
+    // InternalChartDSL.g:23088:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21894:1: ( ( ( '::' ) ) )
-            // InternalChartDSL.g:21895:2: ( ( '::' ) )
+            // InternalChartDSL.g:23092:1: ( ( ( '::' ) ) )
+            // InternalChartDSL.g:23093:2: ( ( '::' ) )
             {
-            // InternalChartDSL.g:21895:2: ( ( '::' ) )
-            // InternalChartDSL.g:21896:3: ( '::' )
+            // InternalChartDSL.g:23093:2: ( ( '::' ) )
+            // InternalChartDSL.g:23094:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            // InternalChartDSL.g:21897:3: ( '::' )
-            // InternalChartDSL.g:21898:4: '::'
+            // InternalChartDSL.g:23095:3: ( '::' )
+            // InternalChartDSL.g:23096:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            match(input,150,FOLLOW_2); if (state.failed) return ;
+            match(input,167,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
@@ -71908,17 +75825,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"
-    // InternalChartDSL.g:21909:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalChartDSL.g:23107:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21913:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalChartDSL.g:21914:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:23111:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalChartDSL.g:23112:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalChartDSL.g:21914:2: ( ruleJvmArgumentTypeReference )
-            // InternalChartDSL.g:21915:3: ruleJvmArgumentTypeReference
+            // InternalChartDSL.g:23112:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:23113:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
@@ -71953,17 +75870,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"
-    // InternalChartDSL.g:21924:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalChartDSL.g:23122:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21928:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalChartDSL.g:21929:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:23126:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalChartDSL.g:23127:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalChartDSL.g:21929:2: ( ruleJvmArgumentTypeReference )
-            // InternalChartDSL.g:21930:3: ruleJvmArgumentTypeReference
+            // InternalChartDSL.g:23127:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:23128:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
@@ -71998,23 +75915,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"
-    // InternalChartDSL.g:21939:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalChartDSL.g:23137:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
     public final void rule__XMemberFeatureCall__FeatureAssignment_1_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21943:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalChartDSL.g:21944:2: ( ( ruleIdOrSuper ) )
+            // InternalChartDSL.g:23141:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalChartDSL.g:23142:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalChartDSL.g:21944:2: ( ( ruleIdOrSuper ) )
-            // InternalChartDSL.g:21945:3: ( ruleIdOrSuper )
+            // InternalChartDSL.g:23142:2: ( ( ruleIdOrSuper ) )
+            // InternalChartDSL.g:23143:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
             }
-            // InternalChartDSL.g:21946:3: ( ruleIdOrSuper )
-            // InternalChartDSL.g:21947:4: ruleIdOrSuper
+            // InternalChartDSL.g:23144:3: ( ruleIdOrSuper )
+            // InternalChartDSL.g:23145:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); 
@@ -72055,28 +75972,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"
-    // InternalChartDSL.g:21958:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
+    // InternalChartDSL.g:23156:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21962:1: ( ( ( '(' ) ) )
-            // InternalChartDSL.g:21963:2: ( ( '(' ) )
+            // InternalChartDSL.g:23160:1: ( ( ( '(' ) ) )
+            // InternalChartDSL.g:23161:2: ( ( '(' ) )
             {
-            // InternalChartDSL.g:21963:2: ( ( '(' ) )
-            // InternalChartDSL.g:21964:3: ( '(' )
+            // InternalChartDSL.g:23161:2: ( ( '(' ) )
+            // InternalChartDSL.g:23162:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
-            // InternalChartDSL.g:21965:3: ( '(' )
-            // InternalChartDSL.g:21966:4: '('
+            // InternalChartDSL.g:23163:3: ( '(' )
+            // InternalChartDSL.g:23164:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
@@ -72108,17 +76025,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"
-    // InternalChartDSL.g:21977:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalChartDSL.g:23175:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21981:1: ( ( ruleXShortClosure ) )
-            // InternalChartDSL.g:21982:2: ( ruleXShortClosure )
+            // InternalChartDSL.g:23179:1: ( ( ruleXShortClosure ) )
+            // InternalChartDSL.g:23180:2: ( ruleXShortClosure )
             {
-            // InternalChartDSL.g:21982:2: ( ruleXShortClosure )
-            // InternalChartDSL.g:21983:3: ruleXShortClosure
+            // InternalChartDSL.g:23180:2: ( ruleXShortClosure )
+            // InternalChartDSL.g:23181:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
@@ -72153,17 +76070,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"
-    // InternalChartDSL.g:21992:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23190:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:21996:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:21997:2: ( ruleXExpression )
+            // InternalChartDSL.g:23194:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23195:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:21997:2: ( ruleXExpression )
-            // InternalChartDSL.g:21998:3: ruleXExpression
+            // InternalChartDSL.g:23195:2: ( ruleXExpression )
+            // InternalChartDSL.g:23196:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
@@ -72198,17 +76115,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"
-    // InternalChartDSL.g:22007:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23205:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22011:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22012:2: ( ruleXExpression )
+            // InternalChartDSL.g:23209:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23210:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22012:2: ( ruleXExpression )
-            // InternalChartDSL.g:22013:3: ruleXExpression
+            // InternalChartDSL.g:23210:2: ( ruleXExpression )
+            // InternalChartDSL.g:23211:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
@@ -72243,17 +76160,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"
-    // InternalChartDSL.g:22022:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
+    // InternalChartDSL.g:23220:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22026:1: ( ( ruleXClosure ) )
-            // InternalChartDSL.g:22027:2: ( ruleXClosure )
+            // InternalChartDSL.g:23224:1: ( ( ruleXClosure ) )
+            // InternalChartDSL.g:23225:2: ( ruleXClosure )
             {
-            // InternalChartDSL.g:22027:2: ( ruleXClosure )
-            // InternalChartDSL.g:22028:3: ruleXClosure
+            // InternalChartDSL.g:23225:2: ( ruleXClosure )
+            // InternalChartDSL.g:23226:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
@@ -72288,17 +76205,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_0"
-    // InternalChartDSL.g:22037:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23235:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22041:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22042:2: ( ruleXExpression )
+            // InternalChartDSL.g:23239:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23240:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22042:2: ( ruleXExpression )
-            // InternalChartDSL.g:22043:3: ruleXExpression
+            // InternalChartDSL.g:23240:2: ( ruleXExpression )
+            // InternalChartDSL.g:23241:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -72333,17 +76250,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_1_1"
-    // InternalChartDSL.g:22052:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23250:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XSetLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22056:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22057:2: ( ruleXExpression )
+            // InternalChartDSL.g:23254:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23255:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22057:2: ( ruleXExpression )
-            // InternalChartDSL.g:22058:3: ruleXExpression
+            // InternalChartDSL.g:23255:2: ( ruleXExpression )
+            // InternalChartDSL.g:23256:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -72378,17 +76295,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_0"
-    // InternalChartDSL.g:22067:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23265:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22071:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22072:2: ( ruleXExpression )
+            // InternalChartDSL.g:23269:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23270:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22072:2: ( ruleXExpression )
-            // InternalChartDSL.g:22073:3: ruleXExpression
+            // InternalChartDSL.g:23270:2: ( ruleXExpression )
+            // InternalChartDSL.g:23271:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -72423,17 +76340,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_1_1"
-    // InternalChartDSL.g:22082:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23280:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XListLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22086:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22087:2: ( ruleXExpression )
+            // InternalChartDSL.g:23284:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23285:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22087:2: ( ruleXExpression )
-            // InternalChartDSL.g:22088:3: ruleXExpression
+            // InternalChartDSL.g:23285:2: ( ruleXExpression )
+            // InternalChartDSL.g:23286:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -72468,17 +76385,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"
-    // InternalChartDSL.g:22097:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalChartDSL.g:23295:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22101:1: ( ( ruleJvmFormalParameter ) )
-            // InternalChartDSL.g:22102:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23299:1: ( ( ruleJvmFormalParameter ) )
+            // InternalChartDSL.g:23300:2: ( ruleJvmFormalParameter )
             {
-            // InternalChartDSL.g:22102:2: ( ruleJvmFormalParameter )
-            // InternalChartDSL.g:22103:3: ruleJvmFormalParameter
+            // InternalChartDSL.g:23300:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23301:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
@@ -72513,17 +76430,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"
-    // InternalChartDSL.g:22112:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalChartDSL.g:23310:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22116:1: ( ( ruleJvmFormalParameter ) )
-            // InternalChartDSL.g:22117:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23314:1: ( ( ruleJvmFormalParameter ) )
+            // InternalChartDSL.g:23315:2: ( ruleJvmFormalParameter )
             {
-            // InternalChartDSL.g:22117:2: ( ruleJvmFormalParameter )
-            // InternalChartDSL.g:22118:3: ruleJvmFormalParameter
+            // InternalChartDSL.g:23315:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23316:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
@@ -72558,28 +76475,28 @@
 
 
     // $ANTLR start "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"
-    // InternalChartDSL.g:22127:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
+    // InternalChartDSL.g:23325:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
     public final void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22131:1: ( ( ( '|' ) ) )
-            // InternalChartDSL.g:22132:2: ( ( '|' ) )
+            // InternalChartDSL.g:23329:1: ( ( ( '|' ) ) )
+            // InternalChartDSL.g:23330:2: ( ( '|' ) )
             {
-            // InternalChartDSL.g:22132:2: ( ( '|' ) )
-            // InternalChartDSL.g:22133:3: ( '|' )
+            // InternalChartDSL.g:23330:2: ( ( '|' ) )
+            // InternalChartDSL.g:23331:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            // InternalChartDSL.g:22134:3: ( '|' )
-            // InternalChartDSL.g:22135:4: '|'
+            // InternalChartDSL.g:23332:3: ( '|' )
+            // InternalChartDSL.g:23333:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            match(input,152,FOLLOW_2); if (state.failed) return ;
+            match(input,169,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
@@ -72611,17 +76528,17 @@
 
 
     // $ANTLR start "rule__XClosure__ExpressionAssignment_2"
-    // InternalChartDSL.g:22146:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
+    // InternalChartDSL.g:23344:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
     public final void rule__XClosure__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22150:1: ( ( ruleXExpressionInClosure ) )
-            // InternalChartDSL.g:22151:2: ( ruleXExpressionInClosure )
+            // InternalChartDSL.g:23348:1: ( ( ruleXExpressionInClosure ) )
+            // InternalChartDSL.g:23349:2: ( ruleXExpressionInClosure )
             {
-            // InternalChartDSL.g:22151:2: ( ruleXExpressionInClosure )
-            // InternalChartDSL.g:22152:3: ruleXExpressionInClosure
+            // InternalChartDSL.g:23349:2: ( ruleXExpressionInClosure )
+            // InternalChartDSL.g:23350:3: ruleXExpressionInClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
@@ -72656,17 +76573,17 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__ExpressionsAssignment_1_0"
-    // InternalChartDSL.g:22161:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalChartDSL.g:23359:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22165:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalChartDSL.g:22166:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalChartDSL.g:23363:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalChartDSL.g:23364:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalChartDSL.g:22166:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalChartDSL.g:22167:3: ruleXExpressionOrVarDeclaration
+            // InternalChartDSL.g:23364:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalChartDSL.g:23365:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
@@ -72701,17 +76618,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"
-    // InternalChartDSL.g:22176:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
+    // InternalChartDSL.g:23374:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22180:1: ( ( ruleJvmFormalParameter ) )
-            // InternalChartDSL.g:22181:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23378:1: ( ( ruleJvmFormalParameter ) )
+            // InternalChartDSL.g:23379:2: ( ruleJvmFormalParameter )
             {
-            // InternalChartDSL.g:22181:2: ( ruleJvmFormalParameter )
-            // InternalChartDSL.g:22182:3: ruleJvmFormalParameter
+            // InternalChartDSL.g:23379:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23380:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
@@ -72746,17 +76663,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"
-    // InternalChartDSL.g:22191:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalChartDSL.g:23389:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22195:1: ( ( ruleJvmFormalParameter ) )
-            // InternalChartDSL.g:22196:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23393:1: ( ( ruleJvmFormalParameter ) )
+            // InternalChartDSL.g:23394:2: ( ruleJvmFormalParameter )
             {
-            // InternalChartDSL.g:22196:2: ( ruleJvmFormalParameter )
-            // InternalChartDSL.g:22197:3: ruleJvmFormalParameter
+            // InternalChartDSL.g:23394:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23395:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
@@ -72791,28 +76708,28 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"
-    // InternalChartDSL.g:22206:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
+    // InternalChartDSL.g:23404:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
     public final void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22210:1: ( ( ( '|' ) ) )
-            // InternalChartDSL.g:22211:2: ( ( '|' ) )
+            // InternalChartDSL.g:23408:1: ( ( ( '|' ) ) )
+            // InternalChartDSL.g:23409:2: ( ( '|' ) )
             {
-            // InternalChartDSL.g:22211:2: ( ( '|' ) )
-            // InternalChartDSL.g:22212:3: ( '|' )
+            // InternalChartDSL.g:23409:2: ( ( '|' ) )
+            // InternalChartDSL.g:23410:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            // InternalChartDSL.g:22213:3: ( '|' )
-            // InternalChartDSL.g:22214:4: '|'
+            // InternalChartDSL.g:23411:3: ( '|' )
+            // InternalChartDSL.g:23412:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            match(input,152,FOLLOW_2); if (state.failed) return ;
+            match(input,169,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
@@ -72844,17 +76761,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExpressionAssignment_1"
-    // InternalChartDSL.g:22225:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23423:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22229:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22230:2: ( ruleXExpression )
+            // InternalChartDSL.g:23427:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23428:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22230:2: ( ruleXExpression )
-            // InternalChartDSL.g:22231:3: ruleXExpression
+            // InternalChartDSL.g:23428:2: ( ruleXExpression )
+            // InternalChartDSL.g:23429:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
@@ -72889,17 +76806,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__IfAssignment_3"
-    // InternalChartDSL.g:22240:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23438:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__IfAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22244:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22245:2: ( ruleXExpression )
+            // InternalChartDSL.g:23442:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23443:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22245:2: ( ruleXExpression )
-            // InternalChartDSL.g:22246:3: ruleXExpression
+            // InternalChartDSL.g:23443:2: ( ruleXExpression )
+            // InternalChartDSL.g:23444:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
@@ -72934,17 +76851,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ThenAssignment_5"
-    // InternalChartDSL.g:22255:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23453:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ThenAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22259:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22260:2: ( ruleXExpression )
+            // InternalChartDSL.g:23457:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23458:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22260:2: ( ruleXExpression )
-            // InternalChartDSL.g:22261:3: ruleXExpression
+            // InternalChartDSL.g:23458:2: ( ruleXExpression )
+            // InternalChartDSL.g:23459:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
@@ -72979,17 +76896,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ElseAssignment_6_1"
-    // InternalChartDSL.g:22270:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23468:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22274:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22275:2: ( ruleXExpression )
+            // InternalChartDSL.g:23472:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23473:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22275:2: ( ruleXExpression )
-            // InternalChartDSL.g:22276:3: ruleXExpression
+            // InternalChartDSL.g:23473:2: ( ruleXExpression )
+            // InternalChartDSL.g:23474:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
@@ -73024,17 +76941,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1"
-    // InternalChartDSL.g:22285:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
+    // InternalChartDSL.g:23483:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22289:1: ( ( ruleJvmFormalParameter ) )
-            // InternalChartDSL.g:22290:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23487:1: ( ( ruleJvmFormalParameter ) )
+            // InternalChartDSL.g:23488:2: ( ruleJvmFormalParameter )
             {
-            // InternalChartDSL.g:22290:2: ( ruleJvmFormalParameter )
-            // InternalChartDSL.g:22291:3: ruleJvmFormalParameter
+            // InternalChartDSL.g:23488:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23489:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
@@ -73069,17 +76986,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_0_1"
-    // InternalChartDSL.g:22300:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23498:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__SwitchAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22304:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22305:2: ( ruleXExpression )
+            // InternalChartDSL.g:23502:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23503:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22305:2: ( ruleXExpression )
-            // InternalChartDSL.g:22306:3: ruleXExpression
+            // InternalChartDSL.g:23503:2: ( ruleXExpression )
+            // InternalChartDSL.g:23504:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
@@ -73114,17 +77031,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0"
-    // InternalChartDSL.g:22315:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalChartDSL.g:23513:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22319:1: ( ( ruleJvmFormalParameter ) )
-            // InternalChartDSL.g:22320:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23517:1: ( ( ruleJvmFormalParameter ) )
+            // InternalChartDSL.g:23518:2: ( ruleJvmFormalParameter )
             {
-            // InternalChartDSL.g:22320:2: ( ruleJvmFormalParameter )
-            // InternalChartDSL.g:22321:3: ruleJvmFormalParameter
+            // InternalChartDSL.g:23518:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23519:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
@@ -73159,17 +77076,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_1_1"
-    // InternalChartDSL.g:22330:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23528:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__SwitchAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22334:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22335:2: ( ruleXExpression )
+            // InternalChartDSL.g:23532:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23533:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22335:2: ( ruleXExpression )
-            // InternalChartDSL.g:22336:3: ruleXExpression
+            // InternalChartDSL.g:23533:2: ( ruleXExpression )
+            // InternalChartDSL.g:23534:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
@@ -73204,17 +77121,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__CasesAssignment_4"
-    // InternalChartDSL.g:22345:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
+    // InternalChartDSL.g:23543:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
     public final void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22349:1: ( ( ruleXCasePart ) )
-            // InternalChartDSL.g:22350:2: ( ruleXCasePart )
+            // InternalChartDSL.g:23547:1: ( ( ruleXCasePart ) )
+            // InternalChartDSL.g:23548:2: ( ruleXCasePart )
             {
-            // InternalChartDSL.g:22350:2: ( ruleXCasePart )
-            // InternalChartDSL.g:22351:3: ruleXCasePart
+            // InternalChartDSL.g:23548:2: ( ruleXCasePart )
+            // InternalChartDSL.g:23549:3: ruleXCasePart
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
@@ -73249,17 +77166,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DefaultAssignment_5_2"
-    // InternalChartDSL.g:22360:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23558:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22364:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22365:2: ( ruleXExpression )
+            // InternalChartDSL.g:23562:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23563:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22365:2: ( ruleXExpression )
-            // InternalChartDSL.g:22366:3: ruleXExpression
+            // InternalChartDSL.g:23563:2: ( ruleXExpression )
+            // InternalChartDSL.g:23564:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
@@ -73294,17 +77211,17 @@
 
 
     // $ANTLR start "rule__XCasePart__TypeGuardAssignment_1"
-    // InternalChartDSL.g:22375:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:23573:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCasePart__TypeGuardAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22379:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:22380:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:23577:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:23578:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:22380:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:22381:3: ruleJvmTypeReference
+            // InternalChartDSL.g:23578:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:23579:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
@@ -73339,17 +77256,17 @@
 
 
     // $ANTLR start "rule__XCasePart__CaseAssignment_2_1"
-    // InternalChartDSL.g:22390:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23588:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
     public final void rule__XCasePart__CaseAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22394:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22395:2: ( ruleXExpression )
+            // InternalChartDSL.g:23592:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23593:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22395:2: ( ruleXExpression )
-            // InternalChartDSL.g:22396:3: ruleXExpression
+            // InternalChartDSL.g:23593:2: ( ruleXExpression )
+            // InternalChartDSL.g:23594:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
@@ -73384,17 +77301,17 @@
 
 
     // $ANTLR start "rule__XCasePart__ThenAssignment_3_0_1"
-    // InternalChartDSL.g:22405:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23603:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
     public final void rule__XCasePart__ThenAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22409:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22410:2: ( ruleXExpression )
+            // InternalChartDSL.g:23607:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23608:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22410:2: ( ruleXExpression )
-            // InternalChartDSL.g:22411:3: ruleXExpression
+            // InternalChartDSL.g:23608:2: ( ruleXExpression )
+            // InternalChartDSL.g:23609:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
@@ -73429,28 +77346,28 @@
 
 
     // $ANTLR start "rule__XCasePart__FallThroughAssignment_3_1"
-    // InternalChartDSL.g:22420:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
+    // InternalChartDSL.g:23618:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
     public final void rule__XCasePart__FallThroughAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22424:1: ( ( ( ',' ) ) )
-            // InternalChartDSL.g:22425:2: ( ( ',' ) )
+            // InternalChartDSL.g:23622:1: ( ( ( ',' ) ) )
+            // InternalChartDSL.g:23623:2: ( ( ',' ) )
             {
-            // InternalChartDSL.g:22425:2: ( ( ',' ) )
-            // InternalChartDSL.g:22426:3: ( ',' )
+            // InternalChartDSL.g:23623:2: ( ( ',' ) )
+            // InternalChartDSL.g:23624:3: ( ',' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
-            // InternalChartDSL.g:22427:3: ( ',' )
-            // InternalChartDSL.g:22428:4: ','
+            // InternalChartDSL.g:23625:3: ( ',' )
+            // InternalChartDSL.g:23626:4: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
@@ -73482,17 +77399,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3"
-    // InternalChartDSL.g:22439:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
+    // InternalChartDSL.g:23637:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
     public final void rule__XForLoopExpression__DeclaredParamAssignment_0_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22443:1: ( ( ruleJvmFormalParameter ) )
-            // InternalChartDSL.g:22444:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23641:1: ( ( ruleJvmFormalParameter ) )
+            // InternalChartDSL.g:23642:2: ( ruleJvmFormalParameter )
             {
-            // InternalChartDSL.g:22444:2: ( ruleJvmFormalParameter )
-            // InternalChartDSL.g:22445:3: ruleJvmFormalParameter
+            // InternalChartDSL.g:23642:2: ( ruleJvmFormalParameter )
+            // InternalChartDSL.g:23643:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
@@ -73527,17 +77444,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__ForExpressionAssignment_1"
-    // InternalChartDSL.g:22454:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23652:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__ForExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22458:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22459:2: ( ruleXExpression )
+            // InternalChartDSL.g:23656:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23657:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22459:2: ( ruleXExpression )
-            // InternalChartDSL.g:22460:3: ruleXExpression
+            // InternalChartDSL.g:23657:2: ( ruleXExpression )
+            // InternalChartDSL.g:23658:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
@@ -73572,17 +77489,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__EachExpressionAssignment_3"
-    // InternalChartDSL.g:22469:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23667:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__EachExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22473:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22474:2: ( ruleXExpression )
+            // InternalChartDSL.g:23671:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23672:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22474:2: ( ruleXExpression )
-            // InternalChartDSL.g:22475:3: ruleXExpression
+            // InternalChartDSL.g:23672:2: ( ruleXExpression )
+            // InternalChartDSL.g:23673:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
@@ -73617,17 +77534,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0"
-    // InternalChartDSL.g:22484:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalChartDSL.g:23682:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22488:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalChartDSL.g:22489:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalChartDSL.g:23686:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalChartDSL.g:23687:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalChartDSL.g:22489:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalChartDSL.g:22490:3: ruleXExpressionOrVarDeclaration
+            // InternalChartDSL.g:23687:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalChartDSL.g:23688:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
@@ -73662,17 +77579,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1"
-    // InternalChartDSL.g:22499:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalChartDSL.g:23697:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22503:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalChartDSL.g:22504:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalChartDSL.g:23701:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalChartDSL.g:23702:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalChartDSL.g:22504:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalChartDSL.g:22505:3: ruleXExpressionOrVarDeclaration
+            // InternalChartDSL.g:23702:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalChartDSL.g:23703:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
@@ -73707,17 +77624,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__ExpressionAssignment_5"
-    // InternalChartDSL.g:22514:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23712:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__ExpressionAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22518:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22519:2: ( ruleXExpression )
+            // InternalChartDSL.g:23716:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23717:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22519:2: ( ruleXExpression )
-            // InternalChartDSL.g:22520:3: ruleXExpression
+            // InternalChartDSL.g:23717:2: ( ruleXExpression )
+            // InternalChartDSL.g:23718:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
@@ -73752,17 +77669,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0"
-    // InternalChartDSL.g:22529:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23727:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22533:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22534:2: ( ruleXExpression )
+            // InternalChartDSL.g:23731:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23732:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22534:2: ( ruleXExpression )
-            // InternalChartDSL.g:22535:3: ruleXExpression
+            // InternalChartDSL.g:23732:2: ( ruleXExpression )
+            // InternalChartDSL.g:23733:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
@@ -73797,17 +77714,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1"
-    // InternalChartDSL.g:22544:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23742:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22548:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22549:2: ( ruleXExpression )
+            // InternalChartDSL.g:23746:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23747:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22549:2: ( ruleXExpression )
-            // InternalChartDSL.g:22550:3: ruleXExpression
+            // InternalChartDSL.g:23747:2: ( ruleXExpression )
+            // InternalChartDSL.g:23748:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
@@ -73842,17 +77759,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__EachExpressionAssignment_9"
-    // InternalChartDSL.g:22559:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23757:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__EachExpressionAssignment_9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22563:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22564:2: ( ruleXExpression )
+            // InternalChartDSL.g:23761:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23762:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22564:2: ( ruleXExpression )
-            // InternalChartDSL.g:22565:3: ruleXExpression
+            // InternalChartDSL.g:23762:2: ( ruleXExpression )
+            // InternalChartDSL.g:23763:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
@@ -73887,17 +77804,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__PredicateAssignment_3"
-    // InternalChartDSL.g:22574:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23772:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22578:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22579:2: ( ruleXExpression )
+            // InternalChartDSL.g:23776:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23777:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22579:2: ( ruleXExpression )
-            // InternalChartDSL.g:22580:3: ruleXExpression
+            // InternalChartDSL.g:23777:2: ( ruleXExpression )
+            // InternalChartDSL.g:23778:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
@@ -73932,17 +77849,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__BodyAssignment_5"
-    // InternalChartDSL.g:22589:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23787:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22593:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22594:2: ( ruleXExpression )
+            // InternalChartDSL.g:23791:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23792:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22594:2: ( ruleXExpression )
-            // InternalChartDSL.g:22595:3: ruleXExpression
+            // InternalChartDSL.g:23792:2: ( ruleXExpression )
+            // InternalChartDSL.g:23793:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
@@ -73977,17 +77894,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__BodyAssignment_2"
-    // InternalChartDSL.g:22604:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23802:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22608:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22609:2: ( ruleXExpression )
+            // InternalChartDSL.g:23806:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23807:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22609:2: ( ruleXExpression )
-            // InternalChartDSL.g:22610:3: ruleXExpression
+            // InternalChartDSL.g:23807:2: ( ruleXExpression )
+            // InternalChartDSL.g:23808:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
@@ -74022,17 +77939,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__PredicateAssignment_5"
-    // InternalChartDSL.g:22619:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23817:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22623:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22624:2: ( ruleXExpression )
+            // InternalChartDSL.g:23821:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23822:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22624:2: ( ruleXExpression )
-            // InternalChartDSL.g:22625:3: ruleXExpression
+            // InternalChartDSL.g:23822:2: ( ruleXExpression )
+            // InternalChartDSL.g:23823:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
@@ -74067,17 +77984,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__ExpressionsAssignment_2_0"
-    // InternalChartDSL.g:22634:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalChartDSL.g:23832:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22638:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalChartDSL.g:22639:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalChartDSL.g:23836:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalChartDSL.g:23837:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalChartDSL.g:22639:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalChartDSL.g:22640:3: ruleXExpressionOrVarDeclaration
+            // InternalChartDSL.g:23837:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalChartDSL.g:23838:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
@@ -74112,28 +78029,28 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__WriteableAssignment_1_0"
-    // InternalChartDSL.g:22649:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
+    // InternalChartDSL.g:23847:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
     public final void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22653:1: ( ( ( 'var' ) ) )
-            // InternalChartDSL.g:22654:2: ( ( 'var' ) )
+            // InternalChartDSL.g:23851:1: ( ( ( 'var' ) ) )
+            // InternalChartDSL.g:23852:2: ( ( 'var' ) )
             {
-            // InternalChartDSL.g:22654:2: ( ( 'var' ) )
-            // InternalChartDSL.g:22655:3: ( 'var' )
+            // InternalChartDSL.g:23852:2: ( ( 'var' ) )
+            // InternalChartDSL.g:23853:3: ( 'var' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            // InternalChartDSL.g:22656:3: ( 'var' )
-            // InternalChartDSL.g:22657:4: 'var'
+            // InternalChartDSL.g:23854:3: ( 'var' )
+            // InternalChartDSL.g:23855:4: 'var'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            match(input,153,FOLLOW_2); if (state.failed) return ;
+            match(input,170,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
@@ -74165,17 +78082,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"
-    // InternalChartDSL.g:22668:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:23866:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
     public final void rule__XVariableDeclaration__TypeAssignment_2_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22672:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:22673:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:23870:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:23871:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:22673:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:22674:3: ruleJvmTypeReference
+            // InternalChartDSL.g:23871:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:23872:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
@@ -74210,17 +78127,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_0_0_1"
-    // InternalChartDSL.g:22683:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
+    // InternalChartDSL.g:23881:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
     public final void rule__XVariableDeclaration__NameAssignment_2_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22687:1: ( ( ruleValidID ) )
-            // InternalChartDSL.g:22688:2: ( ruleValidID )
+            // InternalChartDSL.g:23885:1: ( ( ruleValidID ) )
+            // InternalChartDSL.g:23886:2: ( ruleValidID )
             {
-            // InternalChartDSL.g:22688:2: ( ruleValidID )
-            // InternalChartDSL.g:22689:3: ruleValidID
+            // InternalChartDSL.g:23886:2: ( ruleValidID )
+            // InternalChartDSL.g:23887:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
@@ -74255,17 +78172,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_1"
-    // InternalChartDSL.g:22698:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
+    // InternalChartDSL.g:23896:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
     public final void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22702:1: ( ( ruleValidID ) )
-            // InternalChartDSL.g:22703:2: ( ruleValidID )
+            // InternalChartDSL.g:23900:1: ( ( ruleValidID ) )
+            // InternalChartDSL.g:23901:2: ( ruleValidID )
             {
-            // InternalChartDSL.g:22703:2: ( ruleValidID )
-            // InternalChartDSL.g:22704:3: ruleValidID
+            // InternalChartDSL.g:23901:2: ( ruleValidID )
+            // InternalChartDSL.g:23902:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
@@ -74300,17 +78217,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__RightAssignment_3_1"
-    // InternalChartDSL.g:22713:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:23911:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
     public final void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22717:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22718:2: ( ruleXExpression )
+            // InternalChartDSL.g:23915:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:23916:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22718:2: ( ruleXExpression )
-            // InternalChartDSL.g:22719:3: ruleXExpression
+            // InternalChartDSL.g:23916:2: ( ruleXExpression )
+            // InternalChartDSL.g:23917:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
@@ -74345,17 +78262,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalChartDSL.g:22728:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:23926:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22732:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:22733:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:23930:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:23931:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:22733:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:22734:3: ruleJvmTypeReference
+            // InternalChartDSL.g:23931:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:23932:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -74390,17 +78307,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__NameAssignment_1"
-    // InternalChartDSL.g:22743:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalChartDSL.g:23941:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22747:1: ( ( ruleValidID ) )
-            // InternalChartDSL.g:22748:2: ( ruleValidID )
+            // InternalChartDSL.g:23945:1: ( ( ruleValidID ) )
+            // InternalChartDSL.g:23946:2: ( ruleValidID )
             {
-            // InternalChartDSL.g:22748:2: ( ruleValidID )
-            // InternalChartDSL.g:22749:3: ruleValidID
+            // InternalChartDSL.g:23946:2: ( ruleValidID )
+            // InternalChartDSL.g:23947:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -74435,17 +78352,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalChartDSL.g:22758:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:23956:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22762:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:22763:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:23960:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:23961:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:22763:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:22764:3: ruleJvmTypeReference
+            // InternalChartDSL.g:23961:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:23962:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -74480,17 +78397,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__NameAssignment_1"
-    // InternalChartDSL.g:22773:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalChartDSL.g:23971:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22777:1: ( ( ruleValidID ) )
-            // InternalChartDSL.g:22778:2: ( ruleValidID )
+            // InternalChartDSL.g:23975:1: ( ( ruleValidID ) )
+            // InternalChartDSL.g:23976:2: ( ruleValidID )
             {
-            // InternalChartDSL.g:22778:2: ( ruleValidID )
-            // InternalChartDSL.g:22779:3: ruleValidID
+            // InternalChartDSL.g:23976:2: ( ruleValidID )
+            // InternalChartDSL.g:23977:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -74525,17 +78442,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_1"
-    // InternalChartDSL.g:22788:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalChartDSL.g:23986:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22792:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalChartDSL.g:22793:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:23990:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalChartDSL.g:23991:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalChartDSL.g:22793:2: ( ruleJvmArgumentTypeReference )
-            // InternalChartDSL.g:22794:3: ruleJvmArgumentTypeReference
+            // InternalChartDSL.g:23991:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:23992:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -74570,17 +78487,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"
-    // InternalChartDSL.g:22803:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalChartDSL.g:24001:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XFeatureCall__TypeArgumentsAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22807:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalChartDSL.g:22808:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24005:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalChartDSL.g:24006:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalChartDSL.g:22808:2: ( ruleJvmArgumentTypeReference )
-            // InternalChartDSL.g:22809:3: ruleJvmArgumentTypeReference
+            // InternalChartDSL.g:24006:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24007:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -74615,23 +78532,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureAssignment_2"
-    // InternalChartDSL.g:22818:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalChartDSL.g:24016:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
     public final void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22822:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalChartDSL.g:22823:2: ( ( ruleIdOrSuper ) )
+            // InternalChartDSL.g:24020:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalChartDSL.g:24021:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalChartDSL.g:22823:2: ( ( ruleIdOrSuper ) )
-            // InternalChartDSL.g:22824:3: ( ruleIdOrSuper )
+            // InternalChartDSL.g:24021:2: ( ( ruleIdOrSuper ) )
+            // InternalChartDSL.g:24022:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
             }
-            // InternalChartDSL.g:22825:3: ( ruleIdOrSuper )
-            // InternalChartDSL.g:22826:4: ruleIdOrSuper
+            // InternalChartDSL.g:24023:3: ( ruleIdOrSuper )
+            // InternalChartDSL.g:24024:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); 
@@ -74672,28 +78589,28 @@
 
 
     // $ANTLR start "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"
-    // InternalChartDSL.g:22837:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
+    // InternalChartDSL.g:24035:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
     public final void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22841:1: ( ( ( '(' ) ) )
-            // InternalChartDSL.g:22842:2: ( ( '(' ) )
+            // InternalChartDSL.g:24039:1: ( ( ( '(' ) ) )
+            // InternalChartDSL.g:24040:2: ( ( '(' ) )
             {
-            // InternalChartDSL.g:22842:2: ( ( '(' ) )
-            // InternalChartDSL.g:22843:3: ( '(' )
+            // InternalChartDSL.g:24040:2: ( ( '(' ) )
+            // InternalChartDSL.g:24041:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
-            // InternalChartDSL.g:22844:3: ( '(' )
-            // InternalChartDSL.g:22845:4: '('
+            // InternalChartDSL.g:24042:3: ( '(' )
+            // InternalChartDSL.g:24043:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
@@ -74725,17 +78642,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"
-    // InternalChartDSL.g:22856:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalChartDSL.g:24054:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22860:1: ( ( ruleXShortClosure ) )
-            // InternalChartDSL.g:22861:2: ( ruleXShortClosure )
+            // InternalChartDSL.g:24058:1: ( ( ruleXShortClosure ) )
+            // InternalChartDSL.g:24059:2: ( ruleXShortClosure )
             {
-            // InternalChartDSL.g:22861:2: ( ruleXShortClosure )
-            // InternalChartDSL.g:22862:3: ruleXShortClosure
+            // InternalChartDSL.g:24059:2: ( ruleXShortClosure )
+            // InternalChartDSL.g:24060:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
@@ -74770,17 +78687,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"
-    // InternalChartDSL.g:22871:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24069:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22875:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22876:2: ( ruleXExpression )
+            // InternalChartDSL.g:24073:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24074:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22876:2: ( ruleXExpression )
-            // InternalChartDSL.g:22877:3: ruleXExpression
+            // InternalChartDSL.g:24074:2: ( ruleXExpression )
+            // InternalChartDSL.g:24075:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
@@ -74815,17 +78732,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"
-    // InternalChartDSL.g:22886:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24084:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22890:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:22891:2: ( ruleXExpression )
+            // InternalChartDSL.g:24088:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24089:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:22891:2: ( ruleXExpression )
-            // InternalChartDSL.g:22892:3: ruleXExpression
+            // InternalChartDSL.g:24089:2: ( ruleXExpression )
+            // InternalChartDSL.g:24090:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
@@ -74860,17 +78777,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"
-    // InternalChartDSL.g:22901:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
+    // InternalChartDSL.g:24099:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22905:1: ( ( ruleXClosure ) )
-            // InternalChartDSL.g:22906:2: ( ruleXClosure )
+            // InternalChartDSL.g:24103:1: ( ( ruleXClosure ) )
+            // InternalChartDSL.g:24104:2: ( ruleXClosure )
             {
-            // InternalChartDSL.g:22906:2: ( ruleXClosure )
-            // InternalChartDSL.g:22907:3: ruleXClosure
+            // InternalChartDSL.g:24104:2: ( ruleXClosure )
+            // InternalChartDSL.g:24105:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
@@ -74905,23 +78822,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ConstructorAssignment_2"
-    // InternalChartDSL.g:22916:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalChartDSL.g:24114:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22920:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalChartDSL.g:22921:2: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:24118:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalChartDSL.g:24119:2: ( ( ruleQualifiedName ) )
             {
-            // InternalChartDSL.g:22921:2: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:22922:3: ( ruleQualifiedName )
+            // InternalChartDSL.g:24119:2: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:24120:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
             }
-            // InternalChartDSL.g:22923:3: ( ruleQualifiedName )
-            // InternalChartDSL.g:22924:4: ruleQualifiedName
+            // InternalChartDSL.g:24121:3: ( ruleQualifiedName )
+            // InternalChartDSL.g:24122:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); 
@@ -74962,17 +78879,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_1"
-    // InternalChartDSL.g:22935:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalChartDSL.g:24133:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22939:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalChartDSL.g:22940:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24137:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalChartDSL.g:24138:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalChartDSL.g:22940:2: ( ruleJvmArgumentTypeReference )
-            // InternalChartDSL.g:22941:3: ruleJvmArgumentTypeReference
+            // InternalChartDSL.g:24138:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24139:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
@@ -75007,17 +78924,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"
-    // InternalChartDSL.g:22950:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalChartDSL.g:24148:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XConstructorCall__TypeArgumentsAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22954:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalChartDSL.g:22955:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24152:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalChartDSL.g:24153:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalChartDSL.g:22955:2: ( ruleJvmArgumentTypeReference )
-            // InternalChartDSL.g:22956:3: ruleJvmArgumentTypeReference
+            // InternalChartDSL.g:24153:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24154:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
@@ -75052,28 +78969,28 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0"
-    // InternalChartDSL.g:22965:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
+    // InternalChartDSL.g:24163:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
     public final void rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22969:1: ( ( ( '(' ) ) )
-            // InternalChartDSL.g:22970:2: ( ( '(' ) )
+            // InternalChartDSL.g:24167:1: ( ( ( '(' ) ) )
+            // InternalChartDSL.g:24168:2: ( ( '(' ) )
             {
-            // InternalChartDSL.g:22970:2: ( ( '(' ) )
-            // InternalChartDSL.g:22971:3: ( '(' )
+            // InternalChartDSL.g:24168:2: ( ( '(' ) )
+            // InternalChartDSL.g:24169:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
-            // InternalChartDSL.g:22972:3: ( '(' )
-            // InternalChartDSL.g:22973:4: '('
+            // InternalChartDSL.g:24170:3: ( '(' )
+            // InternalChartDSL.g:24171:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
@@ -75105,17 +79022,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_0"
-    // InternalChartDSL.g:22984:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
+    // InternalChartDSL.g:24182:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:22988:1: ( ( ruleXShortClosure ) )
-            // InternalChartDSL.g:22989:2: ( ruleXShortClosure )
+            // InternalChartDSL.g:24186:1: ( ( ruleXShortClosure ) )
+            // InternalChartDSL.g:24187:2: ( ruleXShortClosure )
             {
-            // InternalChartDSL.g:22989:2: ( ruleXShortClosure )
-            // InternalChartDSL.g:22990:3: ruleXShortClosure
+            // InternalChartDSL.g:24187:2: ( ruleXShortClosure )
+            // InternalChartDSL.g:24188:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
@@ -75150,17 +79067,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"
-    // InternalChartDSL.g:22999:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24197:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23003:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:23004:2: ( ruleXExpression )
+            // InternalChartDSL.g:24201:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24202:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:23004:2: ( ruleXExpression )
-            // InternalChartDSL.g:23005:3: ruleXExpression
+            // InternalChartDSL.g:24202:2: ( ruleXExpression )
+            // InternalChartDSL.g:24203:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
@@ -75195,17 +79112,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"
-    // InternalChartDSL.g:23014:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24212:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23018:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:23019:2: ( ruleXExpression )
+            // InternalChartDSL.g:24216:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24217:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:23019:2: ( ruleXExpression )
-            // InternalChartDSL.g:23020:3: ruleXExpression
+            // InternalChartDSL.g:24217:2: ( ruleXExpression )
+            // InternalChartDSL.g:24218:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
@@ -75240,17 +79157,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_5"
-    // InternalChartDSL.g:23029:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
+    // InternalChartDSL.g:24227:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23033:1: ( ( ruleXClosure ) )
-            // InternalChartDSL.g:23034:2: ( ruleXClosure )
+            // InternalChartDSL.g:24231:1: ( ( ruleXClosure ) )
+            // InternalChartDSL.g:24232:2: ( ruleXClosure )
             {
-            // InternalChartDSL.g:23034:2: ( ruleXClosure )
-            // InternalChartDSL.g:23035:3: ruleXClosure
+            // InternalChartDSL.g:24232:2: ( ruleXClosure )
+            // InternalChartDSL.g:24233:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
@@ -75285,28 +79202,28 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__IsTrueAssignment_1_1"
-    // InternalChartDSL.g:23044:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
+    // InternalChartDSL.g:24242:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
     public final void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23048:1: ( ( ( 'true' ) ) )
-            // InternalChartDSL.g:23049:2: ( ( 'true' ) )
+            // InternalChartDSL.g:24246:1: ( ( ( 'true' ) ) )
+            // InternalChartDSL.g:24247:2: ( ( 'true' ) )
             {
-            // InternalChartDSL.g:23049:2: ( ( 'true' ) )
-            // InternalChartDSL.g:23050:3: ( 'true' )
+            // InternalChartDSL.g:24247:2: ( ( 'true' ) )
+            // InternalChartDSL.g:24248:3: ( 'true' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            // InternalChartDSL.g:23051:3: ( 'true' )
-            // InternalChartDSL.g:23052:4: 'true'
+            // InternalChartDSL.g:24249:3: ( 'true' )
+            // InternalChartDSL.g:24250:4: 'true'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            match(input,154,FOLLOW_2); if (state.failed) return ;
+            match(input,171,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
@@ -75338,17 +79255,17 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__ValueAssignment_1"
-    // InternalChartDSL.g:23063:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
+    // InternalChartDSL.g:24261:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
     public final void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23067:1: ( ( ruleNumber ) )
-            // InternalChartDSL.g:23068:2: ( ruleNumber )
+            // InternalChartDSL.g:24265:1: ( ( ruleNumber ) )
+            // InternalChartDSL.g:24266:2: ( ruleNumber )
             {
-            // InternalChartDSL.g:23068:2: ( ruleNumber )
-            // InternalChartDSL.g:23069:3: ruleNumber
+            // InternalChartDSL.g:24266:2: ( ruleNumber )
+            // InternalChartDSL.g:24267:3: ruleNumber
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
@@ -75383,17 +79300,17 @@
 
 
     // $ANTLR start "rule__XStringLiteral__ValueAssignment_1"
-    // InternalChartDSL.g:23078:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
+    // InternalChartDSL.g:24276:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
     public final void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23082:1: ( ( RULE_STRING ) )
-            // InternalChartDSL.g:23083:2: ( RULE_STRING )
+            // InternalChartDSL.g:24280:1: ( ( RULE_STRING ) )
+            // InternalChartDSL.g:24281:2: ( RULE_STRING )
             {
-            // InternalChartDSL.g:23083:2: ( RULE_STRING )
-            // InternalChartDSL.g:23084:3: RULE_STRING
+            // InternalChartDSL.g:24281:2: ( RULE_STRING )
+            // InternalChartDSL.g:24282:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
@@ -75424,23 +79341,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__TypeAssignment_3"
-    // InternalChartDSL.g:23093:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
+    // InternalChartDSL.g:24291:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23097:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalChartDSL.g:23098:2: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:24295:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalChartDSL.g:24296:2: ( ( ruleQualifiedName ) )
             {
-            // InternalChartDSL.g:23098:2: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:23099:3: ( ruleQualifiedName )
+            // InternalChartDSL.g:24296:2: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:24297:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
             }
-            // InternalChartDSL.g:23100:3: ( ruleQualifiedName )
-            // InternalChartDSL.g:23101:4: ruleQualifiedName
+            // InternalChartDSL.g:24298:3: ( ruleQualifiedName )
+            // InternalChartDSL.g:24299:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); 
@@ -75481,17 +79398,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__ArrayDimensionsAssignment_4"
-    // InternalChartDSL.g:23112:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
+    // InternalChartDSL.g:24310:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
     public final void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23116:1: ( ( ruleArrayBrackets ) )
-            // InternalChartDSL.g:23117:2: ( ruleArrayBrackets )
+            // InternalChartDSL.g:24314:1: ( ( ruleArrayBrackets ) )
+            // InternalChartDSL.g:24315:2: ( ruleArrayBrackets )
             {
-            // InternalChartDSL.g:23117:2: ( ruleArrayBrackets )
-            // InternalChartDSL.g:23118:3: ruleArrayBrackets
+            // InternalChartDSL.g:24315:2: ( ruleArrayBrackets )
+            // InternalChartDSL.g:24316:3: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
@@ -75526,17 +79443,17 @@
 
 
     // $ANTLR start "rule__XThrowExpression__ExpressionAssignment_2"
-    // InternalChartDSL.g:23127:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24325:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23131:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:23132:2: ( ruleXExpression )
+            // InternalChartDSL.g:24329:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24330:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:23132:2: ( ruleXExpression )
-            // InternalChartDSL.g:23133:3: ruleXExpression
+            // InternalChartDSL.g:24330:2: ( ruleXExpression )
+            // InternalChartDSL.g:24331:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -75571,17 +79488,17 @@
 
 
     // $ANTLR start "rule__XReturnExpression__ExpressionAssignment_2"
-    // InternalChartDSL.g:23142:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24340:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23146:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:23147:2: ( ruleXExpression )
+            // InternalChartDSL.g:24344:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24345:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:23147:2: ( ruleXExpression )
-            // InternalChartDSL.g:23148:3: ruleXExpression
+            // InternalChartDSL.g:24345:2: ( ruleXExpression )
+            // InternalChartDSL.g:24346:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -75616,17 +79533,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"
-    // InternalChartDSL.g:23157:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24355:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23161:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:23162:2: ( ruleXExpression )
+            // InternalChartDSL.g:24359:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24360:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:23162:2: ( ruleXExpression )
-            // InternalChartDSL.g:23163:3: ruleXExpression
+            // InternalChartDSL.g:24360:2: ( ruleXExpression )
+            // InternalChartDSL.g:24361:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -75661,17 +79578,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"
-    // InternalChartDSL.g:23172:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
+    // InternalChartDSL.g:24370:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
     public final void rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23176:1: ( ( ruleXCatchClause ) )
-            // InternalChartDSL.g:23177:2: ( ruleXCatchClause )
+            // InternalChartDSL.g:24374:1: ( ( ruleXCatchClause ) )
+            // InternalChartDSL.g:24375:2: ( ruleXCatchClause )
             {
-            // InternalChartDSL.g:23177:2: ( ruleXCatchClause )
-            // InternalChartDSL.g:23178:3: ruleXCatchClause
+            // InternalChartDSL.g:24375:2: ( ruleXCatchClause )
+            // InternalChartDSL.g:24376:3: ruleXCatchClause
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
@@ -75706,17 +79623,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"
-    // InternalChartDSL.g:23187:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24385:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23191:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:23192:2: ( ruleXExpression )
+            // InternalChartDSL.g:24389:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24390:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:23192:2: ( ruleXExpression )
-            // InternalChartDSL.g:23193:3: ruleXExpression
+            // InternalChartDSL.g:24390:2: ( ruleXExpression )
+            // InternalChartDSL.g:24391:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
@@ -75751,17 +79668,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"
-    // InternalChartDSL.g:23202:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24400:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23206:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:23207:2: ( ruleXExpression )
+            // InternalChartDSL.g:24404:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24405:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:23207:2: ( ruleXExpression )
-            // InternalChartDSL.g:23208:3: ruleXExpression
+            // InternalChartDSL.g:24405:2: ( ruleXExpression )
+            // InternalChartDSL.g:24406:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
@@ -75796,17 +79713,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ParamAssignment_1"
-    // InternalChartDSL.g:23217:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24415:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ParamAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23221:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:23222:2: ( ruleXExpression )
+            // InternalChartDSL.g:24419:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24420:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:23222:2: ( ruleXExpression )
-            // InternalChartDSL.g:23223:3: ruleXExpression
+            // InternalChartDSL.g:24420:2: ( ruleXExpression )
+            // InternalChartDSL.g:24421:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
@@ -75841,17 +79758,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ExpressionAssignment_3"
-    // InternalChartDSL.g:23232:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24430:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23236:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:23237:2: ( ruleXExpression )
+            // InternalChartDSL.g:24434:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24435:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:23237:2: ( ruleXExpression )
-            // InternalChartDSL.g:23238:3: ruleXExpression
+            // InternalChartDSL.g:24435:2: ( ruleXExpression )
+            // InternalChartDSL.g:24436:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
@@ -75886,17 +79803,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__DeclaredParamAssignment_2"
-    // InternalChartDSL.g:23247:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
+    // InternalChartDSL.g:24445:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
     public final void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23251:1: ( ( ruleFullJvmFormalParameter ) )
-            // InternalChartDSL.g:23252:2: ( ruleFullJvmFormalParameter )
+            // InternalChartDSL.g:24449:1: ( ( ruleFullJvmFormalParameter ) )
+            // InternalChartDSL.g:24450:2: ( ruleFullJvmFormalParameter )
             {
-            // InternalChartDSL.g:23252:2: ( ruleFullJvmFormalParameter )
-            // InternalChartDSL.g:23253:3: ruleFullJvmFormalParameter
+            // InternalChartDSL.g:24450:2: ( ruleFullJvmFormalParameter )
+            // InternalChartDSL.g:24451:3: ruleFullJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
@@ -75931,17 +79848,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__ExpressionAssignment_4"
-    // InternalChartDSL.g:23262:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
+    // InternalChartDSL.g:24460:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
     public final void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23266:1: ( ( ruleXExpression ) )
-            // InternalChartDSL.g:23267:2: ( ruleXExpression )
+            // InternalChartDSL.g:24464:1: ( ( ruleXExpression ) )
+            // InternalChartDSL.g:24465:2: ( ruleXExpression )
             {
-            // InternalChartDSL.g:23267:2: ( ruleXExpression )
-            // InternalChartDSL.g:23268:3: ruleXExpression
+            // InternalChartDSL.g:24465:2: ( ruleXExpression )
+            // InternalChartDSL.g:24466:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
@@ -75976,17 +79893,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"
-    // InternalChartDSL.g:23277:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:24475:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23281:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:23282:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24479:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:24480:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:23282:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:23283:3: ruleJvmTypeReference
+            // InternalChartDSL.g:24480:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24481:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
@@ -76021,17 +79938,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"
-    // InternalChartDSL.g:23292:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:24490:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23296:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:23297:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24494:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:24495:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:23297:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:23298:3: ruleJvmTypeReference
+            // InternalChartDSL.g:24495:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24496:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
@@ -76066,17 +79983,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ReturnTypeAssignment_2"
-    // InternalChartDSL.g:23307:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:24505:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23311:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:23312:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24509:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:24510:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:23312:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:23313:3: ruleJvmTypeReference
+            // InternalChartDSL.g:24510:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24511:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
@@ -76111,23 +80028,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_0"
-    // InternalChartDSL.g:23322:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
+    // InternalChartDSL.g:24520:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
     public final void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23326:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalChartDSL.g:23327:2: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:24524:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalChartDSL.g:24525:2: ( ( ruleQualifiedName ) )
             {
-            // InternalChartDSL.g:23327:2: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:23328:3: ( ruleQualifiedName )
+            // InternalChartDSL.g:24525:2: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:24526:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
             }
-            // InternalChartDSL.g:23329:3: ( ruleQualifiedName )
-            // InternalChartDSL.g:23330:4: ruleQualifiedName
+            // InternalChartDSL.g:24527:3: ( ruleQualifiedName )
+            // InternalChartDSL.g:24528:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); 
@@ -76168,17 +80085,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"
-    // InternalChartDSL.g:23341:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalChartDSL.g:24539:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23345:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalChartDSL.g:23346:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24543:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalChartDSL.g:24544:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalChartDSL.g:23346:2: ( ruleJvmArgumentTypeReference )
-            // InternalChartDSL.g:23347:3: ruleJvmArgumentTypeReference
+            // InternalChartDSL.g:24544:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24545:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -76213,17 +80130,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"
-    // InternalChartDSL.g:23356:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalChartDSL.g:24554:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23360:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalChartDSL.g:23361:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24558:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalChartDSL.g:24559:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalChartDSL.g:23361:2: ( ruleJvmArgumentTypeReference )
-            // InternalChartDSL.g:23362:3: ruleJvmArgumentTypeReference
+            // InternalChartDSL.g:24559:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24560:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -76258,23 +80175,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1"
-    // InternalChartDSL.g:23371:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
+    // InternalChartDSL.g:24569:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
     public final void rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23375:1: ( ( ( ruleValidID ) ) )
-            // InternalChartDSL.g:23376:2: ( ( ruleValidID ) )
+            // InternalChartDSL.g:24573:1: ( ( ( ruleValidID ) ) )
+            // InternalChartDSL.g:24574:2: ( ( ruleValidID ) )
             {
-            // InternalChartDSL.g:23376:2: ( ( ruleValidID ) )
-            // InternalChartDSL.g:23377:3: ( ruleValidID )
+            // InternalChartDSL.g:24574:2: ( ( ruleValidID ) )
+            // InternalChartDSL.g:24575:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
             }
-            // InternalChartDSL.g:23378:3: ( ruleValidID )
-            // InternalChartDSL.g:23379:4: ruleValidID
+            // InternalChartDSL.g:24576:3: ( ruleValidID )
+            // InternalChartDSL.g:24577:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); 
@@ -76315,17 +80232,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1"
-    // InternalChartDSL.g:23390:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalChartDSL.g:24588:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23394:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalChartDSL.g:23395:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24592:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalChartDSL.g:24593:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalChartDSL.g:23395:2: ( ruleJvmArgumentTypeReference )
-            // InternalChartDSL.g:23396:3: ruleJvmArgumentTypeReference
+            // InternalChartDSL.g:24593:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24594:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
@@ -76360,17 +80277,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1"
-    // InternalChartDSL.g:23405:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalChartDSL.g:24603:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23409:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalChartDSL.g:23410:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24607:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalChartDSL.g:24608:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalChartDSL.g:23410:2: ( ruleJvmArgumentTypeReference )
-            // InternalChartDSL.g:23411:3: ruleJvmArgumentTypeReference
+            // InternalChartDSL.g:24608:2: ( ruleJvmArgumentTypeReference )
+            // InternalChartDSL.g:24609:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
@@ -76405,17 +80322,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0"
-    // InternalChartDSL.g:23420:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
+    // InternalChartDSL.g:24618:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23424:1: ( ( ruleJvmUpperBound ) )
-            // InternalChartDSL.g:23425:2: ( ruleJvmUpperBound )
+            // InternalChartDSL.g:24622:1: ( ( ruleJvmUpperBound ) )
+            // InternalChartDSL.g:24623:2: ( ruleJvmUpperBound )
             {
-            // InternalChartDSL.g:23425:2: ( ruleJvmUpperBound )
-            // InternalChartDSL.g:23426:3: ruleJvmUpperBound
+            // InternalChartDSL.g:24623:2: ( ruleJvmUpperBound )
+            // InternalChartDSL.g:24624:3: ruleJvmUpperBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
@@ -76450,17 +80367,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1"
-    // InternalChartDSL.g:23435:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
+    // InternalChartDSL.g:24633:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23439:1: ( ( ruleJvmUpperBoundAnded ) )
-            // InternalChartDSL.g:23440:2: ( ruleJvmUpperBoundAnded )
+            // InternalChartDSL.g:24637:1: ( ( ruleJvmUpperBoundAnded ) )
+            // InternalChartDSL.g:24638:2: ( ruleJvmUpperBoundAnded )
             {
-            // InternalChartDSL.g:23440:2: ( ruleJvmUpperBoundAnded )
-            // InternalChartDSL.g:23441:3: ruleJvmUpperBoundAnded
+            // InternalChartDSL.g:24638:2: ( ruleJvmUpperBoundAnded )
+            // InternalChartDSL.g:24639:3: ruleJvmUpperBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
@@ -76495,17 +80412,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0"
-    // InternalChartDSL.g:23450:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
+    // InternalChartDSL.g:24648:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23454:1: ( ( ruleJvmLowerBound ) )
-            // InternalChartDSL.g:23455:2: ( ruleJvmLowerBound )
+            // InternalChartDSL.g:24652:1: ( ( ruleJvmLowerBound ) )
+            // InternalChartDSL.g:24653:2: ( ruleJvmLowerBound )
             {
-            // InternalChartDSL.g:23455:2: ( ruleJvmLowerBound )
-            // InternalChartDSL.g:23456:3: ruleJvmLowerBound
+            // InternalChartDSL.g:24653:2: ( ruleJvmLowerBound )
+            // InternalChartDSL.g:24654:3: ruleJvmLowerBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
@@ -76540,17 +80457,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1"
-    // InternalChartDSL.g:23465:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
+    // InternalChartDSL.g:24663:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23469:1: ( ( ruleJvmLowerBoundAnded ) )
-            // InternalChartDSL.g:23470:2: ( ruleJvmLowerBoundAnded )
+            // InternalChartDSL.g:24667:1: ( ( ruleJvmLowerBoundAnded ) )
+            // InternalChartDSL.g:24668:2: ( ruleJvmLowerBoundAnded )
             {
-            // InternalChartDSL.g:23470:2: ( ruleJvmLowerBoundAnded )
-            // InternalChartDSL.g:23471:3: ruleJvmLowerBoundAnded
+            // InternalChartDSL.g:24668:2: ( ruleJvmLowerBoundAnded )
+            // InternalChartDSL.g:24669:3: ruleJvmLowerBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
@@ -76585,17 +80502,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__TypeReferenceAssignment_1"
-    // InternalChartDSL.g:23480:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:24678:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23484:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:23485:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24682:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:24683:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:23485:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:23486:3: ruleJvmTypeReference
+            // InternalChartDSL.g:24683:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24684:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -76630,17 +80547,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"
-    // InternalChartDSL.g:23495:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:24693:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23499:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:23500:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24697:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:24698:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:23500:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:23501:3: ruleJvmTypeReference
+            // InternalChartDSL.g:24698:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24699:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -76675,17 +80592,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__TypeReferenceAssignment_1"
-    // InternalChartDSL.g:23510:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:24708:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23514:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:23515:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24712:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:24713:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:23515:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:23516:3: ruleJvmTypeReference
+            // InternalChartDSL.g:24713:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24714:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -76720,17 +80637,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1"
-    // InternalChartDSL.g:23525:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalChartDSL.g:24723:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23529:1: ( ( ruleJvmTypeReference ) )
-            // InternalChartDSL.g:23530:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24727:1: ( ( ruleJvmTypeReference ) )
+            // InternalChartDSL.g:24728:2: ( ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:23530:2: ( ruleJvmTypeReference )
-            // InternalChartDSL.g:23531:3: ruleJvmTypeReference
+            // InternalChartDSL.g:24728:2: ( ruleJvmTypeReference )
+            // InternalChartDSL.g:24729:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -76765,17 +80682,17 @@
 
 
     // $ANTLR start "rule__XImportSection__ImportDeclarationsAssignment"
-    // InternalChartDSL.g:23540:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
+    // InternalChartDSL.g:24738:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
     public final void rule__XImportSection__ImportDeclarationsAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalChartDSL.g:23544:1: ( ( ruleXImportDeclaration ) )
-            // InternalChartDSL.g:23545:2: ( ruleXImportDeclaration )
+            // InternalChartDSL.g:24742:1: ( ( ruleXImportDeclaration ) )
+            // InternalChartDSL.g:24743:2: ( ruleXImportDeclaration )
             {
-            // InternalChartDSL.g:23545:2: ( ruleXImportDeclaration )
-            // InternalChartDSL.g:23546:3: ruleXImportDeclaration
+            // InternalChartDSL.g:24743:2: ( ruleXImportDeclaration )
+            // InternalChartDSL.g:24744:3: ruleXImportDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); 
@@ -76810,17 +80727,17 @@
 
     // $ANTLR start synpred18_InternalChartDSL
     public final void synpred18_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:2933:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
-        // InternalChartDSL.g:2933:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+        // InternalChartDSL.g:2974:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
+        // InternalChartDSL.g:2974:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
         {
-        // InternalChartDSL.g:2933:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-        // InternalChartDSL.g:2934:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalChartDSL.g:2974:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+        // InternalChartDSL.g:2975:3: ( rule__XAnnotation__Group_3_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
         }
-        // InternalChartDSL.g:2935:3: ( rule__XAnnotation__Group_3_1_0__0 )
-        // InternalChartDSL.g:2935:4: rule__XAnnotation__Group_3_1_0__0
+        // InternalChartDSL.g:2976:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalChartDSL.g:2976:4: rule__XAnnotation__Group_3_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotation__Group_3_1_0__0();
@@ -76840,17 +80757,17 @@
 
     // $ANTLR start synpred19_InternalChartDSL
     public final void synpred19_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:2954:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
-        // InternalChartDSL.g:2954:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        // InternalChartDSL.g:2995:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
+        // InternalChartDSL.g:2995:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
         {
-        // InternalChartDSL.g:2954:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-        // InternalChartDSL.g:2955:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        // InternalChartDSL.g:2995:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        // InternalChartDSL.g:2996:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
         }
-        // InternalChartDSL.g:2956:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-        // InternalChartDSL.g:2956:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+        // InternalChartDSL.g:2997:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        // InternalChartDSL.g:2997:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotationElementValueOrCommaList__Group_0__0();
@@ -76870,17 +80787,17 @@
 
     // $ANTLR start synpred20_InternalChartDSL
     public final void synpred20_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:2975:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
-        // InternalChartDSL.g:2975:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        // InternalChartDSL.g:3016:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
+        // InternalChartDSL.g:3016:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
         {
-        // InternalChartDSL.g:2975:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-        // InternalChartDSL.g:2976:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalChartDSL.g:3016:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        // InternalChartDSL.g:3017:3: ( rule__XAnnotationElementValue__Group_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
         }
-        // InternalChartDSL.g:2977:3: ( rule__XAnnotationElementValue__Group_0__0 )
-        // InternalChartDSL.g:2977:4: rule__XAnnotationElementValue__Group_0__0
+        // InternalChartDSL.g:3018:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalChartDSL.g:3018:4: rule__XAnnotationElementValue__Group_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotationElementValue__Group_0__0();
@@ -76900,17 +80817,17 @@
 
     // $ANTLR start synpred45_InternalChartDSL
     public final void synpred45_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3260:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
-        // InternalChartDSL.g:3260:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+        // InternalChartDSL.g:3301:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
+        // InternalChartDSL.g:3301:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
         {
-        // InternalChartDSL.g:3260:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-        // InternalChartDSL.g:3261:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalChartDSL.g:3301:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+        // InternalChartDSL.g:3302:3: ( rule__OpOther__Group_6_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
         }
-        // InternalChartDSL.g:3262:3: ( rule__OpOther__Group_6_1_0__0 )
-        // InternalChartDSL.g:3262:4: rule__OpOther__Group_6_1_0__0
+        // InternalChartDSL.g:3303:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalChartDSL.g:3303:4: rule__OpOther__Group_6_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__OpOther__Group_6_1_0__0();
@@ -76930,11 +80847,11 @@
 
     // $ANTLR start synpred46_InternalChartDSL
     public final void synpred46_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3266:2: ( ( '<' ) )
-        // InternalChartDSL.g:3266:2: ( '<' )
+        // InternalChartDSL.g:3307:2: ( ( '<' ) )
+        // InternalChartDSL.g:3307:2: ( '<' )
         {
-        // InternalChartDSL.g:3266:2: ( '<' )
-        // InternalChartDSL.g:3267:3: '<'
+        // InternalChartDSL.g:3307:2: ( '<' )
+        // InternalChartDSL.g:3308:3: '<'
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
@@ -76950,17 +80867,17 @@
 
     // $ANTLR start synpred59_InternalChartDSL
     public final void synpred59_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3479:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
-        // InternalChartDSL.g:3479:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+        // InternalChartDSL.g:3520:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
+        // InternalChartDSL.g:3520:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
         {
-        // InternalChartDSL.g:3479:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-        // InternalChartDSL.g:3480:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalChartDSL.g:3520:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+        // InternalChartDSL.g:3521:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
         }
-        // InternalChartDSL.g:3481:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-        // InternalChartDSL.g:3481:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+        // InternalChartDSL.g:3522:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalChartDSL.g:3522:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -76980,17 +80897,17 @@
 
     // $ANTLR start synpred67_InternalChartDSL
     public final void synpred67_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3542:2: ( ( ( ruleXForLoopExpression ) ) )
-        // InternalChartDSL.g:3542:2: ( ( ruleXForLoopExpression ) )
+        // InternalChartDSL.g:3583:2: ( ( ( ruleXForLoopExpression ) ) )
+        // InternalChartDSL.g:3583:2: ( ( ruleXForLoopExpression ) )
         {
-        // InternalChartDSL.g:3542:2: ( ( ruleXForLoopExpression ) )
-        // InternalChartDSL.g:3543:3: ( ruleXForLoopExpression )
+        // InternalChartDSL.g:3583:2: ( ( ruleXForLoopExpression ) )
+        // InternalChartDSL.g:3584:3: ( ruleXForLoopExpression )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
         }
-        // InternalChartDSL.g:3544:3: ( ruleXForLoopExpression )
-        // InternalChartDSL.g:3544:4: ruleXForLoopExpression
+        // InternalChartDSL.g:3585:3: ( ruleXForLoopExpression )
+        // InternalChartDSL.g:3585:4: ruleXForLoopExpression
         {
         pushFollow(FOLLOW_2);
         ruleXForLoopExpression();
@@ -77010,11 +80927,11 @@
 
     // $ANTLR start synpred68_InternalChartDSL
     public final void synpred68_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3548:2: ( ( ruleXBasicForLoopExpression ) )
-        // InternalChartDSL.g:3548:2: ( ruleXBasicForLoopExpression )
+        // InternalChartDSL.g:3589:2: ( ( ruleXBasicForLoopExpression ) )
+        // InternalChartDSL.g:3589:2: ( ruleXBasicForLoopExpression )
         {
-        // InternalChartDSL.g:3548:2: ( ruleXBasicForLoopExpression )
-        // InternalChartDSL.g:3549:3: ruleXBasicForLoopExpression
+        // InternalChartDSL.g:3589:2: ( ruleXBasicForLoopExpression )
+        // InternalChartDSL.g:3590:3: ruleXBasicForLoopExpression
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -77034,17 +80951,17 @@
 
     // $ANTLR start synpred81_InternalChartDSL
     public final void synpred81_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3671:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
-        // InternalChartDSL.g:3671:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+        // InternalChartDSL.g:3712:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
+        // InternalChartDSL.g:3712:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
         {
-        // InternalChartDSL.g:3671:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-        // InternalChartDSL.g:3672:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalChartDSL.g:3712:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+        // InternalChartDSL.g:3713:3: ( rule__XSwitchExpression__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
         }
-        // InternalChartDSL.g:3673:3: ( rule__XSwitchExpression__Group_2_0__0 )
-        // InternalChartDSL.g:3673:4: rule__XSwitchExpression__Group_2_0__0
+        // InternalChartDSL.g:3714:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalChartDSL.g:3714:4: rule__XSwitchExpression__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_0__0();
@@ -77064,17 +80981,17 @@
 
     // $ANTLR start synpred85_InternalChartDSL
     public final void synpred85_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3755:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
-        // InternalChartDSL.g:3755:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+        // InternalChartDSL.g:3796:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
+        // InternalChartDSL.g:3796:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
         {
-        // InternalChartDSL.g:3755:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-        // InternalChartDSL.g:3756:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalChartDSL.g:3796:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+        // InternalChartDSL.g:3797:3: ( rule__XVariableDeclaration__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
         }
-        // InternalChartDSL.g:3757:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-        // InternalChartDSL.g:3757:4: rule__XVariableDeclaration__Group_2_0__0
+        // InternalChartDSL.g:3798:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalChartDSL.g:3798:4: rule__XVariableDeclaration__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XVariableDeclaration__Group_2_0__0();
@@ -77094,17 +81011,17 @@
 
     // $ANTLR start synpred86_InternalChartDSL
     public final void synpred86_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3776:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
-        // InternalChartDSL.g:3776:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+        // InternalChartDSL.g:3817:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
+        // InternalChartDSL.g:3817:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
         {
-        // InternalChartDSL.g:3776:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-        // InternalChartDSL.g:3777:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalChartDSL.g:3817:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+        // InternalChartDSL.g:3818:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
         }
-        // InternalChartDSL.g:3778:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-        // InternalChartDSL.g:3778:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+        // InternalChartDSL.g:3819:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalChartDSL.g:3819:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -77124,17 +81041,17 @@
 
     // $ANTLR start synpred92_InternalChartDSL
     public final void synpred92_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3857:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
-        // InternalChartDSL.g:3857:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+        // InternalChartDSL.g:3898:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
+        // InternalChartDSL.g:3898:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
         {
-        // InternalChartDSL.g:3857:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-        // InternalChartDSL.g:3858:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalChartDSL.g:3898:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+        // InternalChartDSL.g:3899:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
         }
-        // InternalChartDSL.g:3859:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-        // InternalChartDSL.g:3859:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+        // InternalChartDSL.g:3900:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalChartDSL.g:3900:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -77152,10 +81069,10 @@
     }
     // $ANTLR end synpred92_InternalChartDSL
 
-    // $ANTLR start synpred126_InternalChartDSL
-    public final void synpred126_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:5268:3: ( rule__ChartBubble__UnorderedGroup_2 )
-        // InternalChartDSL.g:5268:3: rule__ChartBubble__UnorderedGroup_2
+    // $ANTLR start synpred135_InternalChartDSL
+    public final void synpred135_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:5630:3: ( rule__ChartBubble__UnorderedGroup_2 )
+        // InternalChartDSL.g:5630:3: rule__ChartBubble__UnorderedGroup_2
         {
         pushFollow(FOLLOW_2);
         rule__ChartBubble__UnorderedGroup_2();
@@ -77165,12 +81082,12 @@
 
         }
     }
-    // $ANTLR end synpred126_InternalChartDSL
+    // $ANTLR end synpred135_InternalChartDSL
 
-    // $ANTLR start synpred146_InternalChartDSL
-    public final void synpred146_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:8272:3: ( rule__XAssignment__Group_1_1__0 )
-        // InternalChartDSL.g:8272:3: rule__XAssignment__Group_1_1__0
+    // $ANTLR start synpred164_InternalChartDSL
+    public final void synpred164_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:9282:3: ( rule__XAssignment__Group_1_1__0 )
+        // InternalChartDSL.g:9282:3: rule__XAssignment__Group_1_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XAssignment__Group_1_1__0();
@@ -77180,12 +81097,12 @@
 
         }
     }
-    // $ANTLR end synpred146_InternalChartDSL
+    // $ANTLR end synpred164_InternalChartDSL
 
-    // $ANTLR start synpred148_InternalChartDSL
-    public final void synpred148_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:8623:3: ( rule__XOrExpression__Group_1__0 )
-        // InternalChartDSL.g:8623:3: rule__XOrExpression__Group_1__0
+    // $ANTLR start synpred166_InternalChartDSL
+    public final void synpred166_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:9633:3: ( rule__XOrExpression__Group_1__0 )
+        // InternalChartDSL.g:9633:3: rule__XOrExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XOrExpression__Group_1__0();
@@ -77195,12 +81112,12 @@
 
         }
     }
-    // $ANTLR end synpred148_InternalChartDSL
+    // $ANTLR end synpred166_InternalChartDSL
 
-    // $ANTLR start synpred149_InternalChartDSL
-    public final void synpred149_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:8812:3: ( rule__XAndExpression__Group_1__0 )
-        // InternalChartDSL.g:8812:3: rule__XAndExpression__Group_1__0
+    // $ANTLR start synpred167_InternalChartDSL
+    public final void synpred167_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:9822:3: ( rule__XAndExpression__Group_1__0 )
+        // InternalChartDSL.g:9822:3: rule__XAndExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XAndExpression__Group_1__0();
@@ -77210,12 +81127,12 @@
 
         }
     }
-    // $ANTLR end synpred149_InternalChartDSL
+    // $ANTLR end synpred167_InternalChartDSL
 
-    // $ANTLR start synpred150_InternalChartDSL
-    public final void synpred150_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:9001:3: ( rule__XEqualityExpression__Group_1__0 )
-        // InternalChartDSL.g:9001:3: rule__XEqualityExpression__Group_1__0
+    // $ANTLR start synpred168_InternalChartDSL
+    public final void synpred168_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:10011:3: ( rule__XEqualityExpression__Group_1__0 )
+        // InternalChartDSL.g:10011:3: rule__XEqualityExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XEqualityExpression__Group_1__0();
@@ -77225,12 +81142,12 @@
 
         }
     }
-    // $ANTLR end synpred150_InternalChartDSL
+    // $ANTLR end synpred168_InternalChartDSL
 
-    // $ANTLR start synpred151_InternalChartDSL
-    public final void synpred151_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:9190:3: ( rule__XRelationalExpression__Alternatives_1 )
-        // InternalChartDSL.g:9190:3: rule__XRelationalExpression__Alternatives_1
+    // $ANTLR start synpred169_InternalChartDSL
+    public final void synpred169_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:10200:3: ( rule__XRelationalExpression__Alternatives_1 )
+        // InternalChartDSL.g:10200:3: rule__XRelationalExpression__Alternatives_1
         {
         pushFollow(FOLLOW_2);
         rule__XRelationalExpression__Alternatives_1();
@@ -77240,12 +81157,12 @@
 
         }
     }
-    // $ANTLR end synpred151_InternalChartDSL
+    // $ANTLR end synpred169_InternalChartDSL
 
-    // $ANTLR start synpred152_InternalChartDSL
-    public final void synpred152_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:9568:3: ( rule__XOtherOperatorExpression__Group_1__0 )
-        // InternalChartDSL.g:9568:3: rule__XOtherOperatorExpression__Group_1__0
+    // $ANTLR start synpred170_InternalChartDSL
+    public final void synpred170_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:10578:3: ( rule__XOtherOperatorExpression__Group_1__0 )
+        // InternalChartDSL.g:10578:3: rule__XOtherOperatorExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XOtherOperatorExpression__Group_1__0();
@@ -77255,12 +81172,12 @@
 
         }
     }
-    // $ANTLR end synpred152_InternalChartDSL
+    // $ANTLR end synpred170_InternalChartDSL
 
-    // $ANTLR start synpred153_InternalChartDSL
-    public final void synpred153_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:10081:3: ( rule__XAdditiveExpression__Group_1__0 )
-        // InternalChartDSL.g:10081:3: rule__XAdditiveExpression__Group_1__0
+    // $ANTLR start synpred171_InternalChartDSL
+    public final void synpred171_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:11091:3: ( rule__XAdditiveExpression__Group_1__0 )
+        // InternalChartDSL.g:11091:3: rule__XAdditiveExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XAdditiveExpression__Group_1__0();
@@ -77270,12 +81187,12 @@
 
         }
     }
-    // $ANTLR end synpred153_InternalChartDSL
+    // $ANTLR end synpred171_InternalChartDSL
 
-    // $ANTLR start synpred154_InternalChartDSL
-    public final void synpred154_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:10270:3: ( rule__XMultiplicativeExpression__Group_1__0 )
-        // InternalChartDSL.g:10270:3: rule__XMultiplicativeExpression__Group_1__0
+    // $ANTLR start synpred172_InternalChartDSL
+    public final void synpred172_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:11280:3: ( rule__XMultiplicativeExpression__Group_1__0 )
+        // InternalChartDSL.g:11280:3: rule__XMultiplicativeExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XMultiplicativeExpression__Group_1__0();
@@ -77285,12 +81202,12 @@
 
         }
     }
-    // $ANTLR end synpred154_InternalChartDSL
+    // $ANTLR end synpred172_InternalChartDSL
 
-    // $ANTLR start synpred155_InternalChartDSL
-    public final void synpred155_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:10540:3: ( rule__XCastedExpression__Group_1__0 )
-        // InternalChartDSL.g:10540:3: rule__XCastedExpression__Group_1__0
+    // $ANTLR start synpred173_InternalChartDSL
+    public final void synpred173_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:11550:3: ( rule__XCastedExpression__Group_1__0 )
+        // InternalChartDSL.g:11550:3: rule__XCastedExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XCastedExpression__Group_1__0();
@@ -77300,12 +81217,12 @@
 
         }
     }
-    // $ANTLR end synpred155_InternalChartDSL
+    // $ANTLR end synpred173_InternalChartDSL
 
-    // $ANTLR start synpred156_InternalChartDSL
-    public final void synpred156_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:10729:3: ( rule__XPostfixOperation__Group_1__0 )
-        // InternalChartDSL.g:10729:3: rule__XPostfixOperation__Group_1__0
+    // $ANTLR start synpred174_InternalChartDSL
+    public final void synpred174_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:11739:3: ( rule__XPostfixOperation__Group_1__0 )
+        // InternalChartDSL.g:11739:3: rule__XPostfixOperation__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XPostfixOperation__Group_1__0();
@@ -77315,12 +81232,12 @@
 
         }
     }
-    // $ANTLR end synpred156_InternalChartDSL
+    // $ANTLR end synpred174_InternalChartDSL
 
-    // $ANTLR start synpred157_InternalChartDSL
-    public final void synpred157_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:10864:3: ( rule__XMemberFeatureCall__Alternatives_1 )
-        // InternalChartDSL.g:10864:3: rule__XMemberFeatureCall__Alternatives_1
+    // $ANTLR start synpred175_InternalChartDSL
+    public final void synpred175_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:11874:3: ( rule__XMemberFeatureCall__Alternatives_1 )
+        // InternalChartDSL.g:11874:3: rule__XMemberFeatureCall__Alternatives_1
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__Alternatives_1();
@@ -77330,12 +81247,12 @@
 
         }
     }
-    // $ANTLR end synpred157_InternalChartDSL
+    // $ANTLR end synpred175_InternalChartDSL
 
-    // $ANTLR start synpred159_InternalChartDSL
-    public final void synpred159_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:11162:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
-        // InternalChartDSL.g:11162:3: rule__XMemberFeatureCall__Group_1_1_3__0
+    // $ANTLR start synpred177_InternalChartDSL
+    public final void synpred177_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:12172:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
+        // InternalChartDSL.g:12172:3: rule__XMemberFeatureCall__Group_1_1_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__Group_1_1_3__0();
@@ -77345,12 +81262,12 @@
 
         }
     }
-    // $ANTLR end synpred159_InternalChartDSL
+    // $ANTLR end synpred177_InternalChartDSL
 
-    // $ANTLR start synpred160_InternalChartDSL
-    public final void synpred160_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:11188:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
-        // InternalChartDSL.g:11188:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+    // $ANTLR start synpred178_InternalChartDSL
+    public final void synpred178_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:12198:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
+        // InternalChartDSL.g:12198:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -77360,12 +81277,12 @@
 
         }
     }
-    // $ANTLR end synpred160_InternalChartDSL
+    // $ANTLR end synpred178_InternalChartDSL
 
-    // $ANTLR start synpred168_InternalChartDSL
-    public final void synpred168_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:12161:3: ( rule__XClosure__Group_1__0 )
-        // InternalChartDSL.g:12161:3: rule__XClosure__Group_1__0
+    // $ANTLR start synpred186_InternalChartDSL
+    public final void synpred186_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:13171:3: ( rule__XClosure__Group_1__0 )
+        // InternalChartDSL.g:13171:3: rule__XClosure__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XClosure__Group_1__0();
@@ -77375,12 +81292,12 @@
 
         }
     }
-    // $ANTLR end synpred168_InternalChartDSL
+    // $ANTLR end synpred186_InternalChartDSL
 
-    // $ANTLR start synpred175_InternalChartDSL
-    public final void synpred175_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:13132:3: ( rule__XIfExpression__Group_6__0 )
-        // InternalChartDSL.g:13132:3: rule__XIfExpression__Group_6__0
+    // $ANTLR start synpred193_InternalChartDSL
+    public final void synpred193_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:14142:3: ( rule__XIfExpression__Group_6__0 )
+        // InternalChartDSL.g:14142:3: rule__XIfExpression__Group_6__0
         {
         pushFollow(FOLLOW_2);
         rule__XIfExpression__Group_6__0();
@@ -77390,12 +81307,12 @@
 
         }
     }
-    // $ANTLR end synpred175_InternalChartDSL
+    // $ANTLR end synpred193_InternalChartDSL
 
-    // $ANTLR start synpred178_InternalChartDSL
-    public final void synpred178_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:13592:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
-        // InternalChartDSL.g:13592:3: rule__XSwitchExpression__Group_2_1_0__0
+    // $ANTLR start synpred196_InternalChartDSL
+    public final void synpred196_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:14602:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
+        // InternalChartDSL.g:14602:3: rule__XSwitchExpression__Group_2_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_1_0__0();
@@ -77405,12 +81322,12 @@
 
         }
     }
-    // $ANTLR end synpred178_InternalChartDSL
+    // $ANTLR end synpred196_InternalChartDSL
 
-    // $ANTLR start synpred191_InternalChartDSL
-    public final void synpred191_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:15725:3: ( rule__XFeatureCall__Group_3__0 )
-        // InternalChartDSL.g:15725:3: rule__XFeatureCall__Group_3__0
+    // $ANTLR start synpred209_InternalChartDSL
+    public final void synpred209_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:16735:3: ( rule__XFeatureCall__Group_3__0 )
+        // InternalChartDSL.g:16735:3: rule__XFeatureCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__Group_3__0();
@@ -77420,12 +81337,12 @@
 
         }
     }
-    // $ANTLR end synpred191_InternalChartDSL
+    // $ANTLR end synpred209_InternalChartDSL
 
-    // $ANTLR start synpred192_InternalChartDSL
-    public final void synpred192_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:15751:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
-        // InternalChartDSL.g:15751:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+    // $ANTLR start synpred210_InternalChartDSL
+    public final void synpred210_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:16761:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
+        // InternalChartDSL.g:16761:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -77435,150 +81352,15 @@
 
         }
     }
-    // $ANTLR end synpred192_InternalChartDSL
-
-    // $ANTLR start synpred196_InternalChartDSL
-    public final void synpred196_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:16211:3: ( rule__XConstructorCall__Group_3__0 )
-        // InternalChartDSL.g:16211:3: rule__XConstructorCall__Group_3__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XConstructorCall__Group_3__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred196_InternalChartDSL
-
-    // $ANTLR start synpred197_InternalChartDSL
-    public final void synpred197_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:16238:3: ( rule__XConstructorCall__Group_4__0 )
-        // InternalChartDSL.g:16238:3: rule__XConstructorCall__Group_4__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XConstructorCall__Group_4__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred197_InternalChartDSL
-
-    // $ANTLR start synpred198_InternalChartDSL
-    public final void synpred198_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:16264:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
-        // InternalChartDSL.g:16264:3: rule__XConstructorCall__ArgumentsAssignment_5
-        {
-        pushFollow(FOLLOW_2);
-        rule__XConstructorCall__ArgumentsAssignment_5();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred198_InternalChartDSL
-
-    // $ANTLR start synpred203_InternalChartDSL
-    public final void synpred203_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:17155:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
-        // InternalChartDSL.g:17155:3: rule__XReturnExpression__ExpressionAssignment_2
-        {
-        pushFollow(FOLLOW_2);
-        rule__XReturnExpression__ExpressionAssignment_2();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred203_InternalChartDSL
-
-    // $ANTLR start synpred204_InternalChartDSL
-    public final void synpred204_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:17297:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-        // InternalChartDSL.g:17297:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred204_InternalChartDSL
-
-    // $ANTLR start synpred205_InternalChartDSL
-    public final void synpred205_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:17324:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
-        // InternalChartDSL.g:17324:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XTryCatchFinallyExpression__Group_3_0_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred205_InternalChartDSL
-
-    // $ANTLR start synpred206_InternalChartDSL
-    public final void synpred206_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:17837:3: ( rule__QualifiedName__Group_1__0 )
-        // InternalChartDSL.g:17837:3: rule__QualifiedName__Group_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__QualifiedName__Group_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred206_InternalChartDSL
-
-    // $ANTLR start synpred208_InternalChartDSL
-    public final void synpred208_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:18053:3: ( rule__JvmTypeReference__Group_0_1__0 )
-        // InternalChartDSL.g:18053:3: rule__JvmTypeReference__Group_0_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__JvmTypeReference__Group_0_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred208_InternalChartDSL
-
-    // $ANTLR start synpred212_InternalChartDSL
-    public final void synpred212_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:18512:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
-        // InternalChartDSL.g:18512:3: rule__JvmParameterizedTypeReference__Group_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__JvmParameterizedTypeReference__Group_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred212_InternalChartDSL
+    // $ANTLR end synpred210_InternalChartDSL
 
     // $ANTLR start synpred214_InternalChartDSL
     public final void synpred214_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:18647:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
-        // InternalChartDSL.g:18647:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+        // InternalChartDSL.g:17221:3: ( rule__XConstructorCall__Group_3__0 )
+        // InternalChartDSL.g:17221:3: rule__XConstructorCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
-        rule__JvmParameterizedTypeReference__Group_1_4__0();
+        rule__XConstructorCall__Group_3__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -77589,8 +81371,143 @@
 
     // $ANTLR start synpred215_InternalChartDSL
     public final void synpred215_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:18782:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
-        // InternalChartDSL.g:18782:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+        // InternalChartDSL.g:17248:3: ( rule__XConstructorCall__Group_4__0 )
+        // InternalChartDSL.g:17248:3: rule__XConstructorCall__Group_4__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XConstructorCall__Group_4__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred215_InternalChartDSL
+
+    // $ANTLR start synpred216_InternalChartDSL
+    public final void synpred216_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:17274:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
+        // InternalChartDSL.g:17274:3: rule__XConstructorCall__ArgumentsAssignment_5
+        {
+        pushFollow(FOLLOW_2);
+        rule__XConstructorCall__ArgumentsAssignment_5();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred216_InternalChartDSL
+
+    // $ANTLR start synpred221_InternalChartDSL
+    public final void synpred221_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:18165:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
+        // InternalChartDSL.g:18165:3: rule__XReturnExpression__ExpressionAssignment_2
+        {
+        pushFollow(FOLLOW_2);
+        rule__XReturnExpression__ExpressionAssignment_2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred221_InternalChartDSL
+
+    // $ANTLR start synpred222_InternalChartDSL
+    public final void synpred222_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:18307:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+        // InternalChartDSL.g:18307:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred222_InternalChartDSL
+
+    // $ANTLR start synpred223_InternalChartDSL
+    public final void synpred223_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:18334:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
+        // InternalChartDSL.g:18334:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XTryCatchFinallyExpression__Group_3_0_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred223_InternalChartDSL
+
+    // $ANTLR start synpred224_InternalChartDSL
+    public final void synpred224_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:18847:3: ( rule__QualifiedName__Group_1__0 )
+        // InternalChartDSL.g:18847:3: rule__QualifiedName__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__QualifiedName__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred224_InternalChartDSL
+
+    // $ANTLR start synpred226_InternalChartDSL
+    public final void synpred226_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:19063:3: ( rule__JvmTypeReference__Group_0_1__0 )
+        // InternalChartDSL.g:19063:3: rule__JvmTypeReference__Group_0_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__JvmTypeReference__Group_0_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred226_InternalChartDSL
+
+    // $ANTLR start synpred230_InternalChartDSL
+    public final void synpred230_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:19522:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
+        // InternalChartDSL.g:19522:3: rule__JvmParameterizedTypeReference__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__JvmParameterizedTypeReference__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred230_InternalChartDSL
+
+    // $ANTLR start synpred232_InternalChartDSL
+    public final void synpred232_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:19657:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
+        // InternalChartDSL.g:19657:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__JvmParameterizedTypeReference__Group_1_4__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred232_InternalChartDSL
+
+    // $ANTLR start synpred233_InternalChartDSL
+    public final void synpred233_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:19792:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
+        // InternalChartDSL.g:19792:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -77600,12 +81517,12 @@
 
         }
     }
-    // $ANTLR end synpred215_InternalChartDSL
+    // $ANTLR end synpred233_InternalChartDSL
 
-    // $ANTLR start synpred220_InternalChartDSL
-    public final void synpred220_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19580:2: ( rule__Chart__UnorderedGroup_6__0 )
-        // InternalChartDSL.g:19580:2: rule__Chart__UnorderedGroup_6__0
+    // $ANTLR start synpred238_InternalChartDSL
+    public final void synpred238_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20590:2: ( rule__Chart__UnorderedGroup_6__0 )
+        // InternalChartDSL.g:20590:2: rule__Chart__UnorderedGroup_6__0
         {
         pushFollow(FOLLOW_2);
         rule__Chart__UnorderedGroup_6__0();
@@ -77615,32 +81532,32 @@
 
         }
     }
-    // $ANTLR end synpred220_InternalChartDSL
+    // $ANTLR end synpred238_InternalChartDSL
 
-    // $ANTLR start synpred221_InternalChartDSL
-    public final void synpred221_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19595:3: ( ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) ) )
-        // InternalChartDSL.g:19595:3: ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) )
+    // $ANTLR start synpred239_InternalChartDSL
+    public final void synpred239_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20605:3: ( ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) ) )
+        // InternalChartDSL.g:20605:3: ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) )
         {
-        // InternalChartDSL.g:19595:3: ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) )
-        // InternalChartDSL.g:19596:4: {...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) )
+        // InternalChartDSL.g:20605:3: ({...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) ) )
+        // InternalChartDSL.g:20606:4: {...}? => ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) )
         {
         if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred221_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0)");
+            throw new FailedPredicateException(input, "synpred239_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0)");
         }
-        // InternalChartDSL.g:19596:101: ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) )
-        // InternalChartDSL.g:19597:5: ( ( rule__Chart__SelectByIdAssignment_6_0 ) )
+        // InternalChartDSL.g:20606:101: ( ( ( rule__Chart__SelectByIdAssignment_6_0 ) ) )
+        // InternalChartDSL.g:20607:5: ( ( rule__Chart__SelectByIdAssignment_6_0 ) )
         {
         getUnorderedGroupHelper().select(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0);
-        // InternalChartDSL.g:19603:5: ( ( rule__Chart__SelectByIdAssignment_6_0 ) )
-        // InternalChartDSL.g:19604:6: ( rule__Chart__SelectByIdAssignment_6_0 )
+        // InternalChartDSL.g:20613:5: ( ( rule__Chart__SelectByIdAssignment_6_0 ) )
+        // InternalChartDSL.g:20614:6: ( rule__Chart__SelectByIdAssignment_6_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getChartAccess().getSelectByIdAssignment_6_0()); 
         }
-        // InternalChartDSL.g:19605:6: ( rule__Chart__SelectByIdAssignment_6_0 )
-        // InternalChartDSL.g:19605:7: rule__Chart__SelectByIdAssignment_6_0
+        // InternalChartDSL.g:20615:6: ( rule__Chart__SelectByIdAssignment_6_0 )
+        // InternalChartDSL.g:20615:7: rule__Chart__SelectByIdAssignment_6_0
         {
         pushFollow(FOLLOW_2);
         rule__Chart__SelectByIdAssignment_6_0();
@@ -77662,12 +81579,12 @@
 
         }
     }
-    // $ANTLR end synpred221_InternalChartDSL
+    // $ANTLR end synpred239_InternalChartDSL
 
-    // $ANTLR start synpred222_InternalChartDSL
-    public final void synpred222_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19639:2: ( rule__Chart__UnorderedGroup_6__1 )
-        // InternalChartDSL.g:19639:2: rule__Chart__UnorderedGroup_6__1
+    // $ANTLR start synpred240_InternalChartDSL
+    public final void synpred240_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20649:2: ( rule__Chart__UnorderedGroup_6__1 )
+        // InternalChartDSL.g:20649:2: rule__Chart__UnorderedGroup_6__1
         {
         pushFollow(FOLLOW_2);
         rule__Chart__UnorderedGroup_6__1();
@@ -77677,12 +81594,12 @@
 
         }
     }
-    // $ANTLR end synpred222_InternalChartDSL
+    // $ANTLR end synpred240_InternalChartDSL
 
-    // $ANTLR start synpred223_InternalChartDSL
-    public final void synpred223_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19663:2: ( rule__ChartBar__UnorderedGroup_2__0 )
-        // InternalChartDSL.g:19663:2: rule__ChartBar__UnorderedGroup_2__0
+    // $ANTLR start synpred241_InternalChartDSL
+    public final void synpred241_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20673:2: ( rule__ChartBar__UnorderedGroup_2__0 )
+        // InternalChartDSL.g:20673:2: rule__ChartBar__UnorderedGroup_2__0
         {
         pushFollow(FOLLOW_2);
         rule__ChartBar__UnorderedGroup_2__0();
@@ -77692,32 +81609,32 @@
 
         }
     }
-    // $ANTLR end synpred223_InternalChartDSL
+    // $ANTLR end synpred241_InternalChartDSL
 
-    // $ANTLR start synpred224_InternalChartDSL
-    public final void synpred224_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19678:3: ( ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) ) )
-        // InternalChartDSL.g:19678:3: ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) )
+    // $ANTLR start synpred242_InternalChartDSL
+    public final void synpred242_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20688:3: ( ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) ) )
+        // InternalChartDSL.g:20688:3: ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) )
         {
-        // InternalChartDSL.g:19678:3: ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) )
-        // InternalChartDSL.g:19679:4: {...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) )
+        // InternalChartDSL.g:20688:3: ({...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) ) )
+        // InternalChartDSL.g:20689:4: {...}? => ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) )
         {
         if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred224_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0)");
+            throw new FailedPredicateException(input, "synpred242_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0)");
         }
-        // InternalChartDSL.g:19679:104: ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) )
-        // InternalChartDSL.g:19680:5: ( ( rule__ChartBar__ShadowAssignment_2_0 ) )
+        // InternalChartDSL.g:20689:104: ( ( ( rule__ChartBar__ShadowAssignment_2_0 ) ) )
+        // InternalChartDSL.g:20690:5: ( ( rule__ChartBar__ShadowAssignment_2_0 ) )
         {
         getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0);
-        // InternalChartDSL.g:19686:5: ( ( rule__ChartBar__ShadowAssignment_2_0 ) )
-        // InternalChartDSL.g:19687:6: ( rule__ChartBar__ShadowAssignment_2_0 )
+        // InternalChartDSL.g:20696:5: ( ( rule__ChartBar__ShadowAssignment_2_0 ) )
+        // InternalChartDSL.g:20697:6: ( rule__ChartBar__ShadowAssignment_2_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getChartBarAccess().getShadowAssignment_2_0()); 
         }
-        // InternalChartDSL.g:19688:6: ( rule__ChartBar__ShadowAssignment_2_0 )
-        // InternalChartDSL.g:19688:7: rule__ChartBar__ShadowAssignment_2_0
+        // InternalChartDSL.g:20698:6: ( rule__ChartBar__ShadowAssignment_2_0 )
+        // InternalChartDSL.g:20698:7: rule__ChartBar__ShadowAssignment_2_0
         {
         pushFollow(FOLLOW_2);
         rule__ChartBar__ShadowAssignment_2_0();
@@ -77739,32 +81656,32 @@
 
         }
     }
-    // $ANTLR end synpred224_InternalChartDSL
+    // $ANTLR end synpred242_InternalChartDSL
 
-    // $ANTLR start synpred225_InternalChartDSL
-    public final void synpred225_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19693:3: ( ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) ) )
-        // InternalChartDSL.g:19693:3: ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) )
+    // $ANTLR start synpred243_InternalChartDSL
+    public final void synpred243_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20703:3: ( ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) ) )
+        // InternalChartDSL.g:20703:3: ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) )
         {
-        // InternalChartDSL.g:19693:3: ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) )
-        // InternalChartDSL.g:19694:4: {...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) )
+        // InternalChartDSL.g:20703:3: ({...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) ) )
+        // InternalChartDSL.g:20704:4: {...}? => ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) )
         {
         if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred225_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1)");
+            throw new FailedPredicateException(input, "synpred243_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1)");
         }
-        // InternalChartDSL.g:19694:104: ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) )
-        // InternalChartDSL.g:19695:5: ( ( rule__ChartBar__AnimatedAssignment_2_1 ) )
+        // InternalChartDSL.g:20704:104: ( ( ( rule__ChartBar__AnimatedAssignment_2_1 ) ) )
+        // InternalChartDSL.g:20705:5: ( ( rule__ChartBar__AnimatedAssignment_2_1 ) )
         {
         getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1);
-        // InternalChartDSL.g:19701:5: ( ( rule__ChartBar__AnimatedAssignment_2_1 ) )
-        // InternalChartDSL.g:19702:6: ( rule__ChartBar__AnimatedAssignment_2_1 )
+        // InternalChartDSL.g:20711:5: ( ( rule__ChartBar__AnimatedAssignment_2_1 ) )
+        // InternalChartDSL.g:20712:6: ( rule__ChartBar__AnimatedAssignment_2_1 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getChartBarAccess().getAnimatedAssignment_2_1()); 
         }
-        // InternalChartDSL.g:19703:6: ( rule__ChartBar__AnimatedAssignment_2_1 )
-        // InternalChartDSL.g:19703:7: rule__ChartBar__AnimatedAssignment_2_1
+        // InternalChartDSL.g:20713:6: ( rule__ChartBar__AnimatedAssignment_2_1 )
+        // InternalChartDSL.g:20713:7: rule__ChartBar__AnimatedAssignment_2_1
         {
         pushFollow(FOLLOW_2);
         rule__ChartBar__AnimatedAssignment_2_1();
@@ -77786,529 +81703,35 @@
 
         }
     }
-    // $ANTLR end synpred225_InternalChartDSL
-
-    // $ANTLR start synpred226_InternalChartDSL
-    public final void synpred226_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19708:3: ( ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) ) )
-        // InternalChartDSL.g:19708:3: ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) )
-        {
-        // InternalChartDSL.g:19708:3: ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) )
-        // InternalChartDSL.g:19709:4: {...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred226_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2)");
-        }
-        // InternalChartDSL.g:19709:104: ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) )
-        // InternalChartDSL.g:19710:5: ( ( rule__ChartBar__SwappedAssignment_2_2 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2);
-        // InternalChartDSL.g:19716:5: ( ( rule__ChartBar__SwappedAssignment_2_2 ) )
-        // InternalChartDSL.g:19717:6: ( rule__ChartBar__SwappedAssignment_2_2 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getChartBarAccess().getSwappedAssignment_2_2()); 
-        }
-        // InternalChartDSL.g:19718:6: ( rule__ChartBar__SwappedAssignment_2_2 )
-        // InternalChartDSL.g:19718:7: rule__ChartBar__SwappedAssignment_2_2
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartBar__SwappedAssignment_2_2();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-    }
-    // $ANTLR end synpred226_InternalChartDSL
-
-    // $ANTLR start synpred227_InternalChartDSL
-    public final void synpred227_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19752:2: ( rule__ChartBar__UnorderedGroup_2__1 )
-        // InternalChartDSL.g:19752:2: rule__ChartBar__UnorderedGroup_2__1
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartBar__UnorderedGroup_2__1();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred227_InternalChartDSL
-
-    // $ANTLR start synpred228_InternalChartDSL
-    public final void synpred228_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19764:2: ( rule__ChartBar__UnorderedGroup_2__2 )
-        // InternalChartDSL.g:19764:2: rule__ChartBar__UnorderedGroup_2__2
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartBar__UnorderedGroup_2__2();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred228_InternalChartDSL
-
-    // $ANTLR start synpred229_InternalChartDSL
-    public final void synpred229_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19776:2: ( rule__ChartBar__UnorderedGroup_2__3 )
-        // InternalChartDSL.g:19776:2: rule__ChartBar__UnorderedGroup_2__3
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartBar__UnorderedGroup_2__3();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred229_InternalChartDSL
-
-    // $ANTLR start synpred230_InternalChartDSL
-    public final void synpred230_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19800:2: ( rule__ChartLine__UnorderedGroup_2__0 )
-        // InternalChartDSL.g:19800:2: rule__ChartLine__UnorderedGroup_2__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartLine__UnorderedGroup_2__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred230_InternalChartDSL
-
-    // $ANTLR start synpred231_InternalChartDSL
-    public final void synpred231_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19815:3: ( ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) ) )
-        // InternalChartDSL.g:19815:3: ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) )
-        {
-        // InternalChartDSL.g:19815:3: ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) )
-        // InternalChartDSL.g:19816:4: {...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred231_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0)");
-        }
-        // InternalChartDSL.g:19816:105: ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) )
-        // InternalChartDSL.g:19817:5: ( ( rule__ChartLine__AnimatedAssignment_2_0 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0);
-        // InternalChartDSL.g:19823:5: ( ( rule__ChartLine__AnimatedAssignment_2_0 ) )
-        // InternalChartDSL.g:19824:6: ( rule__ChartLine__AnimatedAssignment_2_0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getChartLineAccess().getAnimatedAssignment_2_0()); 
-        }
-        // InternalChartDSL.g:19825:6: ( rule__ChartLine__AnimatedAssignment_2_0 )
-        // InternalChartDSL.g:19825:7: rule__ChartLine__AnimatedAssignment_2_0
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartLine__AnimatedAssignment_2_0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-    }
-    // $ANTLR end synpred231_InternalChartDSL
-
-    // $ANTLR start synpred232_InternalChartDSL
-    public final void synpred232_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19830:3: ( ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) ) )
-        // InternalChartDSL.g:19830:3: ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) )
-        {
-        // InternalChartDSL.g:19830:3: ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) )
-        // InternalChartDSL.g:19831:4: {...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred232_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1)");
-        }
-        // InternalChartDSL.g:19831:105: ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) )
-        // InternalChartDSL.g:19832:5: ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1);
-        // InternalChartDSL.g:19838:5: ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) )
-        // InternalChartDSL.g:19839:6: ( rule__ChartLine__ShowMarkerAssignment_2_1 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getChartLineAccess().getShowMarkerAssignment_2_1()); 
-        }
-        // InternalChartDSL.g:19840:6: ( rule__ChartLine__ShowMarkerAssignment_2_1 )
-        // InternalChartDSL.g:19840:7: rule__ChartLine__ShowMarkerAssignment_2_1
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartLine__ShowMarkerAssignment_2_1();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-    }
-    // $ANTLR end synpred232_InternalChartDSL
-
-    // $ANTLR start synpred233_InternalChartDSL
-    public final void synpred233_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19845:3: ( ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) ) )
-        // InternalChartDSL.g:19845:3: ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) )
-        {
-        // InternalChartDSL.g:19845:3: ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) )
-        // InternalChartDSL.g:19846:4: {...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred233_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2)");
-        }
-        // InternalChartDSL.g:19846:105: ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) )
-        // InternalChartDSL.g:19847:5: ( ( rule__ChartLine__TrendLineAssignment_2_2 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2);
-        // InternalChartDSL.g:19853:5: ( ( rule__ChartLine__TrendLineAssignment_2_2 ) )
-        // InternalChartDSL.g:19854:6: ( rule__ChartLine__TrendLineAssignment_2_2 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getChartLineAccess().getTrendLineAssignment_2_2()); 
-        }
-        // InternalChartDSL.g:19855:6: ( rule__ChartLine__TrendLineAssignment_2_2 )
-        // InternalChartDSL.g:19855:7: rule__ChartLine__TrendLineAssignment_2_2
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartLine__TrendLineAssignment_2_2();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-    }
-    // $ANTLR end synpred233_InternalChartDSL
-
-    // $ANTLR start synpred234_InternalChartDSL
-    public final void synpred234_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19860:3: ( ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) ) )
-        // InternalChartDSL.g:19860:3: ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) )
-        {
-        // InternalChartDSL.g:19860:3: ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) )
-        // InternalChartDSL.g:19861:4: {...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred234_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3)");
-        }
-        // InternalChartDSL.g:19861:105: ( ( ( rule__ChartLine__Group_2_3__0 ) ) )
-        // InternalChartDSL.g:19862:5: ( ( rule__ChartLine__Group_2_3__0 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3);
-        // InternalChartDSL.g:19868:5: ( ( rule__ChartLine__Group_2_3__0 ) )
-        // InternalChartDSL.g:19869:6: ( rule__ChartLine__Group_2_3__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getChartLineAccess().getGroup_2_3()); 
-        }
-        // InternalChartDSL.g:19870:6: ( rule__ChartLine__Group_2_3__0 )
-        // InternalChartDSL.g:19870:7: rule__ChartLine__Group_2_3__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartLine__Group_2_3__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-    }
-    // $ANTLR end synpred234_InternalChartDSL
-
-    // $ANTLR start synpred235_InternalChartDSL
-    public final void synpred235_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19875:3: ( ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) ) )
-        // InternalChartDSL.g:19875:3: ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) )
-        {
-        // InternalChartDSL.g:19875:3: ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) )
-        // InternalChartDSL.g:19876:4: {...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred235_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4)");
-        }
-        // InternalChartDSL.g:19876:105: ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) )
-        // InternalChartDSL.g:19877:5: ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4);
-        // InternalChartDSL.g:19883:5: ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) )
-        // InternalChartDSL.g:19884:6: ( rule__ChartLine__FillToZeroAssignment_2_4 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getChartLineAccess().getFillToZeroAssignment_2_4()); 
-        }
-        // InternalChartDSL.g:19885:6: ( rule__ChartLine__FillToZeroAssignment_2_4 )
-        // InternalChartDSL.g:19885:7: rule__ChartLine__FillToZeroAssignment_2_4
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartLine__FillToZeroAssignment_2_4();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-    }
-    // $ANTLR end synpred235_InternalChartDSL
-
-    // $ANTLR start synpred236_InternalChartDSL
-    public final void synpred236_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19919:2: ( rule__ChartLine__UnorderedGroup_2__1 )
-        // InternalChartDSL.g:19919:2: rule__ChartLine__UnorderedGroup_2__1
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartLine__UnorderedGroup_2__1();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred236_InternalChartDSL
-
-    // $ANTLR start synpred237_InternalChartDSL
-    public final void synpred237_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19931:2: ( rule__ChartLine__UnorderedGroup_2__2 )
-        // InternalChartDSL.g:19931:2: rule__ChartLine__UnorderedGroup_2__2
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartLine__UnorderedGroup_2__2();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred237_InternalChartDSL
-
-    // $ANTLR start synpred238_InternalChartDSL
-    public final void synpred238_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19943:2: ( rule__ChartLine__UnorderedGroup_2__3 )
-        // InternalChartDSL.g:19943:2: rule__ChartLine__UnorderedGroup_2__3
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartLine__UnorderedGroup_2__3();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred238_InternalChartDSL
-
-    // $ANTLR start synpred239_InternalChartDSL
-    public final void synpred239_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19955:2: ( rule__ChartLine__UnorderedGroup_2__4 )
-        // InternalChartDSL.g:19955:2: rule__ChartLine__UnorderedGroup_2__4
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartLine__UnorderedGroup_2__4();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred239_InternalChartDSL
-
-    // $ANTLR start synpred240_InternalChartDSL
-    public final void synpred240_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:19967:2: ( rule__ChartLine__UnorderedGroup_2__5 )
-        // InternalChartDSL.g:19967:2: rule__ChartLine__UnorderedGroup_2__5
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartLine__UnorderedGroup_2__5();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred240_InternalChartDSL
-
-    // $ANTLR start synpred241_InternalChartDSL
-    public final void synpred241_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:20006:3: ( ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) ) )
-        // InternalChartDSL.g:20006:3: ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) )
-        {
-        // InternalChartDSL.g:20006:3: ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) )
-        // InternalChartDSL.g:20007:4: {...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) )
-        {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
-            if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred241_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0)");
-        }
-        // InternalChartDSL.g:20007:107: ( ( ( rule__ChartBubble__Group_2_0__0 ) ) )
-        // InternalChartDSL.g:20008:5: ( ( rule__ChartBubble__Group_2_0__0 ) )
-        {
-        getUnorderedGroupHelper().select(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0);
-        // InternalChartDSL.g:20014:5: ( ( rule__ChartBubble__Group_2_0__0 ) )
-        // InternalChartDSL.g:20015:6: ( rule__ChartBubble__Group_2_0__0 )
-        {
-        if ( state.backtracking==0 ) {
-           before(grammarAccess.getChartBubbleAccess().getGroup_2_0()); 
-        }
-        // InternalChartDSL.g:20016:6: ( rule__ChartBubble__Group_2_0__0 )
-        // InternalChartDSL.g:20016:7: rule__ChartBubble__Group_2_0__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartBubble__Group_2_0__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-
-
-        }
-    }
-    // $ANTLR end synpred241_InternalChartDSL
-
-    // $ANTLR start synpred242_InternalChartDSL
-    public final void synpred242_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:20050:2: ( rule__ChartBubble__UnorderedGroup_2__1 )
-        // InternalChartDSL.g:20050:2: rule__ChartBubble__UnorderedGroup_2__1
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartBubble__UnorderedGroup_2__1();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred242_InternalChartDSL
-
-    // $ANTLR start synpred243_InternalChartDSL
-    public final void synpred243_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:20074:2: ( rule__ChartGauge__UnorderedGroup_2__0 )
-        // InternalChartDSL.g:20074:2: rule__ChartGauge__UnorderedGroup_2__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__ChartGauge__UnorderedGroup_2__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
     // $ANTLR end synpred243_InternalChartDSL
 
     // $ANTLR start synpred244_InternalChartDSL
     public final void synpred244_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:20089:3: ( ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) ) )
-        // InternalChartDSL.g:20089:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) )
+        // InternalChartDSL.g:20718:3: ( ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) ) )
+        // InternalChartDSL.g:20718:3: ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) )
         {
-        // InternalChartDSL.g:20089:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) )
-        // InternalChartDSL.g:20090:4: {...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) )
+        // InternalChartDSL.g:20718:3: ({...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) ) )
+        // InternalChartDSL.g:20719:4: {...}? => ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) )
         {
-        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred244_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0)");
+            throw new FailedPredicateException(input, "synpred244_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2)");
         }
-        // InternalChartDSL.g:20090:106: ( ( ( rule__ChartGauge__Group_2_0__0 ) ) )
-        // InternalChartDSL.g:20091:5: ( ( rule__ChartGauge__Group_2_0__0 ) )
+        // InternalChartDSL.g:20719:104: ( ( ( rule__ChartBar__SwappedAssignment_2_2 ) ) )
+        // InternalChartDSL.g:20720:5: ( ( rule__ChartBar__SwappedAssignment_2_2 ) )
         {
-        getUnorderedGroupHelper().select(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0);
-        // InternalChartDSL.g:20097:5: ( ( rule__ChartGauge__Group_2_0__0 ) )
-        // InternalChartDSL.g:20098:6: ( rule__ChartGauge__Group_2_0__0 )
+        getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2);
+        // InternalChartDSL.g:20726:5: ( ( rule__ChartBar__SwappedAssignment_2_2 ) )
+        // InternalChartDSL.g:20727:6: ( rule__ChartBar__SwappedAssignment_2_2 )
         {
         if ( state.backtracking==0 ) {
-           before(grammarAccess.getChartGaugeAccess().getGroup_2_0()); 
+           before(grammarAccess.getChartBarAccess().getSwappedAssignment_2_2()); 
         }
-        // InternalChartDSL.g:20099:6: ( rule__ChartGauge__Group_2_0__0 )
-        // InternalChartDSL.g:20099:7: rule__ChartGauge__Group_2_0__0
+        // InternalChartDSL.g:20728:6: ( rule__ChartBar__SwappedAssignment_2_2 )
+        // InternalChartDSL.g:20728:7: rule__ChartBar__SwappedAssignment_2_2
         {
         pushFollow(FOLLOW_2);
-        rule__ChartGauge__Group_2_0__0();
+        rule__ChartBar__SwappedAssignment_2_2();
 
         state._fsp--;
         if (state.failed) return ;
@@ -78331,28 +81754,522 @@
 
     // $ANTLR start synpred245_InternalChartDSL
     public final void synpred245_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:20104:3: ( ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) ) )
-        // InternalChartDSL.g:20104:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) )
+        // InternalChartDSL.g:20762:2: ( rule__ChartBar__UnorderedGroup_2__1 )
+        // InternalChartDSL.g:20762:2: rule__ChartBar__UnorderedGroup_2__1
         {
-        // InternalChartDSL.g:20104:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) )
-        // InternalChartDSL.g:20105:4: {...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) )
+        pushFollow(FOLLOW_2);
+        rule__ChartBar__UnorderedGroup_2__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred245_InternalChartDSL
+
+    // $ANTLR start synpred246_InternalChartDSL
+    public final void synpred246_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20774:2: ( rule__ChartBar__UnorderedGroup_2__2 )
+        // InternalChartDSL.g:20774:2: rule__ChartBar__UnorderedGroup_2__2
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartBar__UnorderedGroup_2__2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred246_InternalChartDSL
+
+    // $ANTLR start synpred247_InternalChartDSL
+    public final void synpred247_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20786:2: ( rule__ChartBar__UnorderedGroup_2__3 )
+        // InternalChartDSL.g:20786:2: rule__ChartBar__UnorderedGroup_2__3
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartBar__UnorderedGroup_2__3();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred247_InternalChartDSL
+
+    // $ANTLR start synpred248_InternalChartDSL
+    public final void synpred248_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20810:2: ( rule__ChartLine__UnorderedGroup_2__0 )
+        // InternalChartDSL.g:20810:2: rule__ChartLine__UnorderedGroup_2__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartLine__UnorderedGroup_2__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred248_InternalChartDSL
+
+    // $ANTLR start synpred249_InternalChartDSL
+    public final void synpred249_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20825:3: ( ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) ) )
+        // InternalChartDSL.g:20825:3: ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) )
+        {
+        // InternalChartDSL.g:20825:3: ({...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) ) )
+        // InternalChartDSL.g:20826:4: {...}? => ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred249_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0)");
+        }
+        // InternalChartDSL.g:20826:105: ( ( ( rule__ChartLine__AnimatedAssignment_2_0 ) ) )
+        // InternalChartDSL.g:20827:5: ( ( rule__ChartLine__AnimatedAssignment_2_0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0);
+        // InternalChartDSL.g:20833:5: ( ( rule__ChartLine__AnimatedAssignment_2_0 ) )
+        // InternalChartDSL.g:20834:6: ( rule__ChartLine__AnimatedAssignment_2_0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getChartLineAccess().getAnimatedAssignment_2_0()); 
+        }
+        // InternalChartDSL.g:20835:6: ( rule__ChartLine__AnimatedAssignment_2_0 )
+        // InternalChartDSL.g:20835:7: rule__ChartLine__AnimatedAssignment_2_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartLine__AnimatedAssignment_2_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred249_InternalChartDSL
+
+    // $ANTLR start synpred250_InternalChartDSL
+    public final void synpred250_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20840:3: ( ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) ) )
+        // InternalChartDSL.g:20840:3: ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) )
+        {
+        // InternalChartDSL.g:20840:3: ({...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) ) )
+        // InternalChartDSL.g:20841:4: {...}? => ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred250_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1)");
+        }
+        // InternalChartDSL.g:20841:105: ( ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) ) )
+        // InternalChartDSL.g:20842:5: ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1);
+        // InternalChartDSL.g:20848:5: ( ( rule__ChartLine__ShowMarkerAssignment_2_1 ) )
+        // InternalChartDSL.g:20849:6: ( rule__ChartLine__ShowMarkerAssignment_2_1 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getChartLineAccess().getShowMarkerAssignment_2_1()); 
+        }
+        // InternalChartDSL.g:20850:6: ( rule__ChartLine__ShowMarkerAssignment_2_1 )
+        // InternalChartDSL.g:20850:7: rule__ChartLine__ShowMarkerAssignment_2_1
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartLine__ShowMarkerAssignment_2_1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred250_InternalChartDSL
+
+    // $ANTLR start synpred251_InternalChartDSL
+    public final void synpred251_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20855:3: ( ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) ) )
+        // InternalChartDSL.g:20855:3: ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) )
+        {
+        // InternalChartDSL.g:20855:3: ({...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) ) )
+        // InternalChartDSL.g:20856:4: {...}? => ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred251_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2)");
+        }
+        // InternalChartDSL.g:20856:105: ( ( ( rule__ChartLine__TrendLineAssignment_2_2 ) ) )
+        // InternalChartDSL.g:20857:5: ( ( rule__ChartLine__TrendLineAssignment_2_2 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2);
+        // InternalChartDSL.g:20863:5: ( ( rule__ChartLine__TrendLineAssignment_2_2 ) )
+        // InternalChartDSL.g:20864:6: ( rule__ChartLine__TrendLineAssignment_2_2 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getChartLineAccess().getTrendLineAssignment_2_2()); 
+        }
+        // InternalChartDSL.g:20865:6: ( rule__ChartLine__TrendLineAssignment_2_2 )
+        // InternalChartDSL.g:20865:7: rule__ChartLine__TrendLineAssignment_2_2
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartLine__TrendLineAssignment_2_2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred251_InternalChartDSL
+
+    // $ANTLR start synpred252_InternalChartDSL
+    public final void synpred252_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20870:3: ( ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) ) )
+        // InternalChartDSL.g:20870:3: ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) )
+        {
+        // InternalChartDSL.g:20870:3: ({...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) ) )
+        // InternalChartDSL.g:20871:4: {...}? => ( ( ( rule__ChartLine__Group_2_3__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred252_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3)");
+        }
+        // InternalChartDSL.g:20871:105: ( ( ( rule__ChartLine__Group_2_3__0 ) ) )
+        // InternalChartDSL.g:20872:5: ( ( rule__ChartLine__Group_2_3__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3);
+        // InternalChartDSL.g:20878:5: ( ( rule__ChartLine__Group_2_3__0 ) )
+        // InternalChartDSL.g:20879:6: ( rule__ChartLine__Group_2_3__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getChartLineAccess().getGroup_2_3()); 
+        }
+        // InternalChartDSL.g:20880:6: ( rule__ChartLine__Group_2_3__0 )
+        // InternalChartDSL.g:20880:7: rule__ChartLine__Group_2_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartLine__Group_2_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred252_InternalChartDSL
+
+    // $ANTLR start synpred253_InternalChartDSL
+    public final void synpred253_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20885:3: ( ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) ) )
+        // InternalChartDSL.g:20885:3: ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) )
+        {
+        // InternalChartDSL.g:20885:3: ({...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) ) )
+        // InternalChartDSL.g:20886:4: {...}? => ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred253_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4)");
+        }
+        // InternalChartDSL.g:20886:105: ( ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) ) )
+        // InternalChartDSL.g:20887:5: ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4);
+        // InternalChartDSL.g:20893:5: ( ( rule__ChartLine__FillToZeroAssignment_2_4 ) )
+        // InternalChartDSL.g:20894:6: ( rule__ChartLine__FillToZeroAssignment_2_4 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getChartLineAccess().getFillToZeroAssignment_2_4()); 
+        }
+        // InternalChartDSL.g:20895:6: ( rule__ChartLine__FillToZeroAssignment_2_4 )
+        // InternalChartDSL.g:20895:7: rule__ChartLine__FillToZeroAssignment_2_4
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartLine__FillToZeroAssignment_2_4();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred253_InternalChartDSL
+
+    // $ANTLR start synpred254_InternalChartDSL
+    public final void synpred254_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20929:2: ( rule__ChartLine__UnorderedGroup_2__1 )
+        // InternalChartDSL.g:20929:2: rule__ChartLine__UnorderedGroup_2__1
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartLine__UnorderedGroup_2__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred254_InternalChartDSL
+
+    // $ANTLR start synpred255_InternalChartDSL
+    public final void synpred255_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20941:2: ( rule__ChartLine__UnorderedGroup_2__2 )
+        // InternalChartDSL.g:20941:2: rule__ChartLine__UnorderedGroup_2__2
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartLine__UnorderedGroup_2__2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred255_InternalChartDSL
+
+    // $ANTLR start synpred256_InternalChartDSL
+    public final void synpred256_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20953:2: ( rule__ChartLine__UnorderedGroup_2__3 )
+        // InternalChartDSL.g:20953:2: rule__ChartLine__UnorderedGroup_2__3
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartLine__UnorderedGroup_2__3();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred256_InternalChartDSL
+
+    // $ANTLR start synpred257_InternalChartDSL
+    public final void synpred257_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20965:2: ( rule__ChartLine__UnorderedGroup_2__4 )
+        // InternalChartDSL.g:20965:2: rule__ChartLine__UnorderedGroup_2__4
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartLine__UnorderedGroup_2__4();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred257_InternalChartDSL
+
+    // $ANTLR start synpred258_InternalChartDSL
+    public final void synpred258_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:20977:2: ( rule__ChartLine__UnorderedGroup_2__5 )
+        // InternalChartDSL.g:20977:2: rule__ChartLine__UnorderedGroup_2__5
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartLine__UnorderedGroup_2__5();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred258_InternalChartDSL
+
+    // $ANTLR start synpred259_InternalChartDSL
+    public final void synpred259_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:21016:3: ( ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) ) )
+        // InternalChartDSL.g:21016:3: ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) )
+        {
+        // InternalChartDSL.g:21016:3: ({...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) ) )
+        // InternalChartDSL.g:21017:4: {...}? => ( ( ( rule__ChartBubble__Group_2_0__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred259_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0)");
+        }
+        // InternalChartDSL.g:21017:107: ( ( ( rule__ChartBubble__Group_2_0__0 ) ) )
+        // InternalChartDSL.g:21018:5: ( ( rule__ChartBubble__Group_2_0__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0);
+        // InternalChartDSL.g:21024:5: ( ( rule__ChartBubble__Group_2_0__0 ) )
+        // InternalChartDSL.g:21025:6: ( rule__ChartBubble__Group_2_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getChartBubbleAccess().getGroup_2_0()); 
+        }
+        // InternalChartDSL.g:21026:6: ( rule__ChartBubble__Group_2_0__0 )
+        // InternalChartDSL.g:21026:7: rule__ChartBubble__Group_2_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartBubble__Group_2_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred259_InternalChartDSL
+
+    // $ANTLR start synpred260_InternalChartDSL
+    public final void synpred260_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:21060:2: ( rule__ChartBubble__UnorderedGroup_2__1 )
+        // InternalChartDSL.g:21060:2: rule__ChartBubble__UnorderedGroup_2__1
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartBubble__UnorderedGroup_2__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred260_InternalChartDSL
+
+    // $ANTLR start synpred261_InternalChartDSL
+    public final void synpred261_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:21084:2: ( rule__ChartGauge__UnorderedGroup_2__0 )
+        // InternalChartDSL.g:21084:2: rule__ChartGauge__UnorderedGroup_2__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartGauge__UnorderedGroup_2__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred261_InternalChartDSL
+
+    // $ANTLR start synpred262_InternalChartDSL
+    public final void synpred262_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:21099:3: ( ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) ) )
+        // InternalChartDSL.g:21099:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) )
+        {
+        // InternalChartDSL.g:21099:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) ) )
+        // InternalChartDSL.g:21100:4: {...}? => ( ( ( rule__ChartGauge__Group_2_0__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred262_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0)");
+        }
+        // InternalChartDSL.g:21100:106: ( ( ( rule__ChartGauge__Group_2_0__0 ) ) )
+        // InternalChartDSL.g:21101:5: ( ( rule__ChartGauge__Group_2_0__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0);
+        // InternalChartDSL.g:21107:5: ( ( rule__ChartGauge__Group_2_0__0 ) )
+        // InternalChartDSL.g:21108:6: ( rule__ChartGauge__Group_2_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getChartGaugeAccess().getGroup_2_0()); 
+        }
+        // InternalChartDSL.g:21109:6: ( rule__ChartGauge__Group_2_0__0 )
+        // InternalChartDSL.g:21109:7: rule__ChartGauge__Group_2_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__ChartGauge__Group_2_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred262_InternalChartDSL
+
+    // $ANTLR start synpred263_InternalChartDSL
+    public final void synpred263_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:21114:3: ( ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) ) )
+        // InternalChartDSL.g:21114:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) )
+        {
+        // InternalChartDSL.g:21114:3: ({...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) ) )
+        // InternalChartDSL.g:21115:4: {...}? => ( ( ( rule__ChartGauge__Group_2_1__0 ) ) )
         {
         if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
             if (state.backtracking>0) {state.failed=true; return ;}
-            throw new FailedPredicateException(input, "synpred245_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1)");
+            throw new FailedPredicateException(input, "synpred263_InternalChartDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1)");
         }
-        // InternalChartDSL.g:20105:106: ( ( ( rule__ChartGauge__Group_2_1__0 ) ) )
-        // InternalChartDSL.g:20106:5: ( ( rule__ChartGauge__Group_2_1__0 ) )
+        // InternalChartDSL.g:21115:106: ( ( ( rule__ChartGauge__Group_2_1__0 ) ) )
+        // InternalChartDSL.g:21116:5: ( ( rule__ChartGauge__Group_2_1__0 ) )
         {
         getUnorderedGroupHelper().select(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1);
-        // InternalChartDSL.g:20112:5: ( ( rule__ChartGauge__Group_2_1__0 ) )
-        // InternalChartDSL.g:20113:6: ( rule__ChartGauge__Group_2_1__0 )
+        // InternalChartDSL.g:21122:5: ( ( rule__ChartGauge__Group_2_1__0 ) )
+        // InternalChartDSL.g:21123:6: ( rule__ChartGauge__Group_2_1__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getChartGaugeAccess().getGroup_2_1()); 
         }
-        // InternalChartDSL.g:20114:6: ( rule__ChartGauge__Group_2_1__0 )
-        // InternalChartDSL.g:20114:7: rule__ChartGauge__Group_2_1__0
+        // InternalChartDSL.g:21124:6: ( rule__ChartGauge__Group_2_1__0 )
+        // InternalChartDSL.g:21124:7: rule__ChartGauge__Group_2_1__0
         {
         pushFollow(FOLLOW_2);
         rule__ChartGauge__Group_2_1__0();
@@ -78374,12 +82291,12 @@
 
         }
     }
-    // $ANTLR end synpred245_InternalChartDSL
+    // $ANTLR end synpred263_InternalChartDSL
 
-    // $ANTLR start synpred246_InternalChartDSL
-    public final void synpred246_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:20148:2: ( rule__ChartGauge__UnorderedGroup_2__1 )
-        // InternalChartDSL.g:20148:2: rule__ChartGauge__UnorderedGroup_2__1
+    // $ANTLR start synpred264_InternalChartDSL
+    public final void synpred264_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:21158:2: ( rule__ChartGauge__UnorderedGroup_2__1 )
+        // InternalChartDSL.g:21158:2: rule__ChartGauge__UnorderedGroup_2__1
         {
         pushFollow(FOLLOW_2);
         rule__ChartGauge__UnorderedGroup_2__1();
@@ -78389,12 +82306,12 @@
 
         }
     }
-    // $ANTLR end synpred246_InternalChartDSL
+    // $ANTLR end synpred264_InternalChartDSL
 
-    // $ANTLR start synpred247_InternalChartDSL
-    public final void synpred247_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:20160:2: ( rule__ChartGauge__UnorderedGroup_2__2 )
-        // InternalChartDSL.g:20160:2: rule__ChartGauge__UnorderedGroup_2__2
+    // $ANTLR start synpred265_InternalChartDSL
+    public final void synpred265_InternalChartDSL_fragment() throws RecognitionException {   
+        // InternalChartDSL.g:21170:2: ( rule__ChartGauge__UnorderedGroup_2__2 )
+        // InternalChartDSL.g:21170:2: rule__ChartGauge__UnorderedGroup_2__2
         {
         pushFollow(FOLLOW_2);
         rule__ChartGauge__UnorderedGroup_2__2();
@@ -78404,7 +82321,7 @@
 
         }
     }
-    // $ANTLR end synpred247_InternalChartDSL
+    // $ANTLR end synpred265_InternalChartDSL
 
     // Delegated rules
 
@@ -78422,11 +82339,25 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred208_InternalChartDSL() {
+    public final boolean synpred259_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred208_InternalChartDSL_fragment(); // can never throw exception
+            synpred259_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred216_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred216_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78450,20 +82381,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred197_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred197_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred224_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -78478,25 +82395,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred154_InternalChartDSL() {
+    public final boolean synpred171_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred154_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred225_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred225_InternalChartDSL_fragment(); // can never throw exception
+            synpred171_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78520,20 +82423,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred198_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred198_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred215_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -78548,11 +82437,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred234_InternalChartDSL() {
+    public final boolean synpred258_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred234_InternalChartDSL_fragment(); // can never throw exception
+            synpred258_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78604,11 +82493,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred155_InternalChartDSL() {
+    public final boolean synpred251_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred155_InternalChartDSL_fragment(); // can never throw exception
+            synpred251_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78618,11 +82507,25 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred146_InternalChartDSL() {
+    public final boolean synpred250_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred146_InternalChartDSL_fragment(); // can never throw exception
+            synpred250_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred172_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred172_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78646,6 +82549,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred135_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred135_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred222_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -78674,34 +82591,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred227_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred227_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred235_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred235_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred214_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -78716,11 +82605,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred156_InternalChartDSL() {
+    public final boolean synpred169_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred156_InternalChartDSL_fragment(); // can never throw exception
+            synpred169_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78730,25 +82619,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred151_InternalChartDSL() {
+    public final boolean synpred256_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred151_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred206_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred206_InternalChartDSL_fragment(); // can never throw exception
+            synpred256_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78772,6 +82647,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred164_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred164_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred230_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -78786,6 +82675,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred177_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred177_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred81_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -78800,6 +82703,34 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred166_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred166_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred209_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred209_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred240_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -78828,11 +82759,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred153_InternalChartDSL() {
+    public final boolean synpred253_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred153_InternalChartDSL_fragment(); // can never throw exception
+            synpred253_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78842,11 +82773,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred148_InternalChartDSL() {
+    public final boolean synpred248_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred148_InternalChartDSL_fragment(); // can never throw exception
+            synpred248_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78856,11 +82787,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred203_InternalChartDSL() {
+    public final boolean synpred261_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred203_InternalChartDSL_fragment(); // can never throw exception
+            synpred261_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78870,11 +82801,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred159_InternalChartDSL() {
+    public final boolean synpred174_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred159_InternalChartDSL_fragment(); // can never throw exception
+            synpred174_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78884,25 +82815,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred192_InternalChartDSL() {
+    public final boolean synpred167_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred192_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred229_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred229_InternalChartDSL_fragment(); // can never throw exception
+            synpred167_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -78926,6 +82843,34 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred254_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred254_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred262_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred262_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred245_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -78954,20 +82899,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred204_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred204_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred247_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -78982,11 +82913,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred228_InternalChartDSL() {
+    public final boolean synpred193_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred228_InternalChartDSL_fragment(); // can never throw exception
+            synpred193_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79010,20 +82941,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred150_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred150_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred168_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -79038,11 +82955,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred237_InternalChartDSL() {
+    public final boolean synpred264_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred237_InternalChartDSL_fragment(); // can never throw exception
+            synpred264_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79052,11 +82969,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred212_InternalChartDSL() {
+    public final boolean synpred255_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred212_InternalChartDSL_fragment(); // can never throw exception
+            synpred255_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79066,11 +82983,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred220_InternalChartDSL() {
+    public final boolean synpred263_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred220_InternalChartDSL_fragment(); // can never throw exception
+            synpred263_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79108,6 +83025,34 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred260_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred260_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred173_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred173_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred178_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -79122,6 +83067,48 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred265_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred265_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred186_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred186_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred252_InternalChartDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred252_InternalChartDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred85_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -79136,20 +83123,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred152_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred152_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred46_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -79164,11 +83137,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred236_InternalChartDSL() {
+    public final boolean synpred249_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred236_InternalChartDSL_fragment(); // can never throw exception
+            synpred249_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79192,20 +83165,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred149_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred149_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred67_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -79220,20 +83179,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred160_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred160_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred226_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -79290,20 +83235,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred126_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred126_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred196_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -79318,11 +83249,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred157_InternalChartDSL() {
+    public final boolean synpred210_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred157_InternalChartDSL_fragment(); // can never throw exception
+            synpred210_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79346,11 +83277,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred191_InternalChartDSL() {
+    public final boolean synpred170_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred191_InternalChartDSL_fragment(); // can never throw exception
+            synpred170_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79360,25 +83291,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred205_InternalChartDSL() {
+    public final boolean synpred257_InternalChartDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred205_InternalChartDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred231_InternalChartDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred231_InternalChartDSL_fragment(); // can never throw exception
+            synpred257_InternalChartDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -79401,34 +83318,34 @@
     protected DFA34 dfa34 = new DFA34(this);
     protected DFA39 dfa39 = new DFA39(this);
     protected DFA42 dfa42 = new DFA42(this);
-    protected DFA84 dfa84 = new DFA84(this);
-    protected DFA90 dfa90 = new DFA90(this);
     protected DFA97 dfa97 = new DFA97(this);
-    protected DFA98 dfa98 = new DFA98(this);
-    protected DFA106 dfa106 = new DFA106(this);
-    protected DFA116 dfa116 = new DFA116(this);
+    protected DFA103 dfa103 = new DFA103(this);
+    protected DFA110 dfa110 = new DFA110(this);
+    protected DFA111 dfa111 = new DFA111(this);
+    protected DFA119 dfa119 = new DFA119(this);
     protected DFA129 dfa129 = new DFA129(this);
-    protected DFA130 dfa130 = new DFA130(this);
-    protected DFA134 dfa134 = new DFA134(this);
-    protected DFA135 dfa135 = new DFA135(this);
-    protected DFA136 dfa136 = new DFA136(this);
-    protected DFA141 dfa141 = new DFA141(this);
-    protected DFA150 dfa150 = new DFA150(this);
-    protected DFA153 dfa153 = new DFA153(this);
+    protected DFA142 dfa142 = new DFA142(this);
+    protected DFA143 dfa143 = new DFA143(this);
+    protected DFA147 dfa147 = new DFA147(this);
+    protected DFA148 dfa148 = new DFA148(this);
+    protected DFA149 dfa149 = new DFA149(this);
+    protected DFA154 dfa154 = new DFA154(this);
+    protected DFA163 dfa163 = new DFA163(this);
+    protected DFA166 dfa166 = new DFA166(this);
     static final String dfa_1s = "\10\uffff";
     static final String dfa_2s = "\2\uffff\1\5\3\uffff\1\5\1\uffff";
     static final String dfa_3s = "\1\5\1\uffff\1\53\1\uffff\1\5\1\uffff\1\53\1\uffff";
-    static final String dfa_4s = "\1\u0095\1\uffff\1\137\1\uffff\1\44\1\uffff\1\137\1\uffff";
+    static final String dfa_4s = "\1\u00a6\1\uffff\1\156\1\uffff\1\44\1\uffff\1\156\1\uffff";
     static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\uffff\1\3";
     static final String dfa_6s = "\10\uffff}>";
     static final String[] dfa_7s = {
-            "\1\2\50\uffff\1\1\146\uffff\1\3",
+            "\1\2\50\uffff\1\1\167\uffff\1\3",
             "",
-            "\1\4\3\uffff\1\5\27\uffff\1\5\27\uffff\1\5",
+            "\1\4\3\uffff\1\5\36\uffff\1\5\37\uffff\1\5",
             "",
             "\1\6\36\uffff\1\7",
             "",
-            "\1\4\3\uffff\1\5\27\uffff\1\5\27\uffff\1\5",
+            "\1\4\3\uffff\1\5\36\uffff\1\5\37\uffff\1\5",
             ""
     };
 
@@ -79454,16 +83371,16 @@
             this.transition = dfa_7;
         }
         public String getDescription() {
-            return "2874:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );";
+            return "2915:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );";
         }
     }
     static final String dfa_8s = "\43\uffff";
     static final String dfa_9s = "\1\4\1\0\41\uffff";
-    static final String dfa_10s = "\1\u009a\1\0\41\uffff";
+    static final String dfa_10s = "\1\u00ab\1\0\41\uffff";
     static final String dfa_11s = "\2\uffff\1\2\37\uffff\1\1";
     static final String dfa_12s = "\1\uffff\1\0\41\uffff}>";
     static final String[] dfa_13s = {
-            "\1\2\1\1\3\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\25\uffff\1\2\27\uffff\2\2\3\uffff\2\2\1\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\41\uffff\1\2",
+            "\1\2\1\1\3\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\34\uffff\1\2\37\uffff\2\2\3\uffff\2\2\1\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\43\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -79521,7 +83438,7 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "2928:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
+            return "2969:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -79551,7 +83468,7 @@
         }
     }
     static final String[] dfa_14s = {
-            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\25\uffff\1\2\27\uffff\2\2\3\uffff\1\1\1\2\1\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\41\uffff\1\2",
+            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\34\uffff\1\2\37\uffff\2\2\3\uffff\1\1\1\2\1\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\43\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -79603,7 +83520,7 @@
             this.transition = dfa_14;
         }
         public String getDescription() {
-            return "2949:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );";
+            return "2990:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -79647,7 +83564,7 @@
             this.transition = dfa_14;
         }
         public String getDescription() {
-            return "2970:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
+            return "3011:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -79716,25 +83633,25 @@
             this.transition = dfa_20;
         }
         public String getDescription() {
-            return "3171:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
+            return "3212:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
         }
     }
     static final String dfa_21s = "\12\uffff";
     static final String dfa_22s = "\4\uffff\5\3\1\uffff";
     static final String dfa_23s = "\1\53\2\5\1\uffff\5\4\1\uffff";
-    static final String dfa_24s = "\1\u0097\2\61\1\uffff\5\u009a\1\uffff";
+    static final String dfa_24s = "\1\u00a8\2\61\1\uffff\5\u00ab\1\uffff";
     static final String dfa_25s = "\3\uffff\1\2\5\uffff\1\1";
     static final String dfa_26s = "\12\uffff}>";
     static final String[] dfa_27s = {
-            "\1\1\152\uffff\1\2\1\3",
+            "\1\1\173\uffff\1\2\1\3",
             "\1\4\25\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
             "\1\4\25\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
             "",
-            "\5\3\4\uffff\1\11\45\3\25\uffff\2\3\1\uffff\1\3\23\uffff\1\3\1\uffff\31\3\34\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\25\uffff\2\3\1\uffff\1\3\23\uffff\1\3\1\uffff\31\3\34\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\25\uffff\2\3\1\uffff\1\3\23\uffff\1\3\1\uffff\31\3\34\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\25\uffff\2\3\1\uffff\1\3\23\uffff\1\3\1\uffff\31\3\34\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\25\uffff\2\3\1\uffff\1\3\23\uffff\1\3\1\uffff\31\3\34\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\34\uffff\2\3\2\uffff\1\3\32\uffff\1\3\1\uffff\31\3\36\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\34\uffff\2\3\2\uffff\1\3\32\uffff\1\3\1\uffff\31\3\36\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\34\uffff\2\3\2\uffff\1\3\32\uffff\1\3\1\uffff\31\3\36\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\34\uffff\2\3\2\uffff\1\3\32\uffff\1\3\1\uffff\31\3\36\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\34\uffff\2\3\2\uffff\1\3\32\uffff\1\3\1\uffff\31\3\36\uffff\2\3\1\uffff\2\3",
             ""
     };
 
@@ -79760,15 +83677,15 @@
             this.transition = dfa_27;
         }
         public String getDescription() {
-            return "3405:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
+            return "3446:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
         }
     }
     static final String dfa_28s = "\1\4\2\0\40\uffff";
-    static final String dfa_29s = "\1\u009a\2\0\40\uffff";
+    static final String dfa_29s = "\1\u00ab\2\0\40\uffff";
     static final String dfa_30s = "\3\uffff\1\1\1\uffff\1\2\35\uffff";
     static final String dfa_31s = "\1\uffff\1\0\1\1\40\uffff}>";
     static final String[] dfa_32s = {
-            "\1\5\1\1\3\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4\uffff\6\5\25\uffff\1\5\30\uffff\1\2\3\uffff\2\5\1\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\37\uffff\1\3\1\uffff\1\5",
+            "\1\5\1\1\3\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4\uffff\6\5\34\uffff\1\5\40\uffff\1\2\3\uffff\2\5\1\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\41\uffff\1\3\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -79824,7 +83741,7 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3474:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
+            return "3515:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -79870,11 +83787,11 @@
     }
     static final String dfa_33s = "\40\uffff";
     static final String dfa_34s = "\1\4\26\uffff\1\0\10\uffff";
-    static final String dfa_35s = "\1\u009a\26\uffff\1\0\10\uffff";
+    static final String dfa_35s = "\1\u00ab\26\uffff\1\0\10\uffff";
     static final String dfa_36s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\6\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
     static final String dfa_37s = "\27\uffff\1\0\10\uffff}>";
     static final String[] dfa_38s = {
-            "\1\14\1\5\3\14\22\uffff\1\5\21\uffff\5\5\1\14\25\uffff\1\2\30\uffff\1\35\3\uffff\2\14\1\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\41\uffff\1\14",
+            "\1\14\1\5\3\14\22\uffff\1\5\21\uffff\5\5\1\14\34\uffff\1\2\40\uffff\1\35\3\uffff\2\14\1\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\43\uffff\1\14",
             "",
             "",
             "",
@@ -79929,7 +83846,7 @@
             this.transition = dfa_38;
         }
         public String getDescription() {
-            return "3495:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
+            return "3536:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -79959,7 +83876,7 @@
         }
     }
     static final String[] dfa_39s = {
-            "\5\2\22\uffff\1\2\3\uffff\1\2\2\uffff\2\2\4\uffff\1\2\4\uffff\6\2\25\uffff\1\2\30\uffff\1\1\3\uffff\2\2\1\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\41\uffff\1\2",
+            "\5\2\22\uffff\1\2\3\uffff\1\2\2\uffff\2\2\4\uffff\1\2\4\uffff\6\2\34\uffff\1\2\40\uffff\1\1\3\uffff\2\2\1\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\43\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -80011,7 +83928,7 @@
             this.transition = dfa_39;
         }
         public String getDescription() {
-            return "3666:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
+            return "3707:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -80055,7 +83972,7 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3771:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
+            return "3812:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -80114,7 +84031,7 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3852:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
+            return "3893:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -80160,11 +84077,11 @@
     }
     static final String dfa_40s = "\1\10\11\uffff";
     static final String dfa_41s = "\1\4\7\0\2\uffff";
-    static final String dfa_42s = "\1\u009a\7\0\2\uffff";
+    static final String dfa_42s = "\1\u00ab\7\0\2\uffff";
     static final String dfa_43s = "\10\uffff\1\2\1\1";
-    static final String dfa_44s = "\1\uffff\1\3\1\1\1\0\1\6\1\4\1\2\1\5\2\uffff}>";
+    static final String dfa_44s = "\1\uffff\1\2\1\5\1\0\1\1\1\3\1\6\1\4\2\uffff}>";
     static final String[] dfa_45s = {
-            "\5\10\5\uffff\2\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\27\10\25\uffff\2\10\1\uffff\1\10\23\uffff\1\10\1\uffff\31\10\34\uffff\2\10\1\uffff\2\10",
+            "\5\10\5\uffff\2\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\27\10\34\uffff\2\10\2\uffff\1\10\32\uffff\1\10\1\uffff\31\10\36\uffff\2\10\1\uffff\2\10",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -80182,11 +84099,11 @@
     static final short[] dfa_44 = DFA.unpackEncodedString(dfa_44s);
     static final short[][] dfa_45 = unpackEncodedStringArray(dfa_45s);
 
-    class DFA84 extends DFA {
+    class DFA97 extends DFA {
 
-        public DFA84(BaseRecognizer recognizer) {
+        public DFA97(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 84;
+            this.decisionNumber = 97;
             this.eot = dfa_21;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -80196,132 +84113,132 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "8272:2: ( rule__XAssignment__Group_1_1__0 )?";
+            return "9282:2: ( rule__XAssignment__Group_1_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA84_3 = input.LA(1);
+                        int LA97_3 = input.LA(1);
 
                          
-                        int index84_3 = input.index();
+                        int index97_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalChartDSL()) ) {s = 9;}
+                        if ( (synpred164_InternalChartDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index84_3);
+                        input.seek(index97_3);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA84_2 = input.LA(1);
+                        int LA97_4 = input.LA(1);
 
                          
-                        int index84_2 = input.index();
+                        int index97_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalChartDSL()) ) {s = 9;}
+                        if ( (synpred164_InternalChartDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index84_2);
+                        input.seek(index97_4);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA84_6 = input.LA(1);
+                        int LA97_1 = input.LA(1);
 
                          
-                        int index84_6 = input.index();
+                        int index97_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalChartDSL()) ) {s = 9;}
+                        if ( (synpred164_InternalChartDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index84_6);
+                        input.seek(index97_1);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA84_1 = input.LA(1);
+                        int LA97_5 = input.LA(1);
 
                          
-                        int index84_1 = input.index();
+                        int index97_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalChartDSL()) ) {s = 9;}
+                        if ( (synpred164_InternalChartDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index84_1);
+                        input.seek(index97_5);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA84_5 = input.LA(1);
+                        int LA97_7 = input.LA(1);
 
                          
-                        int index84_5 = input.index();
+                        int index97_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalChartDSL()) ) {s = 9;}
+                        if ( (synpred164_InternalChartDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index84_5);
+                        input.seek(index97_7);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA84_7 = input.LA(1);
+                        int LA97_2 = input.LA(1);
 
                          
-                        int index84_7 = input.index();
+                        int index97_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalChartDSL()) ) {s = 9;}
+                        if ( (synpred164_InternalChartDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index84_7);
+                        input.seek(index97_2);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA84_4 = input.LA(1);
+                        int LA97_6 = input.LA(1);
 
                          
-                        int index84_4 = input.index();
+                        int index97_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalChartDSL()) ) {s = 9;}
+                        if ( (synpred164_InternalChartDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index84_4);
+                        input.seek(index97_6);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 84, _s, input);
+                new NoViableAltException(getDescription(), 97, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_46s = "\1\1\12\uffff";
     static final String dfa_47s = "\1\4\1\uffff\10\0\1\uffff";
-    static final String dfa_48s = "\1\u009a\1\uffff\10\0\1\uffff";
+    static final String dfa_48s = "\1\u00ab\1\uffff\10\0\1\uffff";
     static final String dfa_49s = "\1\uffff\1\2\10\uffff\1\1";
-    static final String dfa_50s = "\2\uffff\1\2\1\1\1\7\1\3\1\5\1\6\1\0\1\4\1\uffff}>";
+    static final String dfa_50s = "\2\uffff\1\0\1\4\1\6\1\1\1\3\1\7\1\5\1\2\1\uffff}>";
     static final String[] dfa_51s = {
-            "\5\1\5\uffff\14\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\21\1\25\uffff\2\1\1\uffff\1\1\23\uffff\1\1\1\uffff\31\1\34\uffff\2\1\1\uffff\2\1",
+            "\5\1\5\uffff\14\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\21\1\34\uffff\2\1\2\uffff\1\1\32\uffff\1\1\1\uffff\31\1\36\uffff\2\1\1\uffff\2\1",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -80340,11 +84257,11 @@
     static final short[] dfa_50 = DFA.unpackEncodedString(dfa_50s);
     static final short[][] dfa_51 = unpackEncodedStringArray(dfa_51s);
 
-    class DFA90 extends DFA {
+    class DFA103 extends DFA {
 
-        public DFA90(BaseRecognizer recognizer) {
+        public DFA103(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 90;
+            this.decisionNumber = 103;
             this.eot = dfa_15;
             this.eof = dfa_46;
             this.min = dfa_47;
@@ -80354,136 +84271,136 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "()* loopback of 9568:2: ( rule__XOtherOperatorExpression__Group_1__0 )*";
+            return "()* loopback of 10578:2: ( rule__XOtherOperatorExpression__Group_1__0 )*";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA90_8 = input.LA(1);
+                        int LA103_2 = input.LA(1);
 
                          
-                        int index90_8 = input.index();
+                        int index103_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalChartDSL()) ) {s = 10;}
+                        if ( (synpred170_InternalChartDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index90_8);
+                        input.seek(index103_2);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA90_3 = input.LA(1);
+                        int LA103_5 = input.LA(1);
 
                          
-                        int index90_3 = input.index();
+                        int index103_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalChartDSL()) ) {s = 10;}
+                        if ( (synpred170_InternalChartDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index90_3);
+                        input.seek(index103_5);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA90_2 = input.LA(1);
+                        int LA103_9 = input.LA(1);
 
                          
-                        int index90_2 = input.index();
+                        int index103_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalChartDSL()) ) {s = 10;}
+                        if ( (synpred170_InternalChartDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index90_2);
+                        input.seek(index103_9);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA90_5 = input.LA(1);
+                        int LA103_6 = input.LA(1);
 
                          
-                        int index90_5 = input.index();
+                        int index103_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalChartDSL()) ) {s = 10;}
+                        if ( (synpred170_InternalChartDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index90_5);
+                        input.seek(index103_6);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA90_9 = input.LA(1);
+                        int LA103_3 = input.LA(1);
 
                          
-                        int index90_9 = input.index();
+                        int index103_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalChartDSL()) ) {s = 10;}
+                        if ( (synpred170_InternalChartDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index90_9);
+                        input.seek(index103_3);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA90_6 = input.LA(1);
+                        int LA103_8 = input.LA(1);
 
                          
-                        int index90_6 = input.index();
+                        int index103_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalChartDSL()) ) {s = 10;}
+                        if ( (synpred170_InternalChartDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index90_6);
+                        input.seek(index103_8);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA90_7 = input.LA(1);
+                        int LA103_4 = input.LA(1);
 
                          
-                        int index90_7 = input.index();
+                        int index103_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalChartDSL()) ) {s = 10;}
+                        if ( (synpred170_InternalChartDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index90_7);
+                        input.seek(index103_4);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA90_4 = input.LA(1);
+                        int LA103_7 = input.LA(1);
 
                          
-                        int index90_4 = input.index();
+                        int index103_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalChartDSL()) ) {s = 10;}
+                        if ( (synpred170_InternalChartDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index90_4);
+                        input.seek(index103_7);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 90, _s, input);
+                new NoViableAltException(getDescription(), 103, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -80491,11 +84408,11 @@
     static final String dfa_52s = "\116\uffff";
     static final String dfa_53s = "\1\2\115\uffff";
     static final String dfa_54s = "\1\4\1\0\114\uffff";
-    static final String dfa_55s = "\1\u009a\1\0\114\uffff";
+    static final String dfa_55s = "\1\u00ab\1\0\114\uffff";
     static final String dfa_56s = "\2\uffff\1\2\112\uffff\1\1";
     static final String dfa_57s = "\1\uffff\1\0\114\uffff}>";
     static final String[] dfa_58s = {
-            "\5\2\5\uffff\45\2\25\uffff\2\2\1\uffff\1\2\23\uffff\1\2\1\uffff\1\1\30\2\34\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\45\2\34\uffff\2\2\2\uffff\1\2\32\uffff\1\2\1\uffff\1\1\30\2\36\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -80583,11 +84500,11 @@
     static final short[] dfa_57 = DFA.unpackEncodedString(dfa_57s);
     static final short[][] dfa_58 = unpackEncodedStringArray(dfa_58s);
 
-    class DFA97 extends DFA {
+    class DFA110 extends DFA {
 
-        public DFA97(BaseRecognizer recognizer) {
+        public DFA110(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 97;
+            this.decisionNumber = 110;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -80597,37 +84514,37 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "11162:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
+            return "12172:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA97_1 = input.LA(1);
+                        int LA110_1 = input.LA(1);
 
                          
-                        int index97_1 = input.index();
+                        int index110_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred159_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred177_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index97_1);
+                        input.seek(index110_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 97, _s, input);
+                new NoViableAltException(getDescription(), 110, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_59s = {
-            "\5\2\5\uffff\45\2\25\uffff\2\2\1\uffff\1\2\23\uffff\1\2\1\uffff\5\2\1\1\23\2\34\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\45\2\34\uffff\2\2\2\uffff\1\2\32\uffff\1\2\1\uffff\5\2\1\1\23\2\36\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -80708,11 +84625,11 @@
     };
     static final short[][] dfa_59 = unpackEncodedStringArray(dfa_59s);
 
-    class DFA98 extends DFA {
+    class DFA111 extends DFA {
 
-        public DFA98(BaseRecognizer recognizer) {
+        public DFA111(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 98;
+            this.decisionNumber = 111;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -80722,42 +84639,42 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "11188:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
+            return "12198:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA98_1 = input.LA(1);
+                        int LA111_1 = input.LA(1);
 
                          
-                        int index98_1 = input.index();
+                        int index111_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred160_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred178_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index98_1);
+                        input.seek(index111_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 98, _s, input);
+                new NoViableAltException(getDescription(), 111, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_60s = "\46\uffff";
     static final String dfa_61s = "\1\4\2\0\43\uffff";
-    static final String dfa_62s = "\1\u009a\2\0\43\uffff";
+    static final String dfa_62s = "\1\u00ab\2\0\43\uffff";
     static final String dfa_63s = "\3\uffff\1\1\1\uffff\1\2\40\uffff";
     static final String dfa_64s = "\1\uffff\1\0\1\1\43\uffff}>";
     static final String[] dfa_65s = {
-            "\1\5\1\1\3\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\3\uffff\7\5\25\uffff\1\5\30\uffff\1\2\2\uffff\3\5\1\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\37\uffff\1\3\2\5",
+            "\1\5\1\1\3\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\3\uffff\7\5\34\uffff\1\5\40\uffff\1\2\2\uffff\3\5\1\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\41\uffff\1\3\2\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -80804,11 +84721,11 @@
     static final short[] dfa_64 = DFA.unpackEncodedString(dfa_64s);
     static final short[][] dfa_65 = unpackEncodedStringArray(dfa_65s);
 
-    class DFA106 extends DFA {
+    class DFA119 extends DFA {
 
-        public DFA106(BaseRecognizer recognizer) {
+        public DFA119(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 106;
+            this.decisionNumber = 119;
             this.eot = dfa_60;
             this.eof = dfa_60;
             this.min = dfa_61;
@@ -80818,57 +84735,57 @@
             this.transition = dfa_65;
         }
         public String getDescription() {
-            return "12161:2: ( rule__XClosure__Group_1__0 )?";
+            return "13171:2: ( rule__XClosure__Group_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA106_1 = input.LA(1);
+                        int LA119_1 = input.LA(1);
 
                          
-                        int index106_1 = input.index();
+                        int index119_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred168_InternalChartDSL()) ) {s = 3;}
+                        if ( (synpred186_InternalChartDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index106_1);
+                        input.seek(index119_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA106_2 = input.LA(1);
+                        int LA119_2 = input.LA(1);
 
                          
-                        int index106_2 = input.index();
+                        int index119_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred168_InternalChartDSL()) ) {s = 3;}
+                        if ( (synpred186_InternalChartDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index106_2);
+                        input.seek(index119_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 106, _s, input);
+                new NoViableAltException(getDescription(), 119, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_66s = "\42\uffff";
     static final String dfa_67s = "\1\4\2\0\37\uffff";
-    static final String dfa_68s = "\1\u009a\2\0\37\uffff";
+    static final String dfa_68s = "\1\u00ab\2\0\37\uffff";
     static final String dfa_69s = "\3\uffff\1\1\1\2\35\uffff";
     static final String dfa_70s = "\1\uffff\1\0\1\1\37\uffff}>";
     static final String[] dfa_71s = {
-            "\1\4\1\1\3\4\22\uffff\1\4\3\uffff\1\3\2\uffff\2\4\4\uffff\1\4\4\uffff\6\4\25\uffff\1\4\30\uffff\1\2\3\uffff\2\4\1\uffff\1\4\1\uffff\1\4\3\uffff\11\4\1\uffff\1\4\41\uffff\1\4",
+            "\1\4\1\1\3\4\22\uffff\1\4\3\uffff\1\3\2\uffff\2\4\4\uffff\1\4\4\uffff\6\4\34\uffff\1\4\40\uffff\1\2\3\uffff\2\4\1\uffff\1\4\1\uffff\1\4\3\uffff\11\4\1\uffff\1\4\43\uffff\1\4",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -80911,11 +84828,11 @@
     static final short[] dfa_70 = DFA.unpackEncodedString(dfa_70s);
     static final short[][] dfa_71 = unpackEncodedStringArray(dfa_71s);
 
-    class DFA116 extends DFA {
+    class DFA129 extends DFA {
 
-        public DFA116(BaseRecognizer recognizer) {
+        public DFA129(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 116;
+            this.decisionNumber = 129;
             this.eot = dfa_66;
             this.eof = dfa_66;
             this.min = dfa_67;
@@ -80925,66 +84842,7 @@
             this.transition = dfa_71;
         }
         public String getDescription() {
-            return "13592:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
-        }
-        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
-            TokenStream input = (TokenStream)_input;
-        	int _s = s;
-            switch ( s ) {
-                    case 0 : 
-                        int LA116_1 = input.LA(1);
-
-                         
-                        int index116_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred178_InternalChartDSL()) ) {s = 3;}
-
-                        else if ( (true) ) {s = 4;}
-
-                         
-                        input.seek(index116_1);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
-                        int LA116_2 = input.LA(1);
-
-                         
-                        int index116_2 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred178_InternalChartDSL()) ) {s = 3;}
-
-                        else if ( (true) ) {s = 4;}
-
-                         
-                        input.seek(index116_2);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 116, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
-    class DFA129 extends DFA {
-
-        public DFA129(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 129;
-            this.eot = dfa_52;
-            this.eof = dfa_53;
-            this.min = dfa_54;
-            this.max = dfa_55;
-            this.accept = dfa_56;
-            this.special = dfa_57;
-            this.transition = dfa_58;
-        }
-        public String getDescription() {
-            return "15725:2: ( rule__XFeatureCall__Group_3__0 )?";
+            return "14602:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -80997,14 +84855,29 @@
                         int index129_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred191_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred196_InternalChartDSL()) ) {s = 3;}
 
-                        else if ( (true) ) {s = 2;}
+                        else if ( (true) ) {s = 4;}
 
                          
                         input.seek(index129_1);
                         if ( s>=0 ) return s;
                         break;
+                    case 1 : 
+                        int LA129_2 = input.LA(1);
+
+                         
+                        int index129_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred196_InternalChartDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 4;}
+
+                         
+                        input.seek(index129_2);
+                        if ( s>=0 ) return s;
+                        break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
@@ -81014,11 +84887,55 @@
         }
     }
 
-    class DFA130 extends DFA {
+    class DFA142 extends DFA {
 
-        public DFA130(BaseRecognizer recognizer) {
+        public DFA142(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 130;
+            this.decisionNumber = 142;
+            this.eot = dfa_52;
+            this.eof = dfa_53;
+            this.min = dfa_54;
+            this.max = dfa_55;
+            this.accept = dfa_56;
+            this.special = dfa_57;
+            this.transition = dfa_58;
+        }
+        public String getDescription() {
+            return "16735:2: ( rule__XFeatureCall__Group_3__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA142_1 = input.LA(1);
+
+                         
+                        int index142_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred209_InternalChartDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index142_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 142, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA143 extends DFA {
+
+        public DFA143(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 143;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -81028,37 +84945,37 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "15751:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
+            return "16761:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA130_1 = input.LA(1);
+                        int LA143_1 = input.LA(1);
 
                          
-                        int index130_1 = input.index();
+                        int index143_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred192_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred210_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index130_1);
+                        input.seek(index143_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 130, _s, input);
+                new NoViableAltException(getDescription(), 143, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_72s = {
-            "\5\2\5\uffff\15\2\1\1\27\2\25\uffff\2\2\1\uffff\1\2\23\uffff\1\2\1\uffff\31\2\34\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\15\2\1\1\27\2\34\uffff\2\2\2\uffff\1\2\32\uffff\1\2\1\uffff\31\2\36\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -81139,11 +85056,11 @@
     };
     static final short[][] dfa_72 = unpackEncodedStringArray(dfa_72s);
 
-    class DFA134 extends DFA {
+    class DFA147 extends DFA {
 
-        public DFA134(BaseRecognizer recognizer) {
+        public DFA147(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 134;
+            this.decisionNumber = 147;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -81153,41 +85070,41 @@
             this.transition = dfa_72;
         }
         public String getDescription() {
-            return "16211:2: ( rule__XConstructorCall__Group_3__0 )?";
+            return "17221:2: ( rule__XConstructorCall__Group_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA134_1 = input.LA(1);
+                        int LA147_1 = input.LA(1);
 
                          
-                        int index134_1 = input.index();
+                        int index147_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred196_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred214_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index134_1);
+                        input.seek(index147_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 134, _s, input);
+                new NoViableAltException(getDescription(), 147, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA135 extends DFA {
+    class DFA148 extends DFA {
 
-        public DFA135(BaseRecognizer recognizer) {
+        public DFA148(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 135;
+            this.decisionNumber = 148;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -81197,41 +85114,41 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "16238:2: ( rule__XConstructorCall__Group_4__0 )?";
+            return "17248:2: ( rule__XConstructorCall__Group_4__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA135_1 = input.LA(1);
+                        int LA148_1 = input.LA(1);
 
                          
-                        int index135_1 = input.index();
+                        int index148_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred197_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred215_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index135_1);
+                        input.seek(index148_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 135, _s, input);
+                new NoViableAltException(getDescription(), 148, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA136 extends DFA {
+    class DFA149 extends DFA {
 
-        public DFA136(BaseRecognizer recognizer) {
+        public DFA149(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 136;
+            this.decisionNumber = 149;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -81241,42 +85158,42 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "16264:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
+            return "17274:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA136_1 = input.LA(1);
+                        int LA149_1 = input.LA(1);
 
                          
-                        int index136_1 = input.index();
+                        int index149_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred198_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred216_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index136_1);
+                        input.seek(index149_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 136, _s, input);
+                new NoViableAltException(getDescription(), 149, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_73s = "\1\41\115\uffff";
     static final String dfa_74s = "\1\4\40\0\55\uffff";
-    static final String dfa_75s = "\1\u009a\40\0\55\uffff";
+    static final String dfa_75s = "\1\u00ab\40\0\55\uffff";
     static final String dfa_76s = "\41\uffff\1\2\53\uffff\1\1";
     static final String dfa_77s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\55\uffff}>";
     static final String[] dfa_78s = {
-            "\1\27\1\1\1\23\1\24\1\25\5\uffff\15\41\1\15\6\41\1\10\1\7\4\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\25\uffff\1\12\1\41\1\uffff\1\41\23\uffff\1\41\1\uffff\1\40\3\41\1\17\1\20\1\41\1\31\1\41\1\13\3\41\1\32\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\34\uffff\2\41\1\uffff\1\41\1\22",
+            "\1\27\1\1\1\23\1\24\1\25\5\uffff\15\41\1\15\6\41\1\10\1\7\4\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\34\uffff\1\12\1\41\2\uffff\1\41\32\uffff\1\41\1\uffff\1\40\3\41\1\17\1\20\1\41\1\31\1\41\1\13\3\41\1\32\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\36\uffff\2\41\1\uffff\1\41\1\22",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -81362,11 +85279,11 @@
     static final short[] dfa_77 = DFA.unpackEncodedString(dfa_77s);
     static final short[][] dfa_78 = unpackEncodedStringArray(dfa_78s);
 
-    class DFA141 extends DFA {
+    class DFA154 extends DFA {
 
-        public DFA141(BaseRecognizer recognizer) {
+        public DFA154(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 141;
+            this.decisionNumber = 154;
             this.eot = dfa_52;
             this.eof = dfa_73;
             this.min = dfa_74;
@@ -81376,496 +85293,496 @@
             this.transition = dfa_78;
         }
         public String getDescription() {
-            return "17155:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
+            return "18165:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA141_1 = input.LA(1);
+                        int LA154_1 = input.LA(1);
 
                          
-                        int index141_1 = input.index();
+                        int index154_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_1);
+                        input.seek(index154_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA141_2 = input.LA(1);
+                        int LA154_2 = input.LA(1);
 
                          
-                        int index141_2 = input.index();
+                        int index154_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_2);
+                        input.seek(index154_2);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA141_3 = input.LA(1);
+                        int LA154_3 = input.LA(1);
 
                          
-                        int index141_3 = input.index();
+                        int index154_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_3);
+                        input.seek(index154_3);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA141_4 = input.LA(1);
+                        int LA154_4 = input.LA(1);
 
                          
-                        int index141_4 = input.index();
+                        int index154_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_4);
+                        input.seek(index154_4);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA141_5 = input.LA(1);
+                        int LA154_5 = input.LA(1);
 
                          
-                        int index141_5 = input.index();
+                        int index154_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_5);
+                        input.seek(index154_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA141_6 = input.LA(1);
+                        int LA154_6 = input.LA(1);
 
                          
-                        int index141_6 = input.index();
+                        int index154_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_6);
+                        input.seek(index154_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA141_7 = input.LA(1);
+                        int LA154_7 = input.LA(1);
 
                          
-                        int index141_7 = input.index();
+                        int index154_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_7);
+                        input.seek(index154_7);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA141_8 = input.LA(1);
+                        int LA154_8 = input.LA(1);
 
                          
-                        int index141_8 = input.index();
+                        int index154_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_8);
+                        input.seek(index154_8);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA141_9 = input.LA(1);
+                        int LA154_9 = input.LA(1);
 
                          
-                        int index141_9 = input.index();
+                        int index154_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_9);
+                        input.seek(index154_9);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA141_10 = input.LA(1);
+                        int LA154_10 = input.LA(1);
 
                          
-                        int index141_10 = input.index();
+                        int index154_10 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_10);
+                        input.seek(index154_10);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA141_11 = input.LA(1);
+                        int LA154_11 = input.LA(1);
 
                          
-                        int index141_11 = input.index();
+                        int index154_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_11);
+                        input.seek(index154_11);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA141_12 = input.LA(1);
+                        int LA154_12 = input.LA(1);
 
                          
-                        int index141_12 = input.index();
+                        int index154_12 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_12);
+                        input.seek(index154_12);
                         if ( s>=0 ) return s;
                         break;
                     case 12 : 
-                        int LA141_13 = input.LA(1);
+                        int LA154_13 = input.LA(1);
 
                          
-                        int index141_13 = input.index();
+                        int index154_13 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_13);
+                        input.seek(index154_13);
                         if ( s>=0 ) return s;
                         break;
                     case 13 : 
-                        int LA141_14 = input.LA(1);
+                        int LA154_14 = input.LA(1);
 
                          
-                        int index141_14 = input.index();
+                        int index154_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_14);
+                        input.seek(index154_14);
                         if ( s>=0 ) return s;
                         break;
                     case 14 : 
-                        int LA141_15 = input.LA(1);
+                        int LA154_15 = input.LA(1);
 
                          
-                        int index141_15 = input.index();
+                        int index154_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_15);
+                        input.seek(index154_15);
                         if ( s>=0 ) return s;
                         break;
                     case 15 : 
-                        int LA141_16 = input.LA(1);
+                        int LA154_16 = input.LA(1);
 
                          
-                        int index141_16 = input.index();
+                        int index154_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_16);
+                        input.seek(index154_16);
                         if ( s>=0 ) return s;
                         break;
                     case 16 : 
-                        int LA141_17 = input.LA(1);
+                        int LA154_17 = input.LA(1);
 
                          
-                        int index141_17 = input.index();
+                        int index154_17 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_17);
+                        input.seek(index154_17);
                         if ( s>=0 ) return s;
                         break;
                     case 17 : 
-                        int LA141_18 = input.LA(1);
+                        int LA154_18 = input.LA(1);
 
                          
-                        int index141_18 = input.index();
+                        int index154_18 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_18);
+                        input.seek(index154_18);
                         if ( s>=0 ) return s;
                         break;
                     case 18 : 
-                        int LA141_19 = input.LA(1);
+                        int LA154_19 = input.LA(1);
 
                          
-                        int index141_19 = input.index();
+                        int index154_19 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_19);
+                        input.seek(index154_19);
                         if ( s>=0 ) return s;
                         break;
                     case 19 : 
-                        int LA141_20 = input.LA(1);
+                        int LA154_20 = input.LA(1);
 
                          
-                        int index141_20 = input.index();
+                        int index154_20 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_20);
+                        input.seek(index154_20);
                         if ( s>=0 ) return s;
                         break;
                     case 20 : 
-                        int LA141_21 = input.LA(1);
+                        int LA154_21 = input.LA(1);
 
                          
-                        int index141_21 = input.index();
+                        int index154_21 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_21);
+                        input.seek(index154_21);
                         if ( s>=0 ) return s;
                         break;
                     case 21 : 
-                        int LA141_22 = input.LA(1);
+                        int LA154_22 = input.LA(1);
 
                          
-                        int index141_22 = input.index();
+                        int index154_22 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_22);
+                        input.seek(index154_22);
                         if ( s>=0 ) return s;
                         break;
                     case 22 : 
-                        int LA141_23 = input.LA(1);
+                        int LA154_23 = input.LA(1);
 
                          
-                        int index141_23 = input.index();
+                        int index154_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_23);
+                        input.seek(index154_23);
                         if ( s>=0 ) return s;
                         break;
                     case 23 : 
-                        int LA141_24 = input.LA(1);
+                        int LA154_24 = input.LA(1);
 
                          
-                        int index141_24 = input.index();
+                        int index154_24 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_24);
+                        input.seek(index154_24);
                         if ( s>=0 ) return s;
                         break;
                     case 24 : 
-                        int LA141_25 = input.LA(1);
+                        int LA154_25 = input.LA(1);
 
                          
-                        int index141_25 = input.index();
+                        int index154_25 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_25);
+                        input.seek(index154_25);
                         if ( s>=0 ) return s;
                         break;
                     case 25 : 
-                        int LA141_26 = input.LA(1);
+                        int LA154_26 = input.LA(1);
 
                          
-                        int index141_26 = input.index();
+                        int index154_26 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_26);
+                        input.seek(index154_26);
                         if ( s>=0 ) return s;
                         break;
                     case 26 : 
-                        int LA141_27 = input.LA(1);
+                        int LA154_27 = input.LA(1);
 
                          
-                        int index141_27 = input.index();
+                        int index154_27 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_27);
+                        input.seek(index154_27);
                         if ( s>=0 ) return s;
                         break;
                     case 27 : 
-                        int LA141_28 = input.LA(1);
+                        int LA154_28 = input.LA(1);
 
                          
-                        int index141_28 = input.index();
+                        int index154_28 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_28);
+                        input.seek(index154_28);
                         if ( s>=0 ) return s;
                         break;
                     case 28 : 
-                        int LA141_29 = input.LA(1);
+                        int LA154_29 = input.LA(1);
 
                          
-                        int index141_29 = input.index();
+                        int index154_29 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_29);
+                        input.seek(index154_29);
                         if ( s>=0 ) return s;
                         break;
                     case 29 : 
-                        int LA141_30 = input.LA(1);
+                        int LA154_30 = input.LA(1);
 
                          
-                        int index141_30 = input.index();
+                        int index154_30 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_30);
+                        input.seek(index154_30);
                         if ( s>=0 ) return s;
                         break;
                     case 30 : 
-                        int LA141_31 = input.LA(1);
+                        int LA154_31 = input.LA(1);
 
                          
-                        int index141_31 = input.index();
+                        int index154_31 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_31);
+                        input.seek(index154_31);
                         if ( s>=0 ) return s;
                         break;
                     case 31 : 
-                        int LA141_32 = input.LA(1);
+                        int LA154_32 = input.LA(1);
 
                          
-                        int index141_32 = input.index();
+                        int index154_32 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalChartDSL()) ) {s = 77;}
+                        if ( (synpred221_InternalChartDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index141_32);
+                        input.seek(index154_32);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 141, _s, input);
+                new NoViableAltException(getDescription(), 154, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -81873,11 +85790,11 @@
     static final String dfa_79s = "\117\uffff";
     static final String dfa_80s = "\1\2\116\uffff";
     static final String dfa_81s = "\1\4\1\0\115\uffff";
-    static final String dfa_82s = "\1\u009a\1\0\115\uffff";
+    static final String dfa_82s = "\1\u00ab\1\0\115\uffff";
     static final String dfa_83s = "\2\uffff\1\2\113\uffff\1\1";
     static final String dfa_84s = "\1\uffff\1\0\115\uffff}>";
     static final String[] dfa_85s = {
-            "\5\2\5\uffff\15\2\1\1\27\2\25\uffff\2\2\1\uffff\1\2\23\uffff\1\2\1\uffff\31\2\1\uffff\1\2\32\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\15\2\1\1\27\2\34\uffff\2\2\2\uffff\1\2\32\uffff\1\2\1\uffff\31\2\1\uffff\1\2\34\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -81966,11 +85883,11 @@
     static final short[] dfa_84 = DFA.unpackEncodedString(dfa_84s);
     static final short[][] dfa_85 = unpackEncodedStringArray(dfa_85s);
 
-    class DFA150 extends DFA {
+    class DFA163 extends DFA {
 
-        public DFA150(BaseRecognizer recognizer) {
+        public DFA163(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 150;
+            this.decisionNumber = 163;
             this.eot = dfa_79;
             this.eof = dfa_80;
             this.min = dfa_81;
@@ -81980,41 +85897,41 @@
             this.transition = dfa_85;
         }
         public String getDescription() {
-            return "18512:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
+            return "19522:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA150_1 = input.LA(1);
+                        int LA163_1 = input.LA(1);
 
                          
-                        int index150_1 = input.index();
+                        int index163_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred212_InternalChartDSL()) ) {s = 78;}
+                        if ( (synpred230_InternalChartDSL()) ) {s = 78;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index150_1);
+                        input.seek(index163_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 150, _s, input);
+                new NoViableAltException(getDescription(), 163, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA153 extends DFA {
+    class DFA166 extends DFA {
 
-        public DFA153(BaseRecognizer recognizer) {
+        public DFA166(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 153;
+            this.decisionNumber = 166;
             this.eot = dfa_79;
             this.eof = dfa_80;
             this.min = dfa_81;
@@ -82024,31 +85941,31 @@
             this.transition = dfa_85;
         }
         public String getDescription() {
-            return "18782:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
+            return "19792:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA153_1 = input.LA(1);
+                        int LA166_1 = input.LA(1);
 
                          
-                        int index153_1 = input.index();
+                        int index166_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred215_InternalChartDSL()) ) {s = 78;}
+                        if ( (synpred233_InternalChartDSL()) ) {s = 78;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index153_1);
+                        input.seek(index166_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 153, _s, input);
+                new NoViableAltException(getDescription(), 166, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -82059,150 +85976,155 @@
     public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000800000000002L});
     public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000022L});
-    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
-    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
     public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000600L});
-    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
-    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
-    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000800L});
-    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000000L,0x00000000004FC000L});
-    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000000L,0x2000000000001000L});
-    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000000000L,0xC000000000000000L,0x0000000000000003L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L,0x00000000000000DCL});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L,0x0000000000000020L});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000E00L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x00000000000001C0L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
-    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000007000L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800200L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000018000L});
-    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000800000080L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x000000000E000200L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000002L,0x000000000E000000L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0078000000000000L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000040000L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0380000000000000L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0xFC00000000000000L,0x0000000000000003L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0008000000000000L,0x0000000000000000L,0x0000000000080000L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x000000000000007CL});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L,0x0000000000100000L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000800000000000L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000400000000020L,0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0001000000000020L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000001000000020L});
-    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
-    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0007E10C080001F0L,0x017FC56700000100L,0x0000000004000000L});
-    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
-    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
-    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0007E10C080001F0L,0x017FC56300000100L,0x0000000004000000L});
-    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0007E10C080001F0L,0x017FC57300000100L,0x0000000004000000L});
-    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
-    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
-    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0001E00000000020L});
-    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x000000000C1F0000L});
-    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000000008000000L});
-    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000006000000L});
-    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000008002L});
-    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000001E00000L});
-    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000001E00002L});
-    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x000000000E000000L,0x0000008000000000L});
-    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x000000000E000002L,0x0000008000000000L});
-    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000080000020L,0x0000000200000000L});
-    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
-    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x00000003FC000000L});
-    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x00000003FC000002L});
-    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000040000000L});
-    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000088000000L});
-    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000C00000000L});
-    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000C00000002L});
-    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x000000F000000000L});
-    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x000000F000000002L});
-    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000010C00000000L});
-    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
-    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
-    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000060000000000L});
-    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x0000000000C00000L});
-    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000080000000002L,0x0000000000000000L,0x0000000000C00000L});
-    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0003E00008000020L});
-    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000000000000000L,0x0000004200000000L});
-    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000080000020L,0x0400000200000000L});
-    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000004000000L,0x0000000800000000L});
-    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0007E10C880001F0L,0x017FC56700000100L,0x0000000005000000L});
-    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0007E10C080001F0L,0x017FC56300000300L,0x0000000004000000L});
-    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0007F10C880001F0L,0x017FC56300000100L,0x0000000007000000L});
-    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
-    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000080000020L,0x0000000200000000L,0x0000000001000000L});
-    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0007F10C080001F2L,0x017FC56300000100L,0x0000000006000000L});
-    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
-    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
-    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0007E10C880001F0L,0x017FC56300000100L,0x0000000004000000L});
-    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000080000020L,0x0000380A00000200L});
-    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000000080000022L,0x0000280A00000000L});
-    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000080000020L,0x0000280A00000000L});
-    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
-    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0007F10C080001F0L,0x017FC56380000100L,0x0000000006000000L});
-    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0007E10C080001F0L,0x017FC56380000100L,0x0000000004000000L});
-    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0007F10C080001F0L,0x017FC56300000100L,0x0000000006000000L});
-    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
-    public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x0007F10C080001F0L,0x017FC56300000300L,0x0000000006000000L});
-    public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x0000100000000000L,0x0000000000000000L,0x0000000002000000L});
-    public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_124 = new BitSet(new long[]{0x0000000008000000L,0x0000004200000000L});
-    public static final BitSet FOLLOW_125 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
-    public static final BitSet FOLLOW_127 = new BitSet(new long[]{0x00040000000001D0L,0x000C006000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_128 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
-    public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
-    public static final BitSet FOLLOW_130 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_131 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
-    public static final BitSet FOLLOW_132 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L});
-    public static final BitSet FOLLOW_133 = new BitSet(new long[]{0x0000000000000000L,0x0280000000000000L});
-    public static final BitSet FOLLOW_134 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
-    public static final BitSet FOLLOW_135 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
-    public static final BitSet FOLLOW_136 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
-    public static final BitSet FOLLOW_137 = new BitSet(new long[]{0x0000080000000000L});
-    public static final BitSet FOLLOW_138 = new BitSet(new long[]{0x0000080000000002L});
-    public static final BitSet FOLLOW_139 = new BitSet(new long[]{0x0000000000000180L});
-    public static final BitSet FOLLOW_140 = new BitSet(new long[]{0x0000000080000020L,0x0000000600000000L});
-    public static final BitSet FOLLOW_141 = new BitSet(new long[]{0x0002200000000000L});
-    public static final BitSet FOLLOW_142 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
-    public static final BitSet FOLLOW_143 = new BitSet(new long[]{0x0000000000000002L,0x0800000000000000L});
-    public static final BitSet FOLLOW_144 = new BitSet(new long[]{0x0000001000000000L});
-    public static final BitSet FOLLOW_145 = new BitSet(new long[]{0x0000000000000002L,0x2000000000001000L});
-    public static final BitSet FOLLOW_146 = new BitSet(new long[]{0x0000000000000002L,0xC000000000000000L,0x0000000000000003L});
-    public static final BitSet FOLLOW_147 = new BitSet(new long[]{0x0000000000000002L,0x8000000000000000L,0x00000000000000DCL});
-    public static final BitSet FOLLOW_148 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000E00L});
-    public static final BitSet FOLLOW_149 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000007000L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000000L,0x0000000000028000L,0x0000000000000800L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000010L,0x0000000000010000L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000000L,0x0000000000003F80L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000000L,0x0000000000050000L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L,0x0000000000001000L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000000000L,0x000000004FC00000L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x000000000003C000L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000DC8000L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000001000000L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x000000000E000000L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x00000000000001C0L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000070000000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000080010000L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000180000000L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000800000080L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x0000003200010000L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000002L,0x0000003200000000L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0078000000000000L,0x0000000C00000000L,0x0000000200000000L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000400000000L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0380000000000000L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0xFC00000000000000L,0x0000000000000003L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0008000000000000L,0x0000000000000000L,0x0000001000000000L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000000L,0x000000000000007CL});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x00001F8000000000L,0x0000002000000000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000800000000000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000400000000020L,0x0000000000000000L,0x0000004000000000L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0001000000000020L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000001000000020L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0007E10C080001F0L,0xE2B3800000008000L,0x00000800000000BFL});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000002L,0x0004000000000000L});
+    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0007E10C080001F0L,0xE2B1800000008000L,0x00000800000000BFL});
+    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0007E10C080001F0L,0xE2B9800000008000L,0x00000800000000BFL});
+    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
+    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0001E00000000020L});
+    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x000000000C1F0000L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000006000000L});
+    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000000008002L});
+    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000000001E00000L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000001E00002L});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x000000000E000000L,0x0040000000000000L});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x000000000E000002L,0x0040000000000000L});
+    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000080000020L,0x0001000000000000L});
+    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L});
+    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x00000003FC000000L});
+    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x00000003FC000002L});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000000004000000L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000088000000L});
+    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000C00000000L});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000C00000002L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x000000F000000000L});
+    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x000000F000000002L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000010C00000000L});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
+    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000060000000000L});
+    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x0000018000000000L});
+    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000080000000002L,0x0000000000000000L,0x0000018000000000L});
+    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x0000008000000000L});
+    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0003E00008000020L});
+    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000000L,0x0021000000000000L});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000080000020L,0x0001000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000004000000L,0x0004000000000000L});
+    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0007E10C880001F0L,0xE2B3800000008000L,0x00000A00000000BFL});
+    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0007E10C080001F0L,0xE2B1800000018000L,0x00000800000000BFL});
+    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0007F10C880001F0L,0xE2B1800000008000L,0x00000E00000000BFL});
+    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000080000020L,0x0001000000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0007F10C080001F2L,0xE2B1800000008000L,0x00000C00000000BFL});
+    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
+    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
+    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
+    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0007E10C880001F0L,0xE2B1800000008000L,0x00000800000000BFL});
+    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000000080000020L,0x1C05000000010000L});
+    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000080000022L,0x1405000000000000L});
+    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
+    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0000000080000020L,0x1405000000000000L});
+    public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
+    public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x0007F10C080001F0L,0xE2B1C00000008000L,0x00000C00000000BFL});
+    public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x0007E10C080001F0L,0xE2B1C00000008000L,0x00000800000000BFL});
+    public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x0007F10C080001F0L,0xE2B1800000008000L,0x00000C00000000BFL});
+    public static final BitSet FOLLOW_124 = new BitSet(new long[]{0x0000000000000000L,0x4000000000000000L});
+    public static final BitSet FOLLOW_125 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
+    public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0007F10C080001F0L,0xE2B1800000018000L,0x00000C00000000BFL});
+    public static final BitSet FOLLOW_127 = new BitSet(new long[]{0x0000100000000000L,0x0000000000000000L,0x0000040000000000L});
+    public static final BitSet FOLLOW_128 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x0000000008000000L,0x0021000000000000L});
+    public static final BitSet FOLLOW_130 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_131 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_132 = new BitSet(new long[]{0x00040000000001D0L,0x0030000000000000L,0x0000080000000006L});
+    public static final BitSet FOLLOW_133 = new BitSet(new long[]{0x0000000000000000L,0x0022000000000000L});
+    public static final BitSet FOLLOW_134 = new BitSet(new long[]{0x0000000000000002L,0x0020000000000000L});
+    public static final BitSet FOLLOW_135 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_136 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_137 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_138 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000140L});
+    public static final BitSet FOLLOW_139 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_140 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_141 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
+    public static final BitSet FOLLOW_142 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_143 = new BitSet(new long[]{0x0000080000000002L});
+    public static final BitSet FOLLOW_144 = new BitSet(new long[]{0x0000000000000180L});
+    public static final BitSet FOLLOW_145 = new BitSet(new long[]{0x0000000080000020L,0x0003000000000000L});
+    public static final BitSet FOLLOW_146 = new BitSet(new long[]{0x0002200000000000L});
+    public static final BitSet FOLLOW_147 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_148 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_149 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_150 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_151 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x000000000003C000L});
+    public static final BitSet FOLLOW_152 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000DC8000L});
+    public static final BitSet FOLLOW_153 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x000000000E000000L});
+    public static final BitSet FOLLOW_154 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000070000000L});
 
 }
diff --git a/org.eclipse.osbp.xtext.chart.ui/src-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/AbstractChartDSLProposalProvider.java b/org.eclipse.osbp.xtext.chart.ui/src-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/AbstractChartDSLProposalProvider.java
index 6d74846..93bb958 100644
--- a/org.eclipse.osbp.xtext.chart.ui/src-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/AbstractChartDSLProposalProvider.java
+++ b/org.eclipse.osbp.xtext.chart.ui/src-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/AbstractChartDSLProposalProvider.java
@@ -42,9 +42,21 @@
 	public void completeChartPackage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeChartPackage_HasColors(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeChartPackage_Colors(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeChartPackage_DefaultFontFamily(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeChartPackage_Charts(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeSeriesColor_Rgb(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeChart_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -156,6 +168,9 @@
 	public void completeChartDatamart_Elements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeChartLegend_NoLegend(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void completeChartLegend_Placement(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -168,6 +183,12 @@
 	public void completeChartLegend_ToggleType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeChartLegend_FontSize(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeChartLegend_TextColor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeChartHighlighter_Location(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -186,7 +207,22 @@
 	public void completeChartAxis_ShortLabel(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void completeChartAxis_Angle(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeChartAxis_LabelAngle(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeChartAxis_LabelFontSize(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeChartAxis_LabelTextColor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeChartAxis_TickAngle(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeChartAxis_TickFontSize(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeChartAxis_TickTextColor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
 	public void completeChartSegmentColor_Rgb(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -199,6 +235,9 @@
 	public void complete_ChartPackage(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void complete_SeriesColor(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void complete_Chart(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
@@ -274,4 +313,7 @@
 	public void complete_RenderTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void complete_CanvasFontFamilyEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 }
diff --git a/org.eclipse.osbp.xtext.chart.ui/src/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.xtend b/org.eclipse.osbp.xtext.chart.ui/src/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.xtend
index dab2f86..f6925d8 100644
--- a/org.eclipse.osbp.xtext.chart.ui/src/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.xtend
+++ b/org.eclipse.osbp.xtext.chart.ui/src/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.xtend
@@ -24,7 +24,6 @@
 import org.eclipse.jface.viewers.StyledString
 import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper
 import org.eclipse.osbp.xtext.chart.ChartAxis
-import org.eclipse.osbp.xtext.chart.RenderTypeEnum
 import org.eclipse.osbp.xtext.chart.ui.ChartDSLDocumentationTranslator
 import org.eclipse.swt.widgets.ColorDialog
 import org.eclipse.xtext.Assignment
@@ -69,15 +68,30 @@
 		return true
 	}
 
-	override public void completeChartSegmentColor_Rgb(EObject model, Assignment assignment,
-		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	override completeChartAxis_TickTextColor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		colorPickerProposal(model, assignment, context, acceptor)
+	}
+
+	override completeChartAxis_LabelTextColor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		colorPickerProposal(model, assignment, context, acceptor)
+	}
+	
+	override completeChartLegend_TextColor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		colorPickerProposal(model, assignment, context, acceptor)
+	}
+
+	override completeChartPackage_Colors(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		colorPickerProposal(model, assignment, context, acceptor)
+	}
+	
+	override public void completeChartSegmentColor_Rgb(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		colorPickerProposal(model, assignment, context, acceptor)
 	}
 
 	def colorPickerProposal(EObject model, Assignment assignment, ContentAssistContext context,
 		ICompletionProposalAcceptor acceptor) {
 		var pickColor = createCompletionProposal("Pick color...", context) as ConfigurableCompletionProposal
-		if (pickColor != null) {
+		if (pickColor !== null) {
 			var applier = new MyReplacementTextApplier()
 			applier.setContext(context)
 			pickColor.setTextApplier = applier
@@ -86,7 +100,7 @@
 
 		// predefined colors
 		acceptor.accept(createCompletionProposal("\"230,128,64\" /* orange */", "orange", null, context));
-		acceptor.accept(createCompletionProposal("\"255,182,182\" /* light red */", "light red", null, context));
+		acceptor.accept(createCompletionProposal("\"255,82,82\" /* light red */", "light red", null, context));
 		acceptor.accept(createCompletionProposal("\"255,0,0\" /* red */", "red", null, context));
 		acceptor.accept(createCompletionProposal("\"204,102,102\" /* dark red */", "dark red", null, context));
 		acceptor.accept(createCompletionProposal("\"255,255,128\" /*light yellow */", "light yellow", null, context));
@@ -95,8 +109,14 @@
 		acceptor.accept(createCompletionProposal("\"102,204,102\" /* light green */", "light green", null, context));
 		acceptor.accept(createCompletionProposal("\"0,255,0\" /* green */", "green", null, context));
 		acceptor.accept(createCompletionProposal("\"147,183,95\" /* dark green */", "dark green", null, context));
+		acceptor.accept(createCompletionProposal("\"102,102,204\" /* light blue */", "light blue", null, context));
+		acceptor.accept(createCompletionProposal("\"0,0,255\" /* blue */", "blue", null, context));
+		acceptor.accept(createCompletionProposal("\"147,95,183\" /* dark blue */", "dark blue", null, context));
 		acceptor.accept(createCompletionProposal("\"0,0,0\" /* black */", "black", null, context));
 		acceptor.accept(createCompletionProposal("\"255,255,255\" /* white */", "white", null, context));
+		acceptor.accept(createCompletionProposal("\"0,0,255\" /* blue */", "blue", null, context));
+		acceptor.accept(createCompletionProposal("\"0,0,128\" /* dark blue */", "dark blue", null, context));
+		acceptor.accept(createCompletionProposal("\"82,182,255\" /* light blue */", "light blue", null, context));
 	}
 
 	override protected isValidProposal(String proposal, String prefix, ContentAssistContext context) {
@@ -118,7 +138,14 @@
 		providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this)
 	}
 
-	override public void completeChartAxis_Angle(EObject model, Assignment assignment, ContentAssistContext context,
+	override public void completeChartAxis_TickAngle(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		var ruleCall = (assignment.getTerminal() as RuleCall)
+		var feature = providerHelper.getAssignedFeature(ruleCall);
+		providerHelper.createIntProposal(context, acceptor, ruleCall, feature, 0, "value between -360 and 360", this)
+	}
+
+	override public void completeChartAxis_LabelAngle(EObject model, Assignment assignment, ContentAssistContext context,
 		ICompletionProposalAcceptor acceptor) {
 		var ruleCall = (assignment.getTerminal() as RuleCall)
 		var feature = providerHelper.getAssignedFeature(ruleCall);
diff --git a/org.eclipse.osbp.xtext.chart.ui/xtend-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.java b/org.eclipse.osbp.xtext.chart.ui/xtend-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.java
index 8545702..e3e020c 100644
--- a/org.eclipse.osbp.xtext.chart.ui/xtend-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.java
+++ b/org.eclipse.osbp.xtext.chart.ui/xtend-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.java
@@ -16,7 +16,6 @@
  */
 package org.eclipse.osbp.xtext.chart.ui.contentassist;
 
-import com.google.common.base.Objects;
 import com.google.inject.Inject;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.text.contentassist.ICompletionProposal;
@@ -58,6 +57,26 @@
   }
   
   @Override
+  public void completeChartAxis_TickTextColor(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.colorPickerProposal(model, assignment, context, acceptor);
+  }
+  
+  @Override
+  public void completeChartAxis_LabelTextColor(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.colorPickerProposal(model, assignment, context, acceptor);
+  }
+  
+  @Override
+  public void completeChartLegend_TextColor(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.colorPickerProposal(model, assignment, context, acceptor);
+  }
+  
+  @Override
+  public void completeChartPackage_Colors(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.colorPickerProposal(model, assignment, context, acceptor);
+  }
+  
+  @Override
   public void completeChartSegmentColor_Rgb(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     this.colorPickerProposal(model, assignment, context, acceptor);
   }
@@ -65,15 +84,14 @@
   public void colorPickerProposal(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     ICompletionProposal _createCompletionProposal = this.createCompletionProposal("Pick color...", context);
     ConfigurableCompletionProposal pickColor = ((ConfigurableCompletionProposal) _createCompletionProposal);
-    boolean _notEquals = (!Objects.equal(pickColor, null));
-    if (_notEquals) {
+    if ((pickColor != null)) {
       MyReplacementTextApplier applier = new MyReplacementTextApplier();
       applier.setContext(context);
       pickColor.setTextApplier(applier);
     }
     acceptor.accept(pickColor);
     acceptor.accept(this.createCompletionProposal("\"230,128,64\" /* orange */", "orange", null, context));
-    acceptor.accept(this.createCompletionProposal("\"255,182,182\" /* light red */", "light red", null, context));
+    acceptor.accept(this.createCompletionProposal("\"255,82,82\" /* light red */", "light red", null, context));
     acceptor.accept(this.createCompletionProposal("\"255,0,0\" /* red */", "red", null, context));
     acceptor.accept(this.createCompletionProposal("\"204,102,102\" /* dark red */", "dark red", null, context));
     acceptor.accept(this.createCompletionProposal("\"255,255,128\" /*light yellow */", "light yellow", null, context));
@@ -82,8 +100,14 @@
     acceptor.accept(this.createCompletionProposal("\"102,204,102\" /* light green */", "light green", null, context));
     acceptor.accept(this.createCompletionProposal("\"0,255,0\" /* green */", "green", null, context));
     acceptor.accept(this.createCompletionProposal("\"147,183,95\" /* dark green */", "dark green", null, context));
+    acceptor.accept(this.createCompletionProposal("\"102,102,204\" /* light blue */", "light blue", null, context));
+    acceptor.accept(this.createCompletionProposal("\"0,0,255\" /* blue */", "blue", null, context));
+    acceptor.accept(this.createCompletionProposal("\"147,95,183\" /* dark blue */", "dark blue", null, context));
     acceptor.accept(this.createCompletionProposal("\"0,0,0\" /* black */", "black", null, context));
     acceptor.accept(this.createCompletionProposal("\"255,255,255\" /* white */", "white", null, context));
+    acceptor.accept(this.createCompletionProposal("\"0,0,255\" /* blue */", "blue", null, context));
+    acceptor.accept(this.createCompletionProposal("\"0,0,128\" /* dark blue */", "dark blue", null, context));
+    acceptor.accept(this.createCompletionProposal("\"82,182,255\" /* light blue */", "light blue", null, context));
   }
   
   @Override
@@ -102,7 +126,15 @@
   }
   
   @Override
-  public void completeChartAxis_Angle(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+  public void completeChartAxis_TickAngle(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    AbstractElement _terminal = assignment.getTerminal();
+    RuleCall ruleCall = ((RuleCall) _terminal);
+    String feature = this.providerHelper.getAssignedFeature(ruleCall);
+    this.providerHelper.createIntProposal(context, acceptor, ruleCall, feature, 0, "value between -360 and 360", this);
+  }
+  
+  @Override
+  public void completeChartAxis_LabelAngle(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     AbstractElement _terminal = assignment.getTerminal();
     RuleCall ruleCall = ((RuleCall) _terminal);
     String feature = this.providerHelper.getAssignedFeature(ruleCall);
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/CanvasFontFamilyEnum.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/CanvasFontFamilyEnum.java
new file mode 100644
index 0000000..840a224
--- /dev/null
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/CanvasFontFamilyEnum.java
@@ -0,0 +1,356 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License 2.0  
+ *  which accompanies this distribution, and is available at 
+ *  https://www.eclipse.org/legal/epl-2.0/ 
+ *  
+ *  SPDX-License-Identifier: EPL-2.0 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.chart;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Canvas Font Family Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getCanvasFontFamilyEnum()
+ * @model
+ * @generated
+ */
+public enum CanvasFontFamilyEnum implements Enumerator {
+	/**
+	 * The '<em><b>DEFAULT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DEFAULT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DEFAULT(0, "DEFAULT", "Default"),
+
+	/**
+	 * The '<em><b>ARIAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ARIAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ARIAL(0, "ARIAL", "Arial"),
+
+	/**
+	 * The '<em><b>VERDANA</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #VERDANA_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	VERDANA(0, "VERDANA", "Verdana"),
+
+	/**
+	 * The '<em><b>TIMESNEWROMAN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TIMESNEWROMAN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TIMESNEWROMAN(0, "TIMESNEWROMAN", "Times New Roman"),
+
+	/**
+	 * The '<em><b>COURIERNEW</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #COURIERNEW_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	COURIERNEW(0, "COURIERNEW", "Courier New"),
+
+	/**
+	 * The '<em><b>SERIF</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SERIF_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SERIF(0, "SERIF", "serif"),
+
+	/**
+	 * The '<em><b>SANSERIF</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SANSERIF_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SANSERIF(0, "SANSERIF", "sans-serif");
+
+	/**
+	 * The '<em><b>DEFAULT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DEFAULT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DEFAULT
+	 * @model literal="Default"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DEFAULT_VALUE = 0;
+
+	/**
+	 * The '<em><b>ARIAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ARIAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ARIAL
+	 * @model literal="Arial"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ARIAL_VALUE = 0;
+
+	/**
+	 * The '<em><b>VERDANA</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>VERDANA</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #VERDANA
+	 * @model literal="Verdana"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int VERDANA_VALUE = 0;
+
+	/**
+	 * The '<em><b>TIMESNEWROMAN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TIMESNEWROMAN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TIMESNEWROMAN
+	 * @model literal="Times New Roman"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TIMESNEWROMAN_VALUE = 0;
+
+	/**
+	 * The '<em><b>COURIERNEW</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>COURIERNEW</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #COURIERNEW
+	 * @model literal="Courier New"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int COURIERNEW_VALUE = 0;
+
+	/**
+	 * The '<em><b>SERIF</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SERIF</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SERIF
+	 * @model literal="serif"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SERIF_VALUE = 0;
+
+	/**
+	 * The '<em><b>SANSERIF</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SANSERIF</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SANSERIF
+	 * @model literal="sans-serif"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SANSERIF_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Canvas Font Family Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final CanvasFontFamilyEnum[] VALUES_ARRAY =
+		new CanvasFontFamilyEnum[] {
+			DEFAULT,
+			ARIAL,
+			VERDANA,
+			TIMESNEWROMAN,
+			COURIERNEW,
+			SERIF,
+			SANSERIF,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Canvas Font Family Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<CanvasFontFamilyEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Canvas Font Family Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static CanvasFontFamilyEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CanvasFontFamilyEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Canvas Font Family Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static CanvasFontFamilyEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CanvasFontFamilyEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Canvas Font Family Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static CanvasFontFamilyEnum get(int value) {
+		switch (value) {
+			case DEFAULT_VALUE: return DEFAULT;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private CanvasFontFamilyEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //CanvasFontFamilyEnum
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartAxis.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartAxis.java
index df83c53..d66b13f 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartAxis.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartAxis.java
@@ -29,7 +29,12 @@
  *   <li>{@link org.eclipse.osbp.xtext.chart.ChartAxis#getAxis <em>Axis</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.ChartAxis#getRenderType <em>Render Type</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.ChartAxis#isShortLabel <em>Short Label</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.chart.ChartAxis#getAngle <em>Angle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartAxis#getLabelAngle <em>Label Angle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartAxis#getLabelFontSize <em>Label Font Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartAxis#getLabelTextColor <em>Label Text Color</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartAxis#getTickAngle <em>Tick Angle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartAxis#getTickFontSize <em>Tick Font Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartAxis#getTickTextColor <em>Tick Text Color</em>}</li>
  * </ul>
  *
  * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartAxis()
@@ -119,29 +124,159 @@
 	void setShortLabel(boolean value);
 
 	/**
-	 * Returns the value of the '<em><b>Angle</b></em>' attribute.
+	 * Returns the value of the '<em><b>Label Angle</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Angle</em>' attribute isn't clear,
+	 * If the meaning of the '<em>Label Angle</em>' attribute isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Angle</em>' attribute.
-	 * @see #setAngle(int)
-	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartAxis_Angle()
+	 * @return the value of the '<em>Label Angle</em>' attribute.
+	 * @see #setLabelAngle(int)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartAxis_LabelAngle()
 	 * @model unique="false"
 	 * @generated
 	 */
-	int getAngle();
+	int getLabelAngle();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getAngle <em>Angle</em>}' attribute.
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getLabelAngle <em>Label Angle</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Angle</em>' attribute.
-	 * @see #getAngle()
+	 * @param value the new value of the '<em>Label Angle</em>' attribute.
+	 * @see #getLabelAngle()
 	 * @generated
 	 */
-	void setAngle(int value);
+	void setLabelAngle(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Label Font Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Label Font Size</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Label Font Size</em>' attribute.
+	 * @see #setLabelFontSize(int)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartAxis_LabelFontSize()
+	 * @model unique="false"
+	 * @generated
+	 */
+	int getLabelFontSize();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getLabelFontSize <em>Label Font Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Label Font Size</em>' attribute.
+	 * @see #getLabelFontSize()
+	 * @generated
+	 */
+	void setLabelFontSize(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Label Text Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Label Text Color</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Label Text Color</em>' attribute.
+	 * @see #setLabelTextColor(String)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartAxis_LabelTextColor()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getLabelTextColor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getLabelTextColor <em>Label Text Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Label Text Color</em>' attribute.
+	 * @see #getLabelTextColor()
+	 * @generated
+	 */
+	void setLabelTextColor(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Tick Angle</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tick Angle</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tick Angle</em>' attribute.
+	 * @see #setTickAngle(int)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartAxis_TickAngle()
+	 * @model unique="false"
+	 * @generated
+	 */
+	int getTickAngle();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getTickAngle <em>Tick Angle</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Tick Angle</em>' attribute.
+	 * @see #getTickAngle()
+	 * @generated
+	 */
+	void setTickAngle(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Tick Font Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tick Font Size</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tick Font Size</em>' attribute.
+	 * @see #setTickFontSize(int)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartAxis_TickFontSize()
+	 * @model unique="false"
+	 * @generated
+	 */
+	int getTickFontSize();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getTickFontSize <em>Tick Font Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Tick Font Size</em>' attribute.
+	 * @see #getTickFontSize()
+	 * @generated
+	 */
+	void setTickFontSize(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Tick Text Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tick Text Color</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tick Text Color</em>' attribute.
+	 * @see #setTickTextColor(String)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartAxis_TickTextColor()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getTickTextColor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getTickTextColor <em>Tick Text Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Tick Text Color</em>' attribute.
+	 * @see #getTickTextColor()
+	 * @generated
+	 */
+	void setTickTextColor(String value);
 
 } // ChartAxis
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartDSLFactory.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartDSLFactory.java
index 148ba4c..68aa159 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartDSLFactory.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartDSLFactory.java
@@ -71,6 +71,24 @@
 	ChartPackage createChartPackage();
 
 	/**
+	 * Returns a new object of class '<em>Series Color</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Series Color</em>'.
+	 * @generated
+	 */
+	SeriesColor createSeriesColor();
+
+	/**
+	 * Returns a new object of class '<em>Text Color</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Text Color</em>'.
+	 * @generated
+	 */
+	TextColor createTextColor();
+
+	/**
 	 * Returns a new object of class '<em>Chart</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartDSLPackage.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartDSLPackage.java
index 9e8caa5..aba7390 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartDSLPackage.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartDSLPackage.java
@@ -39,7 +39,7 @@
  * <!-- end-user-doc -->
  * @see org.eclipse.osbp.xtext.chart.ChartDSLFactory
  * @model kind="package"
- *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='chart' modelName='ChartDSL' prefix='ChartDSL' loadInitialization='false' literalsInterface='true' copyrightText='Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)\n All rights reserved. This program and the accompanying materials \n are made available under the terms of the Eclipse Public License 2.0  \n which accompanies this distribution, and is available at \n https://www.eclipse.org/legal/epl-2.0/ \n \n SPDX-License-Identifier: EPL-2.0 \n\n Based on ideas from Xtext, Xtend, Xcore\n  \n Contributors:  \n \t\tJoerg Riegel - Initial implementation \n ' basePackage='org.eclipse.osbp.xtext'"
+ *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='chart' modelName='ChartDSL' prefix='ChartDSL' loadInitialization='false' literalsInterface='true' copyrightText='Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)\r\n All rights reserved. This program and the accompanying materials \r\n are made available under the terms of the Eclipse Public License 2.0  \r\n which accompanies this distribution, and is available at \r\n https://www.eclipse.org/legal/epl-2.0/ \r\n \r\n SPDX-License-Identifier: EPL-2.0 \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n  \r\n Contributors:  \r\n \t\tJoerg Riegel - Initial implementation \r\n ' basePackage='org.eclipse.osbp.xtext'"
  *        annotation="http://www.eclipse.org/emf/2002/Ecore rootPackage='chartdsl'"
  * @generated
  */
@@ -225,13 +225,40 @@
 	int CHART_PACKAGE__NAME = OSBPTypesPackage.LPACKAGE__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Has Colors</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHART_PACKAGE__HAS_COLORS = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Colors</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHART_PACKAGE__COLORS = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Default Font Family</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHART_PACKAGE__DEFAULT_FONT_FAMILY = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 2;
+
+	/**
 	 * The feature id for the '<em><b>Charts</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CHART_PACKAGE__CHARTS = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 0;
+	int CHART_PACKAGE__CHARTS = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Chart Package</em>' class.
@@ -240,7 +267,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHART_PACKAGE_FEATURE_COUNT = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 1;
+	int CHART_PACKAGE_FEATURE_COUNT = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 4;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -249,7 +276,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHART_PACKAGE___ERESOLVE_PROXY__OBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int CHART_PACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
 	 * The number of operations of the '<em>Chart Package</em>' class.
@@ -261,6 +288,98 @@
 	int CHART_PACKAGE_OPERATION_COUNT = OSBPTypesPackage.LPACKAGE_OPERATION_COUNT + 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.chart.impl.SeriesColorImpl <em>Series Color</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.chart.impl.SeriesColorImpl
+	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getSeriesColor()
+	 * @generated
+	 */
+	int SERIES_COLOR = 4;
+
+	/**
+	 * The feature id for the '<em><b>Rgb</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SERIES_COLOR__RGB = CHART_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Series Color</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SERIES_COLOR_FEATURE_COUNT = CHART_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SERIES_COLOR___ERESOLVE_PROXY__INTERNALEOBJECT = CHART_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Series Color</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SERIES_COLOR_OPERATION_COUNT = CHART_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.chart.impl.TextColorImpl <em>Text Color</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.chart.impl.TextColorImpl
+	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getTextColor()
+	 * @generated
+	 */
+	int TEXT_COLOR = 5;
+
+	/**
+	 * The feature id for the '<em><b>Rgb</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT_COLOR__RGB = CHART_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Text Color</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT_COLOR_FEATURE_COUNT = CHART_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT_COLOR___ERESOLVE_PROXY__INTERNALEOBJECT = CHART_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Text Color</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT_COLOR_OPERATION_COUNT = CHART_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.chart.impl.ChartImpl <em>Chart</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -268,7 +387,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChart()
 	 * @generated
 	 */
-	int CHART = 4;
+	int CHART = 6;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -368,7 +487,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartOption()
 	 * @generated
 	 */
-	int CHART_OPTION = 5;
+	int CHART_OPTION = 7;
 
 	/**
 	 * The number of structural features of the '<em>Chart Option</em>' class.
@@ -405,7 +524,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartBar()
 	 * @generated
 	 */
-	int CHART_BAR = 6;
+	int CHART_BAR = 8;
 
 	/**
 	 * The feature id for the '<em><b>Shadow</b></em>' attribute.
@@ -478,7 +597,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartLine()
 	 * @generated
 	 */
-	int CHART_LINE = 7;
+	int CHART_LINE = 9;
 
 	/**
 	 * The feature id for the '<em><b>Animated</b></em>' attribute.
@@ -587,7 +706,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartPie()
 	 * @generated
 	 */
-	int CHART_PIE = 8;
+	int CHART_PIE = 10;
 
 	/**
 	 * The feature id for the '<em><b>Empty</b></em>' attribute.
@@ -633,7 +752,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartDonut()
 	 * @generated
 	 */
-	int CHART_DONUT = 9;
+	int CHART_DONUT = 11;
 
 	/**
 	 * The number of structural features of the '<em>Chart Donut</em>' class.
@@ -670,7 +789,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartBubble()
 	 * @generated
 	 */
-	int CHART_BUBBLE = 10;
+	int CHART_BUBBLE = 12;
 
 	/**
 	 * The feature id for the '<em><b>Multiplier</b></em>' attribute.
@@ -743,7 +862,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartGauge()
 	 * @generated
 	 */
-	int CHART_GAUGE = 11;
+	int CHART_GAUGE = 13;
 
 	/**
 	 * The feature id for the '<em><b>Labeled</b></em>' attribute.
@@ -843,7 +962,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartTree()
 	 * @generated
 	 */
-	int CHART_TREE = 12;
+	int CHART_TREE = 14;
 
 	/**
 	 * The feature id for the '<em><b>Map</b></em>' attribute.
@@ -898,7 +1017,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartInterval()
 	 * @generated
 	 */
-	int CHART_INTERVAL = 13;
+	int CHART_INTERVAL = 15;
 
 	/**
 	 * The number of structural features of the '<em>Chart Interval</em>' class.
@@ -935,7 +1054,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartNumberInterval()
 	 * @generated
 	 */
-	int CHART_NUMBER_INTERVAL = 14;
+	int CHART_NUMBER_INTERVAL = 16;
 
 	/**
 	 * The feature id for the '<em><b>Number Interval Value</b></em>' attribute.
@@ -990,7 +1109,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartDatamart()
 	 * @generated
 	 */
-	int CHART_DATAMART = 15;
+	int CHART_DATAMART = 17;
 
 	/**
 	 * The feature id for the '<em><b>Datamart Ref</b></em>' reference.
@@ -1045,7 +1164,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartElement()
 	 * @generated
 	 */
-	int CHART_ELEMENT = 16;
+	int CHART_ELEMENT = 18;
 
 	/**
 	 * The number of structural features of the '<em>Chart Element</em>' class.
@@ -1082,7 +1201,16 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartLegend()
 	 * @generated
 	 */
-	int CHART_LEGEND = 17;
+	int CHART_LEGEND = 19;
+
+	/**
+	 * The feature id for the '<em><b>No Legend</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHART_LEGEND__NO_LEGEND = CHART_ELEMENT_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Placement</b></em>' attribute.
@@ -1091,7 +1219,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHART_LEGEND__PLACEMENT = CHART_ELEMENT_FEATURE_COUNT + 0;
+	int CHART_LEGEND__PLACEMENT = CHART_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Toggle</b></em>' attribute.
@@ -1100,7 +1228,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHART_LEGEND__TOGGLE = CHART_ELEMENT_FEATURE_COUNT + 1;
+	int CHART_LEGEND__TOGGLE = CHART_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Replot</b></em>' attribute.
@@ -1109,7 +1237,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHART_LEGEND__REPLOT = CHART_ELEMENT_FEATURE_COUNT + 2;
+	int CHART_LEGEND__REPLOT = CHART_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Toggle Type</b></em>' attribute.
@@ -1118,7 +1246,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHART_LEGEND__TOGGLE_TYPE = CHART_ELEMENT_FEATURE_COUNT + 3;
+	int CHART_LEGEND__TOGGLE_TYPE = CHART_ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Font Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHART_LEGEND__FONT_SIZE = CHART_ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Text Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHART_LEGEND__TEXT_COLOR = CHART_ELEMENT_FEATURE_COUNT + 6;
 
 	/**
 	 * The number of structural features of the '<em>Chart Legend</em>' class.
@@ -1127,7 +1273,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHART_LEGEND_FEATURE_COUNT = CHART_ELEMENT_FEATURE_COUNT + 4;
+	int CHART_LEGEND_FEATURE_COUNT = CHART_ELEMENT_FEATURE_COUNT + 7;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -1155,7 +1301,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartHighlighter()
 	 * @generated
 	 */
-	int CHART_HIGHLIGHTER = 18;
+	int CHART_HIGHLIGHTER = 20;
 
 	/**
 	 * The feature id for the '<em><b>Location</b></em>' attribute.
@@ -1219,7 +1365,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartAxis()
 	 * @generated
 	 */
-	int CHART_AXIS = 19;
+	int CHART_AXIS = 21;
 
 	/**
 	 * The feature id for the '<em><b>Axis</b></em>' reference.
@@ -1249,13 +1395,58 @@
 	int CHART_AXIS__SHORT_LABEL = CHART_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
-	 * The feature id for the '<em><b>Angle</b></em>' attribute.
+	 * The feature id for the '<em><b>Label Angle</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CHART_AXIS__ANGLE = CHART_ELEMENT_FEATURE_COUNT + 3;
+	int CHART_AXIS__LABEL_ANGLE = CHART_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Label Font Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHART_AXIS__LABEL_FONT_SIZE = CHART_ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Label Text Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHART_AXIS__LABEL_TEXT_COLOR = CHART_ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Tick Angle</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHART_AXIS__TICK_ANGLE = CHART_ELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Tick Font Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHART_AXIS__TICK_FONT_SIZE = CHART_ELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Tick Text Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHART_AXIS__TICK_TEXT_COLOR = CHART_ELEMENT_FEATURE_COUNT + 8;
 
 	/**
 	 * The number of structural features of the '<em>Chart Axis</em>' class.
@@ -1264,7 +1455,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHART_AXIS_FEATURE_COUNT = CHART_ELEMENT_FEATURE_COUNT + 4;
+	int CHART_AXIS_FEATURE_COUNT = CHART_ELEMENT_FEATURE_COUNT + 9;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -1292,7 +1483,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartRangeElement()
 	 * @generated
 	 */
-	int CHART_RANGE_ELEMENT = 20;
+	int CHART_RANGE_ELEMENT = 22;
 
 	/**
 	 * The number of structural features of the '<em>Chart Range Element</em>' class.
@@ -1329,7 +1520,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getChartSegmentColor()
 	 * @generated
 	 */
-	int CHART_SEGMENT_COLOR = 21;
+	int CHART_SEGMENT_COLOR = 23;
 
 	/**
 	 * The feature id for the '<em><b>Rgb</b></em>' attribute.
@@ -1375,7 +1566,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getLegendPlacementEnum()
 	 * @generated
 	 */
-	int LEGEND_PLACEMENT_ENUM = 22;
+	int LEGEND_PLACEMENT_ENUM = 24;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.chart.ToggleTypeEnum <em>Toggle Type Enum</em>}' enum.
@@ -1385,7 +1576,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getToggleTypeEnum()
 	 * @generated
 	 */
-	int TOGGLE_TYPE_ENUM = 23;
+	int TOGGLE_TYPE_ENUM = 25;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.chart.TooltipLocationEnum <em>Tooltip Location Enum</em>}' enum.
@@ -1395,7 +1586,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getTooltipLocationEnum()
 	 * @generated
 	 */
-	int TOOLTIP_LOCATION_ENUM = 24;
+	int TOOLTIP_LOCATION_ENUM = 26;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.chart.RenderTypeEnum <em>Render Type Enum</em>}' enum.
@@ -1405,7 +1596,17 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getRenderTypeEnum()
 	 * @generated
 	 */
-	int RENDER_TYPE_ENUM = 25;
+	int RENDER_TYPE_ENUM = 27;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum <em>Canvas Font Family Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum
+	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getCanvasFontFamilyEnum()
+	 * @generated
+	 */
+	int CANVAS_FONT_FAMILY_ENUM = 28;
 
 	/**
 	 * The meta object id for the '<em>Internal EObject</em>' data type.
@@ -1415,7 +1616,7 @@
 	 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getInternalEObject()
 	 * @generated
 	 */
-	int INTERNAL_EOBJECT = 26;
+	int INTERNAL_EOBJECT = 29;
 
 
 	/**
@@ -1502,6 +1703,39 @@
 	EClass getChartPackage();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartPackage#isHasColors <em>Has Colors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Has Colors</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartPackage#isHasColors()
+	 * @see #getChartPackage()
+	 * @generated
+	 */
+	EAttribute getChartPackage_HasColors();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.chart.ChartPackage#getColors <em>Colors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Colors</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartPackage#getColors()
+	 * @see #getChartPackage()
+	 * @generated
+	 */
+	EReference getChartPackage_Colors();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartPackage#getDefaultFontFamily <em>Default Font Family</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Font Family</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartPackage#getDefaultFontFamily()
+	 * @see #getChartPackage()
+	 * @generated
+	 */
+	EAttribute getChartPackage_DefaultFontFamily();
+
+	/**
 	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.chart.ChartPackage#getCharts <em>Charts</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1513,6 +1747,48 @@
 	EReference getChartPackage_Charts();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.chart.SeriesColor <em>Series Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Series Color</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.SeriesColor
+	 * @generated
+	 */
+	EClass getSeriesColor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.SeriesColor#getRgb <em>Rgb</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Rgb</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.SeriesColor#getRgb()
+	 * @see #getSeriesColor()
+	 * @generated
+	 */
+	EAttribute getSeriesColor_Rgb();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.chart.TextColor <em>Text Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Text Color</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.TextColor
+	 * @generated
+	 */
+	EClass getTextColor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.TextColor#getRgb <em>Rgb</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Rgb</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.TextColor#getRgb()
+	 * @see #getTextColor()
+	 * @generated
+	 */
+	EAttribute getTextColor_Rgb();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.chart.Chart <em>Chart</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2049,6 +2325,17 @@
 	EClass getChartLegend();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartLegend#isNoLegend <em>No Legend</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>No Legend</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartLegend#isNoLegend()
+	 * @see #getChartLegend()
+	 * @generated
+	 */
+	EAttribute getChartLegend_NoLegend();
+
+	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartLegend#getPlacement <em>Placement</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2093,6 +2380,28 @@
 	EAttribute getChartLegend_ToggleType();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartLegend#getFontSize <em>Font Size</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Font Size</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartLegend#getFontSize()
+	 * @see #getChartLegend()
+	 * @generated
+	 */
+	EAttribute getChartLegend_FontSize();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartLegend#getTextColor <em>Text Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Text Color</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartLegend#getTextColor()
+	 * @see #getChartLegend()
+	 * @generated
+	 */
+	EAttribute getChartLegend_TextColor();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.chart.ChartHighlighter <em>Chart Highlighter</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2179,15 +2488,70 @@
 	EAttribute getChartAxis_ShortLabel();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getAngle <em>Angle</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getLabelAngle <em>Label Angle</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Angle</em>'.
-	 * @see org.eclipse.osbp.xtext.chart.ChartAxis#getAngle()
+	 * @return the meta object for the attribute '<em>Label Angle</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartAxis#getLabelAngle()
 	 * @see #getChartAxis()
 	 * @generated
 	 */
-	EAttribute getChartAxis_Angle();
+	EAttribute getChartAxis_LabelAngle();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getLabelFontSize <em>Label Font Size</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Label Font Size</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartAxis#getLabelFontSize()
+	 * @see #getChartAxis()
+	 * @generated
+	 */
+	EAttribute getChartAxis_LabelFontSize();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getLabelTextColor <em>Label Text Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Label Text Color</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartAxis#getLabelTextColor()
+	 * @see #getChartAxis()
+	 * @generated
+	 */
+	EAttribute getChartAxis_LabelTextColor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getTickAngle <em>Tick Angle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tick Angle</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartAxis#getTickAngle()
+	 * @see #getChartAxis()
+	 * @generated
+	 */
+	EAttribute getChartAxis_TickAngle();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getTickFontSize <em>Tick Font Size</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tick Font Size</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartAxis#getTickFontSize()
+	 * @see #getChartAxis()
+	 * @generated
+	 */
+	EAttribute getChartAxis_TickFontSize();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.chart.ChartAxis#getTickTextColor <em>Tick Text Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tick Text Color</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.ChartAxis#getTickTextColor()
+	 * @see #getChartAxis()
+	 * @generated
+	 */
+	EAttribute getChartAxis_TickTextColor();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.chart.ChartRangeElement <em>Chart Range Element</em>}'.
@@ -2261,6 +2625,16 @@
 	EEnum getRenderTypeEnum();
 
 	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum <em>Canvas Font Family Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Canvas Font Family Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum
+	 * @generated
+	 */
+	EEnum getCanvasFontFamilyEnum();
+
+	/**
 	 * Returns the meta object for data type '{@link org.eclipse.emf.ecore.InternalEObject <em>Internal EObject</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2367,6 +2741,30 @@
 		EClass CHART_PACKAGE = eINSTANCE.getChartPackage();
 
 		/**
+		 * The meta object literal for the '<em><b>Has Colors</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHART_PACKAGE__HAS_COLORS = eINSTANCE.getChartPackage_HasColors();
+
+		/**
+		 * The meta object literal for the '<em><b>Colors</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CHART_PACKAGE__COLORS = eINSTANCE.getChartPackage_Colors();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Font Family</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHART_PACKAGE__DEFAULT_FONT_FAMILY = eINSTANCE.getChartPackage_DefaultFontFamily();
+
+		/**
 		 * The meta object literal for the '<em><b>Charts</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -2375,6 +2773,42 @@
 		EReference CHART_PACKAGE__CHARTS = eINSTANCE.getChartPackage_Charts();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.chart.impl.SeriesColorImpl <em>Series Color</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.chart.impl.SeriesColorImpl
+		 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getSeriesColor()
+		 * @generated
+		 */
+		EClass SERIES_COLOR = eINSTANCE.getSeriesColor();
+
+		/**
+		 * The meta object literal for the '<em><b>Rgb</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SERIES_COLOR__RGB = eINSTANCE.getSeriesColor_Rgb();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.chart.impl.TextColorImpl <em>Text Color</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.chart.impl.TextColorImpl
+		 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getTextColor()
+		 * @generated
+		 */
+		EClass TEXT_COLOR = eINSTANCE.getTextColor();
+
+		/**
+		 * The meta object literal for the '<em><b>Rgb</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TEXT_COLOR__RGB = eINSTANCE.getTextColor_Rgb();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.chart.impl.ChartImpl <em>Chart</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -2803,6 +3237,14 @@
 		EClass CHART_LEGEND = eINSTANCE.getChartLegend();
 
 		/**
+		 * The meta object literal for the '<em><b>No Legend</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHART_LEGEND__NO_LEGEND = eINSTANCE.getChartLegend_NoLegend();
+
+		/**
 		 * The meta object literal for the '<em><b>Placement</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -2835,6 +3277,22 @@
 		EAttribute CHART_LEGEND__TOGGLE_TYPE = eINSTANCE.getChartLegend_ToggleType();
 
 		/**
+		 * The meta object literal for the '<em><b>Font Size</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHART_LEGEND__FONT_SIZE = eINSTANCE.getChartLegend_FontSize();
+
+		/**
+		 * The meta object literal for the '<em><b>Text Color</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHART_LEGEND__TEXT_COLOR = eINSTANCE.getChartLegend_TextColor();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.chart.impl.ChartHighlighterImpl <em>Chart Highlighter</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -2903,12 +3361,52 @@
 		EAttribute CHART_AXIS__SHORT_LABEL = eINSTANCE.getChartAxis_ShortLabel();
 
 		/**
-		 * The meta object literal for the '<em><b>Angle</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Label Angle</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute CHART_AXIS__ANGLE = eINSTANCE.getChartAxis_Angle();
+		EAttribute CHART_AXIS__LABEL_ANGLE = eINSTANCE.getChartAxis_LabelAngle();
+
+		/**
+		 * The meta object literal for the '<em><b>Label Font Size</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHART_AXIS__LABEL_FONT_SIZE = eINSTANCE.getChartAxis_LabelFontSize();
+
+		/**
+		 * The meta object literal for the '<em><b>Label Text Color</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHART_AXIS__LABEL_TEXT_COLOR = eINSTANCE.getChartAxis_LabelTextColor();
+
+		/**
+		 * The meta object literal for the '<em><b>Tick Angle</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHART_AXIS__TICK_ANGLE = eINSTANCE.getChartAxis_TickAngle();
+
+		/**
+		 * The meta object literal for the '<em><b>Tick Font Size</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHART_AXIS__TICK_FONT_SIZE = eINSTANCE.getChartAxis_TickFontSize();
+
+		/**
+		 * The meta object literal for the '<em><b>Tick Text Color</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHART_AXIS__TICK_TEXT_COLOR = eINSTANCE.getChartAxis_TickTextColor();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.chart.ChartRangeElement <em>Chart Range Element</em>}' class.
@@ -2979,6 +3477,16 @@
 		EEnum RENDER_TYPE_ENUM = eINSTANCE.getRenderTypeEnum();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum <em>Canvas Font Family Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum
+		 * @see org.eclipse.osbp.xtext.chart.impl.ChartDSLPackageImpl#getCanvasFontFamilyEnum()
+		 * @generated
+		 */
+		EEnum CANVAS_FONT_FAMILY_ENUM = eINSTANCE.getCanvasFontFamilyEnum();
+
+		/**
 		 * The meta object literal for the '<em>Internal EObject</em>' data type.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartLegend.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartLegend.java
index 02bd7cd..c391cd0 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartLegend.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartLegend.java
@@ -25,10 +25,13 @@
  * The following features are supported:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartLegend#isNoLegend <em>No Legend</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.ChartLegend#getPlacement <em>Placement</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.ChartLegend#isToggle <em>Toggle</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.ChartLegend#isReplot <em>Replot</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.ChartLegend#getToggleType <em>Toggle Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartLegend#getFontSize <em>Font Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartLegend#getTextColor <em>Text Color</em>}</li>
  * </ul>
  *
  * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartLegend()
@@ -37,6 +40,32 @@
  */
 public interface ChartLegend extends ChartElement {
 	/**
+	 * Returns the value of the '<em><b>No Legend</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>No Legend</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>No Legend</em>' attribute.
+	 * @see #setNoLegend(boolean)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartLegend_NoLegend()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isNoLegend();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartLegend#isNoLegend <em>No Legend</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>No Legend</em>' attribute.
+	 * @see #isNoLegend()
+	 * @generated
+	 */
+	void setNoLegend(boolean value);
+
+	/**
 	 * Returns the value of the '<em><b>Placement</b></em>' attribute.
 	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.chart.LegendPlacementEnum}.
 	 * <!-- begin-user-doc -->
@@ -146,4 +175,56 @@
 	 */
 	void setToggleType(ToggleTypeEnum value);
 
+	/**
+	 * Returns the value of the '<em><b>Font Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Font Size</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Font Size</em>' attribute.
+	 * @see #setFontSize(int)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartLegend_FontSize()
+	 * @model unique="false"
+	 * @generated
+	 */
+	int getFontSize();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartLegend#getFontSize <em>Font Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Font Size</em>' attribute.
+	 * @see #getFontSize()
+	 * @generated
+	 */
+	void setFontSize(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Text Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Text Color</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Text Color</em>' attribute.
+	 * @see #setTextColor(String)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartLegend_TextColor()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getTextColor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartLegend#getTextColor <em>Text Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Text Color</em>' attribute.
+	 * @see #getTextColor()
+	 * @generated
+	 */
+	void setTextColor(String value);
+
 } // ChartLegend
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartPackage.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartPackage.java
index cca07ed..ac25f2c 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartPackage.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/ChartPackage.java
@@ -28,6 +28,9 @@
  * The following features are supported:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartPackage#isHasColors <em>Has Colors</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartPackage#getColors <em>Colors</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.ChartPackage#getDefaultFontFamily <em>Default Font Family</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.ChartPackage#getCharts <em>Charts</em>}</li>
  * </ul>
  *
@@ -37,6 +40,77 @@
  */
 public interface ChartPackage extends LPackage {
 	/**
+	 * Returns the value of the '<em><b>Has Colors</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Has Colors</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Has Colors</em>' attribute.
+	 * @see #setHasColors(boolean)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartPackage_HasColors()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isHasColors();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartPackage#isHasColors <em>Has Colors</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Has Colors</em>' attribute.
+	 * @see #isHasColors()
+	 * @generated
+	 */
+	void setHasColors(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Colors</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.chart.SeriesColor}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Colors</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Colors</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartPackage_Colors()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<SeriesColor> getColors();
+
+	/**
+	 * Returns the value of the '<em><b>Default Font Family</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Font Family</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Font Family</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum
+	 * @see #setDefaultFontFamily(CanvasFontFamilyEnum)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getChartPackage_DefaultFontFamily()
+	 * @model unique="false"
+	 * @generated
+	 */
+	CanvasFontFamilyEnum getDefaultFontFamily();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.ChartPackage#getDefaultFontFamily <em>Default Font Family</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Font Family</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum
+	 * @see #getDefaultFontFamily()
+	 * @generated
+	 */
+	void setDefaultFontFamily(CanvasFontFamilyEnum value);
+
+	/**
 	 * Returns the value of the '<em><b>Charts</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.osbp.xtext.chart.Chart}.
 	 * <!-- begin-user-doc -->
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/SeriesColor.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/SeriesColor.java
new file mode 100644
index 0000000..1613a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/SeriesColor.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License 2.0  
+ *  which accompanies this distribution, and is available at 
+ *  https://www.eclipse.org/legal/epl-2.0/ 
+ *  
+ *  SPDX-License-Identifier: EPL-2.0 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.chart;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Series Color</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.SeriesColor#getRgb <em>Rgb</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getSeriesColor()
+ * @model
+ * @generated
+ */
+public interface SeriesColor extends ChartLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Rgb</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Rgb</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Rgb</em>' attribute.
+	 * @see #setRgb(String)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getSeriesColor_Rgb()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getRgb();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.SeriesColor#getRgb <em>Rgb</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Rgb</em>' attribute.
+	 * @see #getRgb()
+	 * @generated
+	 */
+	void setRgb(String value);
+
+} // SeriesColor
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/TextColor.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/TextColor.java
new file mode 100644
index 0000000..e66487a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/TextColor.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License 2.0  
+ *  which accompanies this distribution, and is available at 
+ *  https://www.eclipse.org/legal/epl-2.0/ 
+ *  
+ *  SPDX-License-Identifier: EPL-2.0 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.chart;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Text Color</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.TextColor#getRgb <em>Rgb</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getTextColor()
+ * @model
+ * @generated
+ */
+public interface TextColor extends ChartLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Rgb</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Rgb</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Rgb</em>' attribute.
+	 * @see #setRgb(String)
+	 * @see org.eclipse.osbp.xtext.chart.ChartDSLPackage#getTextColor_Rgb()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getRgb();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.chart.TextColor#getRgb <em>Rgb</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Rgb</em>' attribute.
+	 * @see #getRgb()
+	 * @generated
+	 */
+	void setRgb(String value);
+
+} // TextColor
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartAxisImpl.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartAxisImpl.java
index f8b60ec..1149795 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartAxisImpl.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartAxisImpl.java
@@ -39,7 +39,12 @@
  *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartAxisImpl#getAxis <em>Axis</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartAxisImpl#getRenderType <em>Render Type</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartAxisImpl#isShortLabel <em>Short Label</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartAxisImpl#getAngle <em>Angle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartAxisImpl#getLabelAngle <em>Label Angle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartAxisImpl#getLabelFontSize <em>Label Font Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartAxisImpl#getLabelTextColor <em>Label Text Color</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartAxisImpl#getTickAngle <em>Tick Angle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartAxisImpl#getTickFontSize <em>Tick Font Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartAxisImpl#getTickTextColor <em>Tick Text Color</em>}</li>
  * </ul>
  *
  * @generated
@@ -96,24 +101,124 @@
 	protected boolean shortLabel = SHORT_LABEL_EDEFAULT;
 
 	/**
-	 * The default value of the '{@link #getAngle() <em>Angle</em>}' attribute.
+	 * The default value of the '{@link #getLabelAngle() <em>Label Angle</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getAngle()
+	 * @see #getLabelAngle()
 	 * @generated
 	 * @ordered
 	 */
-	protected static final int ANGLE_EDEFAULT = 0;
+	protected static final int LABEL_ANGLE_EDEFAULT = 0;
 
 	/**
-	 * The cached value of the '{@link #getAngle() <em>Angle</em>}' attribute.
+	 * The cached value of the '{@link #getLabelAngle() <em>Label Angle</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getAngle()
+	 * @see #getLabelAngle()
 	 * @generated
 	 * @ordered
 	 */
-	protected int angle = ANGLE_EDEFAULT;
+	protected int labelAngle = LABEL_ANGLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLabelFontSize() <em>Label Font Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabelFontSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int LABEL_FONT_SIZE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getLabelFontSize() <em>Label Font Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabelFontSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected int labelFontSize = LABEL_FONT_SIZE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLabelTextColor() <em>Label Text Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabelTextColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LABEL_TEXT_COLOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLabelTextColor() <em>Label Text Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabelTextColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected String labelTextColor = LABEL_TEXT_COLOR_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTickAngle() <em>Tick Angle</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTickAngle()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int TICK_ANGLE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getTickAngle() <em>Tick Angle</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTickAngle()
+	 * @generated
+	 * @ordered
+	 */
+	protected int tickAngle = TICK_ANGLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTickFontSize() <em>Tick Font Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTickFontSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int TICK_FONT_SIZE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getTickFontSize() <em>Tick Font Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTickFontSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected int tickFontSize = TICK_FONT_SIZE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTickTextColor() <em>Tick Text Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTickTextColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TICK_TEXT_COLOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTickTextColor() <em>Tick Text Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTickTextColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected String tickTextColor = TICK_TEXT_COLOR_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -219,8 +324,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public int getAngle() {
-		return angle;
+	public int getLabelAngle() {
+		return labelAngle;
 	}
 
 	/**
@@ -228,11 +333,116 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setAngle(int newAngle) {
-		int oldAngle = angle;
-		angle = newAngle;
+	public void setLabelAngle(int newLabelAngle) {
+		int oldLabelAngle = labelAngle;
+		labelAngle = newLabelAngle;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_AXIS__ANGLE, oldAngle, angle));
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_AXIS__LABEL_ANGLE, oldLabelAngle, labelAngle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getLabelFontSize() {
+		return labelFontSize;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLabelFontSize(int newLabelFontSize) {
+		int oldLabelFontSize = labelFontSize;
+		labelFontSize = newLabelFontSize;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_AXIS__LABEL_FONT_SIZE, oldLabelFontSize, labelFontSize));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLabelTextColor() {
+		return labelTextColor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLabelTextColor(String newLabelTextColor) {
+		String oldLabelTextColor = labelTextColor;
+		labelTextColor = newLabelTextColor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_AXIS__LABEL_TEXT_COLOR, oldLabelTextColor, labelTextColor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getTickAngle() {
+		return tickAngle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTickAngle(int newTickAngle) {
+		int oldTickAngle = tickAngle;
+		tickAngle = newTickAngle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_AXIS__TICK_ANGLE, oldTickAngle, tickAngle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getTickFontSize() {
+		return tickFontSize;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTickFontSize(int newTickFontSize) {
+		int oldTickFontSize = tickFontSize;
+		tickFontSize = newTickFontSize;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_AXIS__TICK_FONT_SIZE, oldTickFontSize, tickFontSize));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTickTextColor() {
+		return tickTextColor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTickTextColor(String newTickTextColor) {
+		String oldTickTextColor = tickTextColor;
+		tickTextColor = newTickTextColor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_AXIS__TICK_TEXT_COLOR, oldTickTextColor, tickTextColor));
 	}
 
 	/**
@@ -250,8 +460,18 @@
 				return getRenderType();
 			case ChartDSLPackage.CHART_AXIS__SHORT_LABEL:
 				return isShortLabel();
-			case ChartDSLPackage.CHART_AXIS__ANGLE:
-				return getAngle();
+			case ChartDSLPackage.CHART_AXIS__LABEL_ANGLE:
+				return getLabelAngle();
+			case ChartDSLPackage.CHART_AXIS__LABEL_FONT_SIZE:
+				return getLabelFontSize();
+			case ChartDSLPackage.CHART_AXIS__LABEL_TEXT_COLOR:
+				return getLabelTextColor();
+			case ChartDSLPackage.CHART_AXIS__TICK_ANGLE:
+				return getTickAngle();
+			case ChartDSLPackage.CHART_AXIS__TICK_FONT_SIZE:
+				return getTickFontSize();
+			case ChartDSLPackage.CHART_AXIS__TICK_TEXT_COLOR:
+				return getTickTextColor();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -273,8 +493,23 @@
 			case ChartDSLPackage.CHART_AXIS__SHORT_LABEL:
 				setShortLabel((Boolean)newValue);
 				return;
-			case ChartDSLPackage.CHART_AXIS__ANGLE:
-				setAngle((Integer)newValue);
+			case ChartDSLPackage.CHART_AXIS__LABEL_ANGLE:
+				setLabelAngle((Integer)newValue);
+				return;
+			case ChartDSLPackage.CHART_AXIS__LABEL_FONT_SIZE:
+				setLabelFontSize((Integer)newValue);
+				return;
+			case ChartDSLPackage.CHART_AXIS__LABEL_TEXT_COLOR:
+				setLabelTextColor((String)newValue);
+				return;
+			case ChartDSLPackage.CHART_AXIS__TICK_ANGLE:
+				setTickAngle((Integer)newValue);
+				return;
+			case ChartDSLPackage.CHART_AXIS__TICK_FONT_SIZE:
+				setTickFontSize((Integer)newValue);
+				return;
+			case ChartDSLPackage.CHART_AXIS__TICK_TEXT_COLOR:
+				setTickTextColor((String)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -297,8 +532,23 @@
 			case ChartDSLPackage.CHART_AXIS__SHORT_LABEL:
 				setShortLabel(SHORT_LABEL_EDEFAULT);
 				return;
-			case ChartDSLPackage.CHART_AXIS__ANGLE:
-				setAngle(ANGLE_EDEFAULT);
+			case ChartDSLPackage.CHART_AXIS__LABEL_ANGLE:
+				setLabelAngle(LABEL_ANGLE_EDEFAULT);
+				return;
+			case ChartDSLPackage.CHART_AXIS__LABEL_FONT_SIZE:
+				setLabelFontSize(LABEL_FONT_SIZE_EDEFAULT);
+				return;
+			case ChartDSLPackage.CHART_AXIS__LABEL_TEXT_COLOR:
+				setLabelTextColor(LABEL_TEXT_COLOR_EDEFAULT);
+				return;
+			case ChartDSLPackage.CHART_AXIS__TICK_ANGLE:
+				setTickAngle(TICK_ANGLE_EDEFAULT);
+				return;
+			case ChartDSLPackage.CHART_AXIS__TICK_FONT_SIZE:
+				setTickFontSize(TICK_FONT_SIZE_EDEFAULT);
+				return;
+			case ChartDSLPackage.CHART_AXIS__TICK_TEXT_COLOR:
+				setTickTextColor(TICK_TEXT_COLOR_EDEFAULT);
 				return;
 		}
 		super.eUnset(featureID);
@@ -318,8 +568,18 @@
 				return renderType != RENDER_TYPE_EDEFAULT;
 			case ChartDSLPackage.CHART_AXIS__SHORT_LABEL:
 				return shortLabel != SHORT_LABEL_EDEFAULT;
-			case ChartDSLPackage.CHART_AXIS__ANGLE:
-				return angle != ANGLE_EDEFAULT;
+			case ChartDSLPackage.CHART_AXIS__LABEL_ANGLE:
+				return labelAngle != LABEL_ANGLE_EDEFAULT;
+			case ChartDSLPackage.CHART_AXIS__LABEL_FONT_SIZE:
+				return labelFontSize != LABEL_FONT_SIZE_EDEFAULT;
+			case ChartDSLPackage.CHART_AXIS__LABEL_TEXT_COLOR:
+				return LABEL_TEXT_COLOR_EDEFAULT == null ? labelTextColor != null : !LABEL_TEXT_COLOR_EDEFAULT.equals(labelTextColor);
+			case ChartDSLPackage.CHART_AXIS__TICK_ANGLE:
+				return tickAngle != TICK_ANGLE_EDEFAULT;
+			case ChartDSLPackage.CHART_AXIS__TICK_FONT_SIZE:
+				return tickFontSize != TICK_FONT_SIZE_EDEFAULT;
+			case ChartDSLPackage.CHART_AXIS__TICK_TEXT_COLOR:
+				return TICK_TEXT_COLOR_EDEFAULT == null ? tickTextColor != null : !TICK_TEXT_COLOR_EDEFAULT.equals(tickTextColor);
 		}
 		return super.eIsSet(featureID);
 	}
@@ -338,8 +598,18 @@
 		result.append(renderType);
 		result.append(", shortLabel: ");
 		result.append(shortLabel);
-		result.append(", angle: ");
-		result.append(angle);
+		result.append(", labelAngle: ");
+		result.append(labelAngle);
+		result.append(", labelFontSize: ");
+		result.append(labelFontSize);
+		result.append(", labelTextColor: ");
+		result.append(labelTextColor);
+		result.append(", tickAngle: ");
+		result.append(tickAngle);
+		result.append(", tickFontSize: ");
+		result.append(tickFontSize);
+		result.append(", tickTextColor: ");
+		result.append(tickTextColor);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartDSLFactoryImpl.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartDSLFactoryImpl.java
index 462d5bd..5f52a8e 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartDSLFactoryImpl.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartDSLFactoryImpl.java
@@ -75,6 +75,8 @@
 			case ChartDSLPackage.CHART_LAZY_RESOLVER: return createChartLazyResolver();
 			case ChartDSLPackage.CHART_BASE: return createChartBase();
 			case ChartDSLPackage.CHART_PACKAGE: return createChartPackage();
+			case ChartDSLPackage.SERIES_COLOR: return createSeriesColor();
+			case ChartDSLPackage.TEXT_COLOR: return createTextColor();
 			case ChartDSLPackage.CHART: return createChart();
 			case ChartDSLPackage.CHART_BAR: return createChartBar();
 			case ChartDSLPackage.CHART_LINE: return createChartLine();
@@ -110,6 +112,8 @@
 				return createTooltipLocationEnumFromString(eDataType, initialValue);
 			case ChartDSLPackage.RENDER_TYPE_ENUM:
 				return createRenderTypeEnumFromString(eDataType, initialValue);
+			case ChartDSLPackage.CANVAS_FONT_FAMILY_ENUM:
+				return createCanvasFontFamilyEnumFromString(eDataType, initialValue);
 			case ChartDSLPackage.INTERNAL_EOBJECT:
 				return createInternalEObjectFromString(eDataType, initialValue);
 			default:
@@ -133,6 +137,8 @@
 				return convertTooltipLocationEnumToString(eDataType, instanceValue);
 			case ChartDSLPackage.RENDER_TYPE_ENUM:
 				return convertRenderTypeEnumToString(eDataType, instanceValue);
+			case ChartDSLPackage.CANVAS_FONT_FAMILY_ENUM:
+				return convertCanvasFontFamilyEnumToString(eDataType, instanceValue);
 			case ChartDSLPackage.INTERNAL_EOBJECT:
 				return convertInternalEObjectToString(eDataType, instanceValue);
 			default:
@@ -185,6 +191,26 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public SeriesColor createSeriesColor() {
+		SeriesColorImpl seriesColor = new SeriesColorImpl();
+		return seriesColor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TextColor createTextColor() {
+		TextColorImpl textColor = new TextColorImpl();
+		return textColor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public Chart createChart() {
 		ChartImpl chart = new ChartImpl();
 		return chart;
@@ -405,6 +431,26 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public CanvasFontFamilyEnum createCanvasFontFamilyEnumFromString(EDataType eDataType, String initialValue) {
+		CanvasFontFamilyEnum result = CanvasFontFamilyEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertCanvasFontFamilyEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public InternalEObject createInternalEObjectFromString(EDataType eDataType, String initialValue) {
 		return (InternalEObject)super.createFromString(eDataType, initialValue);
 	}
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartDSLPackageImpl.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartDSLPackageImpl.java
index ffbdc48..ffc5c29 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartDSLPackageImpl.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartDSLPackageImpl.java
@@ -31,6 +31,7 @@
 
 import org.eclipse.osbp.xtext.action.ActionDSLPackage;
 
+import org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum;
 import org.eclipse.osbp.xtext.chart.Chart;
 import org.eclipse.osbp.xtext.chart.ChartAxis;
 import org.eclipse.osbp.xtext.chart.ChartBar;
@@ -57,6 +58,8 @@
 import org.eclipse.osbp.xtext.chart.ChartTree;
 import org.eclipse.osbp.xtext.chart.LegendPlacementEnum;
 import org.eclipse.osbp.xtext.chart.RenderTypeEnum;
+import org.eclipse.osbp.xtext.chart.SeriesColor;
+import org.eclipse.osbp.xtext.chart.TextColor;
 import org.eclipse.osbp.xtext.chart.ToggleTypeEnum;
 import org.eclipse.osbp.xtext.chart.TooltipLocationEnum;
 
@@ -104,6 +107,20 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass seriesColorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass textColorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass chartEClass = null;
 
 	/**
@@ -258,6 +275,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EEnum canvasFontFamilyEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EDataType internalEObjectEDataType = null;
 
 	/**
@@ -402,8 +426,71 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EAttribute getChartPackage_HasColors() {
+		return (EAttribute)chartPackageEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getChartPackage_Colors() {
+		return (EReference)chartPackageEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getChartPackage_DefaultFontFamily() {
+		return (EAttribute)chartPackageEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EReference getChartPackage_Charts() {
-		return (EReference)chartPackageEClass.getEStructuralFeatures().get(0);
+		return (EReference)chartPackageEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSeriesColor() {
+		return seriesColorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSeriesColor_Rgb() {
+		return (EAttribute)seriesColorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTextColor() {
+		return textColorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTextColor_Rgb() {
+		return (EAttribute)textColorEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -861,7 +948,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getChartLegend_Placement() {
+	public EAttribute getChartLegend_NoLegend() {
 		return (EAttribute)chartLegendEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -870,7 +957,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getChartLegend_Toggle() {
+	public EAttribute getChartLegend_Placement() {
 		return (EAttribute)chartLegendEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -879,7 +966,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getChartLegend_Replot() {
+	public EAttribute getChartLegend_Toggle() {
 		return (EAttribute)chartLegendEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -888,7 +975,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getChartLegend_ToggleType() {
+	public EAttribute getChartLegend_Replot() {
 		return (EAttribute)chartLegendEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -897,6 +984,33 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EAttribute getChartLegend_ToggleType() {
+		return (EAttribute)chartLegendEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getChartLegend_FontSize() {
+		return (EAttribute)chartLegendEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getChartLegend_TextColor() {
+		return (EAttribute)chartLegendEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getChartHighlighter() {
 		return chartHighlighterEClass;
 	}
@@ -969,7 +1083,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getChartAxis_Angle() {
+	public EAttribute getChartAxis_LabelAngle() {
 		return (EAttribute)chartAxisEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -978,6 +1092,51 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EAttribute getChartAxis_LabelFontSize() {
+		return (EAttribute)chartAxisEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getChartAxis_LabelTextColor() {
+		return (EAttribute)chartAxisEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getChartAxis_TickAngle() {
+		return (EAttribute)chartAxisEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getChartAxis_TickFontSize() {
+		return (EAttribute)chartAxisEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getChartAxis_TickTextColor() {
+		return (EAttribute)chartAxisEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getChartRangeElement() {
 		return chartRangeElementEClass;
 	}
@@ -1041,6 +1200,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EEnum getCanvasFontFamilyEnum() {
+		return canvasFontFamilyEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EDataType getInternalEObject() {
 		return internalEObjectEDataType;
 	}
@@ -1084,8 +1252,17 @@
 		createEAttribute(chartBaseEClass, CHART_BASE__NAME);
 
 		chartPackageEClass = createEClass(CHART_PACKAGE);
+		createEAttribute(chartPackageEClass, CHART_PACKAGE__HAS_COLORS);
+		createEReference(chartPackageEClass, CHART_PACKAGE__COLORS);
+		createEAttribute(chartPackageEClass, CHART_PACKAGE__DEFAULT_FONT_FAMILY);
 		createEReference(chartPackageEClass, CHART_PACKAGE__CHARTS);
 
+		seriesColorEClass = createEClass(SERIES_COLOR);
+		createEAttribute(seriesColorEClass, SERIES_COLOR__RGB);
+
+		textColorEClass = createEClass(TEXT_COLOR);
+		createEAttribute(textColorEClass, TEXT_COLOR__RGB);
+
 		chartEClass = createEClass(CHART);
 		createEAttribute(chartEClass, CHART__SELECT_BY_ID);
 		createEAttribute(chartEClass, CHART__DESCRIPTION);
@@ -1149,10 +1326,13 @@
 		chartElementEClass = createEClass(CHART_ELEMENT);
 
 		chartLegendEClass = createEClass(CHART_LEGEND);
+		createEAttribute(chartLegendEClass, CHART_LEGEND__NO_LEGEND);
 		createEAttribute(chartLegendEClass, CHART_LEGEND__PLACEMENT);
 		createEAttribute(chartLegendEClass, CHART_LEGEND__TOGGLE);
 		createEAttribute(chartLegendEClass, CHART_LEGEND__REPLOT);
 		createEAttribute(chartLegendEClass, CHART_LEGEND__TOGGLE_TYPE);
+		createEAttribute(chartLegendEClass, CHART_LEGEND__FONT_SIZE);
+		createEAttribute(chartLegendEClass, CHART_LEGEND__TEXT_COLOR);
 
 		chartHighlighterEClass = createEClass(CHART_HIGHLIGHTER);
 		createEAttribute(chartHighlighterEClass, CHART_HIGHLIGHTER__LOCATION);
@@ -1163,7 +1343,12 @@
 		createEReference(chartAxisEClass, CHART_AXIS__AXIS);
 		createEAttribute(chartAxisEClass, CHART_AXIS__RENDER_TYPE);
 		createEAttribute(chartAxisEClass, CHART_AXIS__SHORT_LABEL);
-		createEAttribute(chartAxisEClass, CHART_AXIS__ANGLE);
+		createEAttribute(chartAxisEClass, CHART_AXIS__LABEL_ANGLE);
+		createEAttribute(chartAxisEClass, CHART_AXIS__LABEL_FONT_SIZE);
+		createEAttribute(chartAxisEClass, CHART_AXIS__LABEL_TEXT_COLOR);
+		createEAttribute(chartAxisEClass, CHART_AXIS__TICK_ANGLE);
+		createEAttribute(chartAxisEClass, CHART_AXIS__TICK_FONT_SIZE);
+		createEAttribute(chartAxisEClass, CHART_AXIS__TICK_TEXT_COLOR);
 
 		chartRangeElementEClass = createEClass(CHART_RANGE_ELEMENT);
 
@@ -1175,6 +1360,7 @@
 		toggleTypeEnumEEnum = createEEnum(TOGGLE_TYPE_ENUM);
 		tooltipLocationEnumEEnum = createEEnum(TOOLTIP_LOCATION_ENUM);
 		renderTypeEnumEEnum = createEEnum(RENDER_TYPE_ENUM);
+		canvasFontFamilyEnumEEnum = createEEnum(CANVAS_FONT_FAMILY_ENUM);
 
 		// Create data types
 		internalEObjectEDataType = createEDataType(INTERNAL_EOBJECT);
@@ -1217,6 +1403,8 @@
 		// Add supertypes to classes
 		chartBaseEClass.getESuperTypes().add(this.getChartLazyResolver());
 		chartPackageEClass.getESuperTypes().add(theOSBPTypesPackage.getLPackage());
+		seriesColorEClass.getESuperTypes().add(this.getChartLazyResolver());
+		textColorEClass.getESuperTypes().add(this.getChartLazyResolver());
 		chartEClass.getESuperTypes().add(this.getChartBase());
 		chartOptionEClass.getESuperTypes().add(this.getChartLazyResolver());
 		chartBarEClass.getESuperTypes().add(this.getChartOption());
@@ -1250,8 +1438,17 @@
 		initEAttribute(getChartBase_Name(), theEcorePackage.getEString(), "name", null, 0, 1, ChartBase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(chartPackageEClass, ChartPackage.class, "ChartPackage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getChartPackage_HasColors(), theEcorePackage.getEBoolean(), "hasColors", null, 0, 1, ChartPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getChartPackage_Colors(), this.getSeriesColor(), null, "colors", null, 0, -1, ChartPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getChartPackage_DefaultFontFamily(), this.getCanvasFontFamilyEnum(), "defaultFontFamily", null, 0, 1, ChartPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getChartPackage_Charts(), this.getChart(), null, "charts", null, 0, -1, ChartPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(seriesColorEClass, SeriesColor.class, "SeriesColor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getSeriesColor_Rgb(), theEcorePackage.getEString(), "rgb", null, 0, 1, SeriesColor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(textColorEClass, TextColor.class, "TextColor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTextColor_Rgb(), theEcorePackage.getEString(), "rgb", null, 0, 1, TextColor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		initEClass(chartEClass, Chart.class, "Chart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getChart_SelectById(), theEcorePackage.getEBoolean(), "selectById", null, 0, 1, Chart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getChart_Description(), theEcorePackage.getEBoolean(), "description", null, 0, 1, Chart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1315,10 +1512,13 @@
 		initEClass(chartElementEClass, ChartElement.class, "ChartElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(chartLegendEClass, ChartLegend.class, "ChartLegend", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getChartLegend_NoLegend(), theEcorePackage.getEBoolean(), "noLegend", null, 0, 1, ChartLegend.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getChartLegend_Placement(), this.getLegendPlacementEnum(), "placement", null, 0, 1, ChartLegend.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getChartLegend_Toggle(), theEcorePackage.getEBoolean(), "toggle", null, 0, 1, ChartLegend.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getChartLegend_Replot(), theEcorePackage.getEBoolean(), "replot", null, 0, 1, ChartLegend.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getChartLegend_ToggleType(), this.getToggleTypeEnum(), "toggleType", null, 0, 1, ChartLegend.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getChartLegend_FontSize(), theEcorePackage.getEInt(), "fontSize", null, 0, 1, ChartLegend.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getChartLegend_TextColor(), theEcorePackage.getEString(), "textColor", null, 0, 1, ChartLegend.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(chartHighlighterEClass, ChartHighlighter.class, "ChartHighlighter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getChartHighlighter_Location(), this.getTooltipLocationEnum(), "location", null, 0, 1, ChartHighlighter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1329,7 +1529,12 @@
 		initEReference(getChartAxis_Axis(), theDatamartDSLPackage.getDatamartAxis(), null, "axis", null, 0, 1, ChartAxis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getChartAxis_RenderType(), this.getRenderTypeEnum(), "renderType", null, 0, 1, ChartAxis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getChartAxis_ShortLabel(), theEcorePackage.getEBoolean(), "shortLabel", null, 0, 1, ChartAxis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getChartAxis_Angle(), theEcorePackage.getEInt(), "angle", null, 0, 1, ChartAxis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getChartAxis_LabelAngle(), theEcorePackage.getEInt(), "labelAngle", null, 0, 1, ChartAxis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getChartAxis_LabelFontSize(), theEcorePackage.getEInt(), "labelFontSize", null, 0, 1, ChartAxis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getChartAxis_LabelTextColor(), theEcorePackage.getEString(), "labelTextColor", null, 0, 1, ChartAxis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getChartAxis_TickAngle(), theEcorePackage.getEInt(), "tickAngle", null, 0, 1, ChartAxis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getChartAxis_TickFontSize(), theEcorePackage.getEInt(), "tickFontSize", null, 0, 1, ChartAxis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getChartAxis_TickTextColor(), theEcorePackage.getEString(), "tickTextColor", null, 0, 1, ChartAxis.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(chartRangeElementEClass, ChartRangeElement.class, "ChartRangeElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
@@ -1365,6 +1570,15 @@
 		addEEnumLiteral(renderTypeEnumEEnum, RenderTypeEnum.LOG);
 		addEEnumLiteral(renderTypeEnumEEnum, RenderTypeEnum.PYRAMID);
 
+		initEEnum(canvasFontFamilyEnumEEnum, CanvasFontFamilyEnum.class, "CanvasFontFamilyEnum");
+		addEEnumLiteral(canvasFontFamilyEnumEEnum, CanvasFontFamilyEnum.DEFAULT);
+		addEEnumLiteral(canvasFontFamilyEnumEEnum, CanvasFontFamilyEnum.ARIAL);
+		addEEnumLiteral(canvasFontFamilyEnumEEnum, CanvasFontFamilyEnum.VERDANA);
+		addEEnumLiteral(canvasFontFamilyEnumEEnum, CanvasFontFamilyEnum.TIMESNEWROMAN);
+		addEEnumLiteral(canvasFontFamilyEnumEEnum, CanvasFontFamilyEnum.COURIERNEW);
+		addEEnumLiteral(canvasFontFamilyEnumEEnum, CanvasFontFamilyEnum.SERIF);
+		addEEnumLiteral(canvasFontFamilyEnumEEnum, CanvasFontFamilyEnum.SANSERIF);
+
 		// Initialize data types
 		initEDataType(internalEObjectEDataType, InternalEObject.class, "InternalEObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
 
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartLegendImpl.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartLegendImpl.java
index c2e2d8b..28856b8 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartLegendImpl.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartLegendImpl.java
@@ -34,16 +34,39 @@
  * The following features are implemented:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartLegendImpl#isNoLegend <em>No Legend</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartLegendImpl#getPlacement <em>Placement</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartLegendImpl#isToggle <em>Toggle</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartLegendImpl#isReplot <em>Replot</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartLegendImpl#getToggleType <em>Toggle Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartLegendImpl#getFontSize <em>Font Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartLegendImpl#getTextColor <em>Text Color</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class ChartLegendImpl extends ChartLazyResolverImpl implements ChartLegend {
 	/**
+	 * The default value of the '{@link #isNoLegend() <em>No Legend</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNoLegend()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean NO_LEGEND_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isNoLegend() <em>No Legend</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNoLegend()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean noLegend = NO_LEGEND_EDEFAULT;
+
+	/**
 	 * The default value of the '{@link #getPlacement() <em>Placement</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -124,6 +147,46 @@
 	protected ToggleTypeEnum toggleType = TOGGLE_TYPE_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getFontSize() <em>Font Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFontSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int FONT_SIZE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getFontSize() <em>Font Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFontSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected int fontSize = FONT_SIZE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTextColor() <em>Text Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTextColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TEXT_COLOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTextColor() <em>Text Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTextColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected String textColor = TEXT_COLOR_EDEFAULT;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -147,6 +210,27 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public boolean isNoLegend() {
+		return noLegend;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNoLegend(boolean newNoLegend) {
+		boolean oldNoLegend = noLegend;
+		noLegend = newNoLegend;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_LEGEND__NO_LEGEND, oldNoLegend, noLegend));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public LegendPlacementEnum getPlacement() {
 		return placement;
 	}
@@ -231,9 +315,53 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public int getFontSize() {
+		return fontSize;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFontSize(int newFontSize) {
+		int oldFontSize = fontSize;
+		fontSize = newFontSize;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_LEGEND__FONT_SIZE, oldFontSize, fontSize));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTextColor() {
+		return textColor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTextColor(String newTextColor) {
+		String oldTextColor = textColor;
+		textColor = newTextColor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_LEGEND__TEXT_COLOR, oldTextColor, textColor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case ChartDSLPackage.CHART_LEGEND__NO_LEGEND:
+				return isNoLegend();
 			case ChartDSLPackage.CHART_LEGEND__PLACEMENT:
 				return getPlacement();
 			case ChartDSLPackage.CHART_LEGEND__TOGGLE:
@@ -242,6 +370,10 @@
 				return isReplot();
 			case ChartDSLPackage.CHART_LEGEND__TOGGLE_TYPE:
 				return getToggleType();
+			case ChartDSLPackage.CHART_LEGEND__FONT_SIZE:
+				return getFontSize();
+			case ChartDSLPackage.CHART_LEGEND__TEXT_COLOR:
+				return getTextColor();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -254,6 +386,9 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case ChartDSLPackage.CHART_LEGEND__NO_LEGEND:
+				setNoLegend((Boolean)newValue);
+				return;
 			case ChartDSLPackage.CHART_LEGEND__PLACEMENT:
 				setPlacement((LegendPlacementEnum)newValue);
 				return;
@@ -266,6 +401,12 @@
 			case ChartDSLPackage.CHART_LEGEND__TOGGLE_TYPE:
 				setToggleType((ToggleTypeEnum)newValue);
 				return;
+			case ChartDSLPackage.CHART_LEGEND__FONT_SIZE:
+				setFontSize((Integer)newValue);
+				return;
+			case ChartDSLPackage.CHART_LEGEND__TEXT_COLOR:
+				setTextColor((String)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -278,6 +419,9 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case ChartDSLPackage.CHART_LEGEND__NO_LEGEND:
+				setNoLegend(NO_LEGEND_EDEFAULT);
+				return;
 			case ChartDSLPackage.CHART_LEGEND__PLACEMENT:
 				setPlacement(PLACEMENT_EDEFAULT);
 				return;
@@ -290,6 +434,12 @@
 			case ChartDSLPackage.CHART_LEGEND__TOGGLE_TYPE:
 				setToggleType(TOGGLE_TYPE_EDEFAULT);
 				return;
+			case ChartDSLPackage.CHART_LEGEND__FONT_SIZE:
+				setFontSize(FONT_SIZE_EDEFAULT);
+				return;
+			case ChartDSLPackage.CHART_LEGEND__TEXT_COLOR:
+				setTextColor(TEXT_COLOR_EDEFAULT);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -302,6 +452,8 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case ChartDSLPackage.CHART_LEGEND__NO_LEGEND:
+				return noLegend != NO_LEGEND_EDEFAULT;
 			case ChartDSLPackage.CHART_LEGEND__PLACEMENT:
 				return placement != PLACEMENT_EDEFAULT;
 			case ChartDSLPackage.CHART_LEGEND__TOGGLE:
@@ -310,6 +462,10 @@
 				return replot != REPLOT_EDEFAULT;
 			case ChartDSLPackage.CHART_LEGEND__TOGGLE_TYPE:
 				return toggleType != TOGGLE_TYPE_EDEFAULT;
+			case ChartDSLPackage.CHART_LEGEND__FONT_SIZE:
+				return fontSize != FONT_SIZE_EDEFAULT;
+			case ChartDSLPackage.CHART_LEGEND__TEXT_COLOR:
+				return TEXT_COLOR_EDEFAULT == null ? textColor != null : !TEXT_COLOR_EDEFAULT.equals(textColor);
 		}
 		return super.eIsSet(featureID);
 	}
@@ -324,7 +480,9 @@
 		if (eIsProxy()) return super.toString();
 
 		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (placement: ");
+		result.append(" (noLegend: ");
+		result.append(noLegend);
+		result.append(", placement: ");
 		result.append(placement);
 		result.append(", toggle: ");
 		result.append(toggle);
@@ -332,6 +490,10 @@
 		result.append(replot);
 		result.append(", toggleType: ");
 		result.append(toggleType);
+		result.append(", fontSize: ");
+		result.append(fontSize);
+		result.append(", textColor: ");
+		result.append(textColor);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartPackageImpl.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartPackageImpl.java
index 17b04a3..ce323d2 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartPackageImpl.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/ChartPackageImpl.java
@@ -17,6 +17,7 @@
 
 import java.util.Collection;
 
+import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
 import org.eclipse.emf.common.util.EList;
@@ -24,14 +25,18 @@
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 import org.eclipse.osbp.dsl.semantic.common.types.impl.LPackageImpl;
 
+import org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum;
 import org.eclipse.osbp.xtext.chart.Chart;
 import org.eclipse.osbp.xtext.chart.ChartDSLPackage;
 import org.eclipse.osbp.xtext.chart.ChartPackage;
+import org.eclipse.osbp.xtext.chart.SeriesColor;
 
 /**
  * <!-- begin-user-doc -->
@@ -41,6 +46,9 @@
  * The following features are implemented:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartPackageImpl#isHasColors <em>Has Colors</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartPackageImpl#getColors <em>Colors</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartPackageImpl#getDefaultFontFamily <em>Default Font Family</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.chart.impl.ChartPackageImpl#getCharts <em>Charts</em>}</li>
  * </ul>
  *
@@ -48,6 +56,56 @@
  */
 public class ChartPackageImpl extends LPackageImpl implements ChartPackage {
 	/**
+	 * The default value of the '{@link #isHasColors() <em>Has Colors</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHasColors()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean HAS_COLORS_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isHasColors() <em>Has Colors</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHasColors()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean hasColors = HAS_COLORS_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getColors() <em>Colors</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColors()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<SeriesColor> colors;
+
+	/**
+	 * The default value of the '{@link #getDefaultFontFamily() <em>Default Font Family</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultFontFamily()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final CanvasFontFamilyEnum DEFAULT_FONT_FAMILY_EDEFAULT = CanvasFontFamilyEnum.DEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDefaultFontFamily() <em>Default Font Family</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultFontFamily()
+	 * @generated
+	 * @ordered
+	 */
+	protected CanvasFontFamilyEnum defaultFontFamily = DEFAULT_FONT_FAMILY_EDEFAULT;
+
+	/**
 	 * The cached value of the '{@link #getCharts() <em>Charts</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -81,6 +139,60 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public boolean isHasColors() {
+		return hasColors;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHasColors(boolean newHasColors) {
+		boolean oldHasColors = hasColors;
+		hasColors = newHasColors;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_PACKAGE__HAS_COLORS, oldHasColors, hasColors));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<SeriesColor> getColors() {
+		if (colors == null) {
+			colors = new EObjectContainmentEList<SeriesColor>(SeriesColor.class, this, ChartDSLPackage.CHART_PACKAGE__COLORS);
+		}
+		return colors;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CanvasFontFamilyEnum getDefaultFontFamily() {
+		return defaultFontFamily;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultFontFamily(CanvasFontFamilyEnum newDefaultFontFamily) {
+		CanvasFontFamilyEnum oldDefaultFontFamily = defaultFontFamily;
+		defaultFontFamily = newDefaultFontFamily == null ? DEFAULT_FONT_FAMILY_EDEFAULT : newDefaultFontFamily;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.CHART_PACKAGE__DEFAULT_FONT_FAMILY, oldDefaultFontFamily, defaultFontFamily));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EList<Chart> getCharts() {
 		if (charts == null) {
 			charts = new EObjectContainmentEList<Chart>(Chart.class, this, ChartDSLPackage.CHART_PACKAGE__CHARTS);
@@ -96,6 +208,8 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
+			case ChartDSLPackage.CHART_PACKAGE__COLORS:
+				return ((InternalEList<?>)getColors()).basicRemove(otherEnd, msgs);
 			case ChartDSLPackage.CHART_PACKAGE__CHARTS:
 				return ((InternalEList<?>)getCharts()).basicRemove(otherEnd, msgs);
 		}
@@ -110,6 +224,12 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case ChartDSLPackage.CHART_PACKAGE__HAS_COLORS:
+				return isHasColors();
+			case ChartDSLPackage.CHART_PACKAGE__COLORS:
+				return getColors();
+			case ChartDSLPackage.CHART_PACKAGE__DEFAULT_FONT_FAMILY:
+				return getDefaultFontFamily();
 			case ChartDSLPackage.CHART_PACKAGE__CHARTS:
 				return getCharts();
 		}
@@ -125,6 +245,16 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case ChartDSLPackage.CHART_PACKAGE__HAS_COLORS:
+				setHasColors((Boolean)newValue);
+				return;
+			case ChartDSLPackage.CHART_PACKAGE__COLORS:
+				getColors().clear();
+				getColors().addAll((Collection<? extends SeriesColor>)newValue);
+				return;
+			case ChartDSLPackage.CHART_PACKAGE__DEFAULT_FONT_FAMILY:
+				setDefaultFontFamily((CanvasFontFamilyEnum)newValue);
+				return;
 			case ChartDSLPackage.CHART_PACKAGE__CHARTS:
 				getCharts().clear();
 				getCharts().addAll((Collection<? extends Chart>)newValue);
@@ -141,6 +271,15 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case ChartDSLPackage.CHART_PACKAGE__HAS_COLORS:
+				setHasColors(HAS_COLORS_EDEFAULT);
+				return;
+			case ChartDSLPackage.CHART_PACKAGE__COLORS:
+				getColors().clear();
+				return;
+			case ChartDSLPackage.CHART_PACKAGE__DEFAULT_FONT_FAMILY:
+				setDefaultFontFamily(DEFAULT_FONT_FAMILY_EDEFAULT);
+				return;
 			case ChartDSLPackage.CHART_PACKAGE__CHARTS:
 				getCharts().clear();
 				return;
@@ -156,10 +295,34 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case ChartDSLPackage.CHART_PACKAGE__HAS_COLORS:
+				return hasColors != HAS_COLORS_EDEFAULT;
+			case ChartDSLPackage.CHART_PACKAGE__COLORS:
+				return colors != null && !colors.isEmpty();
+			case ChartDSLPackage.CHART_PACKAGE__DEFAULT_FONT_FAMILY:
+				return defaultFontFamily != DEFAULT_FONT_FAMILY_EDEFAULT;
 			case ChartDSLPackage.CHART_PACKAGE__CHARTS:
 				return charts != null && !charts.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (hasColors: ");
+		result.append(hasColors);
+		result.append(", defaultFontFamily: ");
+		result.append(defaultFontFamily);
+		result.append(')');
+		return result.toString();
+	}
+
 } //ChartPackageImpl
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/SeriesColorImpl.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/SeriesColorImpl.java
new file mode 100644
index 0000000..578eba1
--- /dev/null
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/SeriesColorImpl.java
@@ -0,0 +1,175 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License 2.0  
+ *  which accompanies this distribution, and is available at 
+ *  https://www.eclipse.org/legal/epl-2.0/ 
+ *  
+ *  SPDX-License-Identifier: EPL-2.0 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.chart.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.chart.ChartDSLPackage;
+import org.eclipse.osbp.xtext.chart.SeriesColor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Series Color</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.SeriesColorImpl#getRgb <em>Rgb</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SeriesColorImpl extends ChartLazyResolverImpl implements SeriesColor {
+	/**
+	 * The default value of the '{@link #getRgb() <em>Rgb</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRgb()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String RGB_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRgb() <em>Rgb</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRgb()
+	 * @generated
+	 * @ordered
+	 */
+	protected String rgb = RGB_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SeriesColorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ChartDSLPackage.Literals.SERIES_COLOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRgb() {
+		return rgb;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRgb(String newRgb) {
+		String oldRgb = rgb;
+		rgb = newRgb;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.SERIES_COLOR__RGB, oldRgb, rgb));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ChartDSLPackage.SERIES_COLOR__RGB:
+				return getRgb();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ChartDSLPackage.SERIES_COLOR__RGB:
+				setRgb((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ChartDSLPackage.SERIES_COLOR__RGB:
+				setRgb(RGB_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ChartDSLPackage.SERIES_COLOR__RGB:
+				return RGB_EDEFAULT == null ? rgb != null : !RGB_EDEFAULT.equals(rgb);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (rgb: ");
+		result.append(rgb);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SeriesColorImpl
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/TextColorImpl.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/TextColorImpl.java
new file mode 100644
index 0000000..dabe0ce
--- /dev/null
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/impl/TextColorImpl.java
@@ -0,0 +1,175 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License 2.0  
+ *  which accompanies this distribution, and is available at 
+ *  https://www.eclipse.org/legal/epl-2.0/ 
+ *  
+ *  SPDX-License-Identifier: EPL-2.0 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.chart.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.chart.ChartDSLPackage;
+import org.eclipse.osbp.xtext.chart.TextColor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Text Color</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.chart.impl.TextColorImpl#getRgb <em>Rgb</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TextColorImpl extends ChartLazyResolverImpl implements TextColor {
+	/**
+	 * The default value of the '{@link #getRgb() <em>Rgb</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRgb()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String RGB_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRgb() <em>Rgb</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRgb()
+	 * @generated
+	 * @ordered
+	 */
+	protected String rgb = RGB_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TextColorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ChartDSLPackage.Literals.TEXT_COLOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRgb() {
+		return rgb;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRgb(String newRgb) {
+		String oldRgb = rgb;
+		rgb = newRgb;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ChartDSLPackage.TEXT_COLOR__RGB, oldRgb, rgb));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ChartDSLPackage.TEXT_COLOR__RGB:
+				return getRgb();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ChartDSLPackage.TEXT_COLOR__RGB:
+				setRgb((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ChartDSLPackage.TEXT_COLOR__RGB:
+				setRgb(RGB_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ChartDSLPackage.TEXT_COLOR__RGB:
+				return RGB_EDEFAULT == null ? rgb != null : !RGB_EDEFAULT.equals(rgb);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (rgb: ");
+		result.append(rgb);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TextColorImpl
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/util/ChartDSLAdapterFactory.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/util/ChartDSLAdapterFactory.java
index 645f1c5..499b75b 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/util/ChartDSLAdapterFactory.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/util/ChartDSLAdapterFactory.java
@@ -100,6 +100,14 @@
 				return createChartPackageAdapter();
 			}
 			@Override
+			public Adapter caseSeriesColor(SeriesColor object) {
+				return createSeriesColorAdapter();
+			}
+			@Override
+			public Adapter caseTextColor(TextColor object) {
+				return createTextColorAdapter();
+			}
+			@Override
 			public Adapter caseChart(Chart object) {
 				return createChartAdapter();
 			}
@@ -256,6 +264,34 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.chart.SeriesColor <em>Series Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.chart.SeriesColor
+	 * @generated
+	 */
+	public Adapter createSeriesColorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.chart.TextColor <em>Text Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.chart.TextColor
+	 * @generated
+	 */
+	public Adapter createTextColorAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.chart.Chart <em>Chart</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/util/ChartDSLSwitch.java b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/util/ChartDSLSwitch.java
index c50ab43..5f2ec7e 100644
--- a/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/util/ChartDSLSwitch.java
+++ b/org.eclipse.osbp.xtext.chart/emf-gen/org/eclipse/osbp/xtext/chart/util/ChartDSLSwitch.java
@@ -109,6 +109,20 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case ChartDSLPackage.SERIES_COLOR: {
+				SeriesColor seriesColor = (SeriesColor)theEObject;
+				T result = caseSeriesColor(seriesColor);
+				if (result == null) result = caseChartLazyResolver(seriesColor);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ChartDSLPackage.TEXT_COLOR: {
+				TextColor textColor = (TextColor)theEObject;
+				T result = caseTextColor(textColor);
+				if (result == null) result = caseChartLazyResolver(textColor);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case ChartDSLPackage.CHART: {
 				Chart chart = (Chart)theEObject;
 				T result = caseChart(chart);
@@ -313,6 +327,36 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Series Color</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Series Color</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSeriesColor(SeriesColor object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Text Color</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Text Color</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTextColor(TextColor object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Chart</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/org.eclipse.osbp.xtext.chart/model/ChartDSL.xcore b/org.eclipse.osbp.xtext.chart/model/ChartDSL.xcore
index 3a08319..f5c0c02 100644
--- a/org.eclipse.osbp.xtext.chart/model/ChartDSL.xcore
+++ b/org.eclipse.osbp.xtext.chart/model/ChartDSL.xcore
@@ -49,9 +49,20 @@
 }
 
 class ChartPackage extends LPackage{
+	boolean hasColors
+	contains SeriesColor[] colors
+	CanvasFontFamilyEnum defaultFontFamily
 	contains Chart[] charts
 }
 
+class SeriesColor extends ChartLazyResolver{
+	String rgb
+}
+
+class TextColor extends ChartLazyResolver{
+	String rgb
+}
+
 class Chart extends ChartBase{
 	boolean selectById
 	boolean description
@@ -125,10 +136,13 @@
 interface ChartElement extends ChartLazyResolver{}
 
 class ChartLegend extends ChartElement {
+	boolean noLegend
 	LegendPlacementEnum placement
 	boolean toggle
 	boolean replot
 	ToggleTypeEnum toggleType
+	int fontSize
+	String textColor
 }
 
 class ChartHighlighter extends ChartElement {
@@ -141,7 +155,12 @@
 	refers DatamartAxis axis
 	RenderTypeEnum renderType
 	boolean shortLabel
-	int angle
+	int labelAngle
+	int labelFontSize
+	String labelTextColor
+	int tickAngle
+	int tickFontSize
+	String tickTextColor
 }
 
 interface ChartRangeElement extends ChartLazyResolver {}
@@ -181,3 +200,13 @@
 	LOG as 'logarithmic'
 	PYRAMID as 'pyramid'
 }
+
+enum CanvasFontFamilyEnum{
+	DEFAULT as 'Default'
+	ARIAL as 'Arial'
+	VERDANA as 'Verdana'
+	TIMESNEWROMAN as 'Times New Roman'
+	COURIERNEW as 'Courier New'
+	SERIF as 'serif'
+	SANSERIF as 'sans-serif'
+}
diff --git a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/ChartDSL.xtextbin b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/ChartDSL.xtextbin
index 14aed5c..022586c 100644
--- a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/ChartDSL.xtextbin
+++ b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/ChartDSL.xtextbin
Binary files differ
diff --git a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSL.g b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSL.g
index 8a17c4b..0f0f2c4 100644
--- a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSL.g
+++ b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSL.g
@@ -180,16 +180,84 @@
 			)
 		)
 		(
-			otherlv_3='{'
+			(
+				(
+					lv_hasColors_3_0='seriesColors'
+					{
+						newLeafNode(lv_hasColors_3_0, grammarAccess.getChartPackageAccess().getHasColorsSeriesColorsKeyword_3_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getChartPackageRule());
+						}
+						setWithLastConsumed($current, "hasColors", true, "seriesColors");
+					}
+				)
+			)
+			otherlv_4='{'
 			{
-				newLeafNode(otherlv_3, grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_0());
+				newLeafNode(otherlv_4, grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_1());
 			}
 			(
 				(
 					{
-						newCompositeNode(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_3_1_0());
+						newCompositeNode(grammarAccess.getChartPackageAccess().getColorsSeriesColorParserRuleCall_3_2_0());
 					}
-					lv_charts_4_0=ruleChart
+					lv_colors_5_0=ruleSeriesColor
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getChartPackageRule());
+						}
+						add(
+							$current,
+							"colors",
+							lv_colors_5_0,
+							"org.eclipse.osbp.xtext.chart.ChartDSL.SeriesColor");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)*
+			otherlv_6='}'
+			{
+				newLeafNode(otherlv_6, grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_3());
+			}
+		)?
+		(
+			otherlv_7='fontFamily'
+			{
+				newLeafNode(otherlv_7, grammarAccess.getChartPackageAccess().getFontFamilyKeyword_4_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getChartPackageAccess().getDefaultFontFamilyCanvasFontFamilyEnumEnumRuleCall_4_1_0());
+					}
+					lv_defaultFontFamily_8_0=ruleCanvasFontFamilyEnum
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getChartPackageRule());
+						}
+						set(
+							$current,
+							"defaultFontFamily",
+							lv_defaultFontFamily_8_0,
+							"org.eclipse.osbp.xtext.chart.ChartDSL.CanvasFontFamilyEnum");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		(
+			otherlv_9='{'
+			{
+				newLeafNode(otherlv_9, grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_5_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_5_1_0());
+					}
+					lv_charts_10_0=ruleChart
 					{
 						if ($current==null) {
 							$current = createModelElementForParent(grammarAccess.getChartPackageRule());
@@ -197,20 +265,64 @@
 						add(
 							$current,
 							"charts",
-							lv_charts_4_0,
+							lv_charts_10_0,
 							"org.eclipse.osbp.xtext.chart.ChartDSL.Chart");
 						afterParserOrEnumRuleCall();
 					}
 				)
 			)*
-			otherlv_5='}'
+			otherlv_11='}'
 			{
-				newLeafNode(otherlv_5, grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_2());
+				newLeafNode(otherlv_11, grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_5_2());
 			}
 		)?
 	)
 ;
 
+// Entry rule entryRuleSeriesColor
+entryRuleSeriesColor returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getSeriesColorRule()); }
+	iv_ruleSeriesColor=ruleSeriesColor
+	{ $current=$iv_ruleSeriesColor.current; }
+	EOF;
+
+// Rule SeriesColor
+ruleSeriesColor returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getSeriesColorAccess().getSeriesColorAction_0(),
+					$current);
+			}
+		)
+		(
+			(
+				lv_rgb_1_0=RULE_STRING
+				{
+					newLeafNode(lv_rgb_1_0, grammarAccess.getSeriesColorAccess().getRgbSTRINGTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getSeriesColorRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"rgb",
+						lv_rgb_1_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+	)
+;
+
 // Entry rule entryRuleChart
 entryRuleChart returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getChartRule()); }
@@ -1526,77 +1638,148 @@
 	leaveRule();
 }:
 	(
-		otherlv_0='legend'
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getChartLegendAccess().getChartLegendAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='legend'
 		{
-			newLeafNode(otherlv_0, grammarAccess.getChartLegendAccess().getLegendKeyword_0());
+			newLeafNode(otherlv_1, grammarAccess.getChartLegendAccess().getLegendKeyword_1());
 		}
 		(
 			(
+				lv_noLegend_2_0='noLegend'
 				{
-					newCompositeNode(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_1_0());
+					newLeafNode(lv_noLegend_2_0, grammarAccess.getChartLegendAccess().getNoLegendNoLegendKeyword_2_0());
 				}
-				lv_placement_1_0=ruleLegendPlacementEnum
 				{
 					if ($current==null) {
-						$current = createModelElementForParent(grammarAccess.getChartLegendRule());
+						$current = createModelElement(grammarAccess.getChartLegendRule());
 					}
-					set(
-						$current,
-						"placement",
-						lv_placement_1_0,
-						"org.eclipse.osbp.xtext.chart.ChartDSL.LegendPlacementEnum");
-					afterParserOrEnumRuleCall();
+					setWithLastConsumed($current, "noLegend", true, "noLegend");
 				}
 			)
-		)
+		)?
 		(
 			(
 				(
-					lv_toggle_2_0='toggle'
 					{
-						newLeafNode(lv_toggle_2_0, grammarAccess.getChartLegendAccess().getToggleToggleKeyword_2_0_0());
+						newCompositeNode(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_3_0_0());
 					}
-					{
-						if ($current==null) {
-							$current = createModelElement(grammarAccess.getChartLegendRule());
-						}
-						setWithLastConsumed($current, "toggle", true, "toggle");
-					}
-				)
-			)
-			(
-				(
-					lv_replot_3_0='replot'
-					{
-						newLeafNode(lv_replot_3_0, grammarAccess.getChartLegendAccess().getReplotReplotKeyword_2_1_0());
-					}
-					{
-						if ($current==null) {
-							$current = createModelElement(grammarAccess.getChartLegendRule());
-						}
-						setWithLastConsumed($current, "replot", true, "replot");
-					}
-				)
-			)
-			(
-				(
-					{
-						newCompositeNode(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_2_2_0());
-					}
-					lv_toggleType_4_0=ruleToggleTypeEnum
+					lv_placement_3_0=ruleLegendPlacementEnum
 					{
 						if ($current==null) {
 							$current = createModelElementForParent(grammarAccess.getChartLegendRule());
 						}
 						set(
 							$current,
-							"toggleType",
-							lv_toggleType_4_0,
-							"org.eclipse.osbp.xtext.chart.ChartDSL.ToggleTypeEnum");
+							"placement",
+							lv_placement_3_0,
+							"org.eclipse.osbp.xtext.chart.ChartDSL.LegendPlacementEnum");
 						afterParserOrEnumRuleCall();
 					}
 				)
 			)
+			(
+				(
+					(
+						lv_toggle_4_0='toggle'
+						{
+							newLeafNode(lv_toggle_4_0, grammarAccess.getChartLegendAccess().getToggleToggleKeyword_3_1_0_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getChartLegendRule());
+							}
+							setWithLastConsumed($current, "toggle", true, "toggle");
+						}
+					)
+				)
+				(
+					(
+						lv_replot_5_0='replot'
+						{
+							newLeafNode(lv_replot_5_0, grammarAccess.getChartLegendAccess().getReplotReplotKeyword_3_1_1_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getChartLegendRule());
+							}
+							setWithLastConsumed($current, "replot", true, "replot");
+						}
+					)
+				)
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_3_1_2_0());
+						}
+						lv_toggleType_6_0=ruleToggleTypeEnum
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getChartLegendRule());
+							}
+							set(
+								$current,
+								"toggleType",
+								lv_toggleType_6_0,
+								"org.eclipse.osbp.xtext.chart.ChartDSL.ToggleTypeEnum");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)?
+		)?
+		(
+			otherlv_7='fontSize'
+			{
+				newLeafNode(otherlv_7, grammarAccess.getChartLegendAccess().getFontSizeKeyword_4_0());
+			}
+			(
+				(
+					lv_fontSize_8_0=RULE_INT
+					{
+						newLeafNode(lv_fontSize_8_0, grammarAccess.getChartLegendAccess().getFontSizeINTTerminalRuleCall_4_1_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getChartLegendRule());
+						}
+						setWithLastConsumed(
+							$current,
+							"fontSize",
+							lv_fontSize_8_0,
+							"org.eclipse.xtext.xbase.Xbase.INT");
+					}
+				)
+			)
+		)?
+		(
+			otherlv_9='textColor'
+			{
+				newLeafNode(otherlv_9, grammarAccess.getChartLegendAccess().getTextColorKeyword_5_0());
+			}
+			(
+				(
+					lv_textColor_10_0=RULE_STRING
+					{
+						newLeafNode(lv_textColor_10_0, grammarAccess.getChartLegendAccess().getTextColorSTRINGTerminalRuleCall_5_1_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getChartLegendRule());
+						}
+						setWithLastConsumed(
+							$current,
+							"textColor",
+							lv_textColor_10_0,
+							"org.eclipse.xtext.xbase.Xtype.STRING");
+					}
+				)
+			)
 		)?
 	)
 ;
@@ -1744,30 +1927,151 @@
 			)
 		)?
 		(
-			otherlv_5='angle'
+			otherlv_5='labelAngle'
 			{
-				newLeafNode(otherlv_5, grammarAccess.getChartAxisAccess().getAngleKeyword_5_0());
+				newLeafNode(otherlv_5, grammarAccess.getChartAxisAccess().getLabelAngleKeyword_5_0());
 			}
 			(
 				(
 					{
-						newCompositeNode(grammarAccess.getChartAxisAccess().getAngleSignedNumberParserRuleCall_5_1_0());
+						newCompositeNode(grammarAccess.getChartAxisAccess().getLabelAngleSignedNumberParserRuleCall_5_1_0());
 					}
-					lv_angle_6_0=ruleSignedNumber
+					lv_labelAngle_6_0=ruleSignedNumber
 					{
 						if ($current==null) {
 							$current = createModelElementForParent(grammarAccess.getChartAxisRule());
 						}
 						set(
 							$current,
-							"angle",
-							lv_angle_6_0,
+							"labelAngle",
+							lv_labelAngle_6_0,
 							"org.eclipse.osbp.xtext.chart.ChartDSL.SignedNumber");
 						afterParserOrEnumRuleCall();
 					}
 				)
 			)
 		)?
+		(
+			otherlv_7='labelFontSize'
+			{
+				newLeafNode(otherlv_7, grammarAccess.getChartAxisAccess().getLabelFontSizeKeyword_6_0());
+			}
+			(
+				(
+					lv_labelFontSize_8_0=RULE_INT
+					{
+						newLeafNode(lv_labelFontSize_8_0, grammarAccess.getChartAxisAccess().getLabelFontSizeINTTerminalRuleCall_6_1_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getChartAxisRule());
+						}
+						setWithLastConsumed(
+							$current,
+							"labelFontSize",
+							lv_labelFontSize_8_0,
+							"org.eclipse.xtext.xbase.Xbase.INT");
+					}
+				)
+			)
+		)?
+		(
+			otherlv_9='labelTextColor'
+			{
+				newLeafNode(otherlv_9, grammarAccess.getChartAxisAccess().getLabelTextColorKeyword_7_0());
+			}
+			(
+				(
+					lv_labelTextColor_10_0=RULE_STRING
+					{
+						newLeafNode(lv_labelTextColor_10_0, grammarAccess.getChartAxisAccess().getLabelTextColorSTRINGTerminalRuleCall_7_1_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getChartAxisRule());
+						}
+						setWithLastConsumed(
+							$current,
+							"labelTextColor",
+							lv_labelTextColor_10_0,
+							"org.eclipse.xtext.xbase.Xtype.STRING");
+					}
+				)
+			)
+		)?
+		(
+			otherlv_11='tickAngle'
+			{
+				newLeafNode(otherlv_11, grammarAccess.getChartAxisAccess().getTickAngleKeyword_8_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getChartAxisAccess().getTickAngleSignedNumberParserRuleCall_8_1_0());
+					}
+					lv_tickAngle_12_0=ruleSignedNumber
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getChartAxisRule());
+						}
+						set(
+							$current,
+							"tickAngle",
+							lv_tickAngle_12_0,
+							"org.eclipse.osbp.xtext.chart.ChartDSL.SignedNumber");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		(
+			otherlv_13='tickFontSize'
+			{
+				newLeafNode(otherlv_13, grammarAccess.getChartAxisAccess().getTickFontSizeKeyword_9_0());
+			}
+			(
+				(
+					lv_tickFontSize_14_0=RULE_INT
+					{
+						newLeafNode(lv_tickFontSize_14_0, grammarAccess.getChartAxisAccess().getTickFontSizeINTTerminalRuleCall_9_1_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getChartAxisRule());
+						}
+						setWithLastConsumed(
+							$current,
+							"tickFontSize",
+							lv_tickFontSize_14_0,
+							"org.eclipse.xtext.xbase.Xbase.INT");
+					}
+				)
+			)
+		)?
+		(
+			otherlv_15='tickTextColor'
+			{
+				newLeafNode(otherlv_15, grammarAccess.getChartAxisAccess().getTickTextColorKeyword_10_0());
+			}
+			(
+				(
+					lv_tickTextColor_16_0=RULE_STRING
+					{
+						newLeafNode(lv_tickTextColor_16_0, grammarAccess.getChartAxisAccess().getTickTextColorSTRINGTerminalRuleCall_10_1_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getChartAxisRule());
+						}
+						setWithLastConsumed(
+							$current,
+							"tickTextColor",
+							lv_tickTextColor_16_0,
+							"org.eclipse.xtext.xbase.Xtype.STRING");
+					}
+				)
+			)
+		)?
 	)
 ;
 
@@ -8983,6 +9287,73 @@
 	)
 ;
 
+// Rule CanvasFontFamilyEnum
+ruleCanvasFontFamilyEnum returns [Enumerator current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			enumLiteral_0='Default'
+			{
+				$current = grammarAccess.getCanvasFontFamilyEnumAccess().getDEFAULTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getCanvasFontFamilyEnumAccess().getDEFAULTEnumLiteralDeclaration_0());
+			}
+		)
+		    |
+		(
+			enumLiteral_1='Arial'
+			{
+				$current = grammarAccess.getCanvasFontFamilyEnumAccess().getARIALEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getCanvasFontFamilyEnumAccess().getARIALEnumLiteralDeclaration_1());
+			}
+		)
+		    |
+		(
+			enumLiteral_2='Verdana'
+			{
+				$current = grammarAccess.getCanvasFontFamilyEnumAccess().getVERDANAEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_2, grammarAccess.getCanvasFontFamilyEnumAccess().getVERDANAEnumLiteralDeclaration_2());
+			}
+		)
+		    |
+		(
+			enumLiteral_3='Times New Roman'
+			{
+				$current = grammarAccess.getCanvasFontFamilyEnumAccess().getTIMESNEWROMANEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_3, grammarAccess.getCanvasFontFamilyEnumAccess().getTIMESNEWROMANEnumLiteralDeclaration_3());
+			}
+		)
+		    |
+		(
+			enumLiteral_4='Courier New'
+			{
+				$current = grammarAccess.getCanvasFontFamilyEnumAccess().getCOURIERNEWEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_4, grammarAccess.getCanvasFontFamilyEnumAccess().getCOURIERNEWEnumLiteralDeclaration_4());
+			}
+		)
+		    |
+		(
+			enumLiteral_5='serif'
+			{
+				$current = grammarAccess.getCanvasFontFamilyEnumAccess().getSERIFEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_5, grammarAccess.getCanvasFontFamilyEnumAccess().getSERIFEnumLiteralDeclaration_5());
+			}
+		)
+		    |
+		(
+			enumLiteral_6='sans-serif'
+			{
+				$current = grammarAccess.getCanvasFontFamilyEnumAccess().getSANSERIFEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_6, grammarAccess.getCanvasFontFamilyEnumAccess().getSANSERIFEnumLiteralDeclaration_6());
+			}
+		)
+	)
+;
+
 RULE_HEX : ('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F'|'_')+ ('#' (('b'|'B') ('i'|'I')|('l'|'L')))?;
 
 RULE_INT : '0'..'9' ('0'..'9'|'_')*;
diff --git a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSL.tokens b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSL.tokens
index 5a95921..34b0051 100644
--- a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSL.tokens
+++ b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSL.tokens
@@ -1,153 +1,170 @@
-'!'=103
-'!='=89
-'!=='=91
-'#'=75
-'%'=102
-'%='=82
-'&&'=87
-'&'=135
-'('=71
-')'=73
-'*'=67
-'**'=100
-'*='=80
-'+'=99
-'++'=104
-'+='=78
-','=72
-'-'=63
-'--'=105
-'-='=79
-'->'=93
-'.'=106
-'..'=95
-'..<'=94
-'/'=101
-'/='=81
-':'=113
-'::'=107
-';'=69
-'<'=83
-'<>'=97
-'='=74
-'=='=88
-'==='=90
-'=>'=96
-'>'=84
-'>='=85
-'?'=134
-'?.'=108
-'?:'=98
-'@'=70
-'['=76
-']'=77
-'always'=56
-'angle'=61
-'animated'=24
-'as'=18
-'axis'=58
-'bar'=22
-'bubble'=38
-'case'=115
-'catch'=133
-'category'=150
-'chart'=16
-'collapsible'=50
-'cursor'=30
-'datamart'=52
-'date'=152
-'default'=114
-'describedBy'=17
-'do'=118
-'donut'=37
-'east'=144
-'else'=111
-'empty'=36
-'extends'=121
-'extension'=66
-'false'=124
-'fast'=141
-'fillZero'=33
-'filled'=34
-'finally'=131
-'for'=116
-'gauge'=42
-'gradient'=40
-'hasTicks'=44
-'if'=110
-'import'=64
-'inside'=57
-'inside-grid'=136
-'instanceof'=92
-'intervals'=47
-'label'=43
-'legend'=53
-'line'=27
-'linear'=151
-'logarithmic'=153
-'map'=49
-'maximum'=46
-'minimum'=45
-'multiplier'=39
-'new'=123
-'normal'=139
-'north'=142
-'north-east'=143
-'north-west'=149
-'ns'=68
-'null'=126
-'outside'=137
-'outside-grid'=138
+'!'=113
+'!='=99
+'!=='=101
+'#'=85
+'%'=112
+'%='=92
+'&&'=97
+'&'=145
+'('=81
+')'=83
+'*'=77
+'**'=110
+'*='=90
+'+'=109
+'++'=114
+'+='=88
+','=82
+'-'=73
+'--'=115
+'-='=89
+'->'=103
+'.'=116
+'..'=105
+'..<'=104
+'/'=111
+'/='=91
+':'=123
+'::'=117
+';'=79
+'<'=93
+'<>'=107
+'='=84
+'=='=98
+'==='=100
+'=>'=106
+'>'=94
+'>='=95
+'?'=144
+'?.'=118
+'?:'=108
+'@'=80
+'Arial'=166
+'Courier New'=169
+'Default'=165
+'Times New Roman'=168
+'Verdana'=167
+'['=86
+']'=87
+'always'=61
+'animated'=26
+'as'=20
+'axis'=63
+'bar'=24
+'bubble'=40
+'case'=125
+'catch'=143
+'category'=160
+'chart'=18
+'collapsible'=52
+'cursor'=32
+'datamart'=54
+'date'=162
+'default'=124
+'describedBy'=19
+'do'=128
+'donut'=39
+'east'=154
+'else'=121
+'empty'=38
+'extends'=131
+'extension'=76
+'false'=134
+'fast'=151
+'fillZero'=35
+'filled'=36
+'finally'=141
+'fontFamily'=17
+'fontSize'=59
+'for'=126
+'gauge'=44
+'gradient'=42
+'hasTicks'=46
+'if'=120
+'import'=74
+'inside'=62
+'inside-grid'=146
+'instanceof'=102
+'intervals'=49
+'label'=45
+'labelAngle'=66
+'labelFontSize'=67
+'labelTextColor'=68
+'legend'=55
+'line'=29
+'linear'=161
+'logarithmic'=163
+'map'=51
+'maximum'=48
+'minimum'=47
+'multiplier'=41
+'new'=133
+'noLegend'=56
+'normal'=149
+'north'=152
+'north-east'=153
+'north-west'=159
+'ns'=78
+'null'=136
+'outside'=147
+'outside-grid'=148
 'package'=13
-'pie'=35
-'pyramid'=154
-'renders'=59
-'replot'=55
-'return'=129
-'segmentcolor'=62
-'selectById'=19
-'shaded'=23
-'shortLabel'=60
-'showMarker'=28
-'slow'=140
-'south'=146
-'south-east'=145
-'south-west'=147
-'stacked'=26
-'static'=65
-'super'=122
-'swapped'=25
-'switch'=112
-'synchronized'=132
-'throw'=128
-'toggle'=54
-'toolbar'=20
-'tooltip'=32
-'transparent'=41
-'tree'=48
-'trendLine'=29
-'true'=125
-'try'=130
-'typeof'=127
-'upTo'=51
-'using'=21
-'val'=120
-'var'=119
-'west'=148
-'while'=117
-'zoom'=31
-'{'=14
-'|'=109
-'||'=86
-'}'=15
+'pie'=37
+'pyramid'=164
+'renders'=64
+'replot'=58
+'return'=139
+'sans-serif'=171
+'segmentcolor'=72
+'selectById'=21
+'seriesColors'=14
+'serif'=170
+'shaded'=25
+'shortLabel'=65
+'showMarker'=30
+'slow'=150
+'south'=156
+'south-east'=155
+'south-west'=157
+'stacked'=28
+'static'=75
+'super'=132
+'swapped'=27
+'switch'=122
+'synchronized'=142
+'textColor'=60
+'throw'=138
+'tickAngle'=69
+'tickFontSize'=70
+'tickTextColor'=71
+'toggle'=57
+'toolbar'=22
+'tooltip'=34
+'transparent'=43
+'tree'=50
+'trendLine'=31
+'true'=135
+'try'=140
+'typeof'=137
+'upTo'=53
+'using'=23
+'val'=130
+'var'=129
+'west'=158
+'while'=127
+'zoom'=33
+'{'=15
+'|'=119
+'||'=96
+'}'=16
 RULE_ANY_OTHER=12
 RULE_DECIMAL=8
 RULE_HEX=7
-RULE_ID=4
+RULE_ID=5
 RULE_INT=6
 RULE_ML_COMMENT=9
 RULE_SL_COMMENT=10
-RULE_STRING=5
+RULE_STRING=4
 RULE_WS=11
 T__100=100
 T__101=101
@@ -206,8 +223,25 @@
 T__152=152
 T__153=153
 T__154=154
+T__155=155
+T__156=156
+T__157=157
+T__158=158
+T__159=159
 T__15=15
+T__160=160
+T__161=161
+T__162=162
+T__163=163
+T__164=164
+T__165=165
+T__166=166
+T__167=167
+T__168=168
+T__169=169
 T__16=16
+T__170=170
+T__171=171
 T__17=17
 T__18=18
 T__19=19
diff --git a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSLLexer.java b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSLLexer.java
index 6c1c513..4c515d5 100644
--- a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSLLexer.java
+++ b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSLLexer.java
@@ -1,16 +1,3 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- */
 package org.eclipse.osbp.xtext.chart.parser.antlr.internal;
 
 // Hack: Use our own Lexer superclass by means of import. 
@@ -53,7 +40,7 @@
     public static final int T__135=135;
     public static final int T__61=61;
     public static final int T__134=134;
-    public static final int RULE_ID=4;
+    public static final int RULE_ID=5;
     public static final int T__131=131;
     public static final int T__130=130;
     public static final int RULE_INT=6;
@@ -71,6 +58,15 @@
     public static final int T__128=128;
     public static final int T__65=65;
     public static final int T__127=127;
+    public static final int T__166=166;
+    public static final int T__165=165;
+    public static final int T__168=168;
+    public static final int T__167=167;
+    public static final int T__162=162;
+    public static final int T__161=161;
+    public static final int T__164=164;
+    public static final int T__163=163;
+    public static final int T__160=160;
     public static final int T__37=37;
     public static final int T__38=38;
     public static final int T__39=39;
@@ -78,10 +74,15 @@
     public static final int T__34=34;
     public static final int T__35=35;
     public static final int T__36=36;
+    public static final int T__159=159;
     public static final int T__30=30;
+    public static final int T__158=158;
     public static final int T__31=31;
     public static final int T__32=32;
+    public static final int T__155=155;
     public static final int T__154=154;
+    public static final int T__157=157;
+    public static final int T__156=156;
     public static final int T__151=151;
     public static final int T__150=150;
     public static final int T__153=153;
@@ -119,6 +120,8 @@
     public static final int T__96=96;
     public static final int T__97=97;
     public static final int T__98=98;
+    public static final int T__171=171;
+    public static final int T__170=170;
     public static final int RULE_DECIMAL=8;
     public static final int T__26=26;
     public static final int T__27=27;
@@ -128,6 +131,7 @@
     public static final int T__23=23;
     public static final int T__24=24;
     public static final int T__25=25;
+    public static final int T__169=169;
     public static final int T__20=20;
     public static final int T__21=21;
     public static final int T__122=122;
@@ -138,7 +142,7 @@
     public static final int T__72=72;
     public static final int T__123=123;
     public static final int T__120=120;
-    public static final int RULE_STRING=5;
+    public static final int RULE_STRING=4;
     public static final int RULE_SL_COMMENT=10;
     public static final int T__77=77;
     public static final int T__119=119;
@@ -217,10 +221,11 @@
         try {
             int _type = T__14;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:12:7: ( '{' )
-            // InternalChartDSL.g:12:9: '{'
+            // InternalChartDSL.g:12:7: ( 'seriesColors' )
+            // InternalChartDSL.g:12:9: 'seriesColors'
             {
-            match('{'); 
+            match("seriesColors"); 
+
 
             }
 
@@ -237,10 +242,10 @@
         try {
             int _type = T__15;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:13:7: ( '}' )
-            // InternalChartDSL.g:13:9: '}'
+            // InternalChartDSL.g:13:7: ( '{' )
+            // InternalChartDSL.g:13:9: '{'
             {
-            match('}'); 
+            match('{'); 
 
             }
 
@@ -257,11 +262,10 @@
         try {
             int _type = T__16;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:14:7: ( 'chart' )
-            // InternalChartDSL.g:14:9: 'chart'
+            // InternalChartDSL.g:14:7: ( '}' )
+            // InternalChartDSL.g:14:9: '}'
             {
-            match("chart"); 
-
+            match('}'); 
 
             }
 
@@ -278,10 +282,10 @@
         try {
             int _type = T__17;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:15:7: ( 'describedBy' )
-            // InternalChartDSL.g:15:9: 'describedBy'
+            // InternalChartDSL.g:15:7: ( 'fontFamily' )
+            // InternalChartDSL.g:15:9: 'fontFamily'
             {
-            match("describedBy"); 
+            match("fontFamily"); 
 
 
             }
@@ -299,10 +303,10 @@
         try {
             int _type = T__18;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:16:7: ( 'as' )
-            // InternalChartDSL.g:16:9: 'as'
+            // InternalChartDSL.g:16:7: ( 'chart' )
+            // InternalChartDSL.g:16:9: 'chart'
             {
-            match("as"); 
+            match("chart"); 
 
 
             }
@@ -320,10 +324,10 @@
         try {
             int _type = T__19;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:17:7: ( 'selectById' )
-            // InternalChartDSL.g:17:9: 'selectById'
+            // InternalChartDSL.g:17:7: ( 'describedBy' )
+            // InternalChartDSL.g:17:9: 'describedBy'
             {
-            match("selectById"); 
+            match("describedBy"); 
 
 
             }
@@ -341,10 +345,10 @@
         try {
             int _type = T__20;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:18:7: ( 'toolbar' )
-            // InternalChartDSL.g:18:9: 'toolbar'
+            // InternalChartDSL.g:18:7: ( 'as' )
+            // InternalChartDSL.g:18:9: 'as'
             {
-            match("toolbar"); 
+            match("as"); 
 
 
             }
@@ -362,10 +366,10 @@
         try {
             int _type = T__21;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:19:7: ( 'using' )
-            // InternalChartDSL.g:19:9: 'using'
+            // InternalChartDSL.g:19:7: ( 'selectById' )
+            // InternalChartDSL.g:19:9: 'selectById'
             {
-            match("using"); 
+            match("selectById"); 
 
 
             }
@@ -383,10 +387,10 @@
         try {
             int _type = T__22;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:20:7: ( 'bar' )
-            // InternalChartDSL.g:20:9: 'bar'
+            // InternalChartDSL.g:20:7: ( 'toolbar' )
+            // InternalChartDSL.g:20:9: 'toolbar'
             {
-            match("bar"); 
+            match("toolbar"); 
 
 
             }
@@ -404,10 +408,10 @@
         try {
             int _type = T__23;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:21:7: ( 'shaded' )
-            // InternalChartDSL.g:21:9: 'shaded'
+            // InternalChartDSL.g:21:7: ( 'using' )
+            // InternalChartDSL.g:21:9: 'using'
             {
-            match("shaded"); 
+            match("using"); 
 
 
             }
@@ -425,10 +429,10 @@
         try {
             int _type = T__24;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:22:7: ( 'animated' )
-            // InternalChartDSL.g:22:9: 'animated'
+            // InternalChartDSL.g:22:7: ( 'bar' )
+            // InternalChartDSL.g:22:9: 'bar'
             {
-            match("animated"); 
+            match("bar"); 
 
 
             }
@@ -446,10 +450,10 @@
         try {
             int _type = T__25;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:23:7: ( 'swapped' )
-            // InternalChartDSL.g:23:9: 'swapped'
+            // InternalChartDSL.g:23:7: ( 'shaded' )
+            // InternalChartDSL.g:23:9: 'shaded'
             {
-            match("swapped"); 
+            match("shaded"); 
 
 
             }
@@ -467,10 +471,10 @@
         try {
             int _type = T__26;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:24:7: ( 'stacked' )
-            // InternalChartDSL.g:24:9: 'stacked'
+            // InternalChartDSL.g:24:7: ( 'animated' )
+            // InternalChartDSL.g:24:9: 'animated'
             {
-            match("stacked"); 
+            match("animated"); 
 
 
             }
@@ -488,10 +492,10 @@
         try {
             int _type = T__27;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:25:7: ( 'line' )
-            // InternalChartDSL.g:25:9: 'line'
+            // InternalChartDSL.g:25:7: ( 'swapped' )
+            // InternalChartDSL.g:25:9: 'swapped'
             {
-            match("line"); 
+            match("swapped"); 
 
 
             }
@@ -509,10 +513,10 @@
         try {
             int _type = T__28;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:26:7: ( 'showMarker' )
-            // InternalChartDSL.g:26:9: 'showMarker'
+            // InternalChartDSL.g:26:7: ( 'stacked' )
+            // InternalChartDSL.g:26:9: 'stacked'
             {
-            match("showMarker"); 
+            match("stacked"); 
 
 
             }
@@ -530,10 +534,10 @@
         try {
             int _type = T__29;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:27:7: ( 'trendLine' )
-            // InternalChartDSL.g:27:9: 'trendLine'
+            // InternalChartDSL.g:27:7: ( 'line' )
+            // InternalChartDSL.g:27:9: 'line'
             {
-            match("trendLine"); 
+            match("line"); 
 
 
             }
@@ -551,10 +555,10 @@
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:28:7: ( 'cursor' )
-            // InternalChartDSL.g:28:9: 'cursor'
+            // InternalChartDSL.g:28:7: ( 'showMarker' )
+            // InternalChartDSL.g:28:9: 'showMarker'
             {
-            match("cursor"); 
+            match("showMarker"); 
 
 
             }
@@ -572,10 +576,10 @@
         try {
             int _type = T__31;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:29:7: ( 'zoom' )
-            // InternalChartDSL.g:29:9: 'zoom'
+            // InternalChartDSL.g:29:7: ( 'trendLine' )
+            // InternalChartDSL.g:29:9: 'trendLine'
             {
-            match("zoom"); 
+            match("trendLine"); 
 
 
             }
@@ -593,10 +597,10 @@
         try {
             int _type = T__32;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:30:7: ( 'tooltip' )
-            // InternalChartDSL.g:30:9: 'tooltip'
+            // InternalChartDSL.g:30:7: ( 'cursor' )
+            // InternalChartDSL.g:30:9: 'cursor'
             {
-            match("tooltip"); 
+            match("cursor"); 
 
 
             }
@@ -614,10 +618,10 @@
         try {
             int _type = T__33;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:31:7: ( 'fillZero' )
-            // InternalChartDSL.g:31:9: 'fillZero'
+            // InternalChartDSL.g:31:7: ( 'zoom' )
+            // InternalChartDSL.g:31:9: 'zoom'
             {
-            match("fillZero"); 
+            match("zoom"); 
 
 
             }
@@ -635,10 +639,10 @@
         try {
             int _type = T__34;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:32:7: ( 'filled' )
-            // InternalChartDSL.g:32:9: 'filled'
+            // InternalChartDSL.g:32:7: ( 'tooltip' )
+            // InternalChartDSL.g:32:9: 'tooltip'
             {
-            match("filled"); 
+            match("tooltip"); 
 
 
             }
@@ -656,10 +660,10 @@
         try {
             int _type = T__35;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:33:7: ( 'pie' )
-            // InternalChartDSL.g:33:9: 'pie'
+            // InternalChartDSL.g:33:7: ( 'fillZero' )
+            // InternalChartDSL.g:33:9: 'fillZero'
             {
-            match("pie"); 
+            match("fillZero"); 
 
 
             }
@@ -677,10 +681,10 @@
         try {
             int _type = T__36;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:34:7: ( 'empty' )
-            // InternalChartDSL.g:34:9: 'empty'
+            // InternalChartDSL.g:34:7: ( 'filled' )
+            // InternalChartDSL.g:34:9: 'filled'
             {
-            match("empty"); 
+            match("filled"); 
 
 
             }
@@ -698,10 +702,10 @@
         try {
             int _type = T__37;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:35:7: ( 'donut' )
-            // InternalChartDSL.g:35:9: 'donut'
+            // InternalChartDSL.g:35:7: ( 'pie' )
+            // InternalChartDSL.g:35:9: 'pie'
             {
-            match("donut"); 
+            match("pie"); 
 
 
             }
@@ -719,10 +723,10 @@
         try {
             int _type = T__38;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:36:7: ( 'bubble' )
-            // InternalChartDSL.g:36:9: 'bubble'
+            // InternalChartDSL.g:36:7: ( 'empty' )
+            // InternalChartDSL.g:36:9: 'empty'
             {
-            match("bubble"); 
+            match("empty"); 
 
 
             }
@@ -740,10 +744,10 @@
         try {
             int _type = T__39;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:37:7: ( 'multiplier' )
-            // InternalChartDSL.g:37:9: 'multiplier'
+            // InternalChartDSL.g:37:7: ( 'donut' )
+            // InternalChartDSL.g:37:9: 'donut'
             {
-            match("multiplier"); 
+            match("donut"); 
 
 
             }
@@ -761,10 +765,10 @@
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:38:7: ( 'gradient' )
-            // InternalChartDSL.g:38:9: 'gradient'
+            // InternalChartDSL.g:38:7: ( 'bubble' )
+            // InternalChartDSL.g:38:9: 'bubble'
             {
-            match("gradient"); 
+            match("bubble"); 
 
 
             }
@@ -782,10 +786,10 @@
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:39:7: ( 'transparent' )
-            // InternalChartDSL.g:39:9: 'transparent'
+            // InternalChartDSL.g:39:7: ( 'multiplier' )
+            // InternalChartDSL.g:39:9: 'multiplier'
             {
-            match("transparent"); 
+            match("multiplier"); 
 
 
             }
@@ -803,10 +807,10 @@
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:40:7: ( 'gauge' )
-            // InternalChartDSL.g:40:9: 'gauge'
+            // InternalChartDSL.g:40:7: ( 'gradient' )
+            // InternalChartDSL.g:40:9: 'gradient'
             {
-            match("gauge"); 
+            match("gradient"); 
 
 
             }
@@ -824,10 +828,10 @@
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:41:7: ( 'label' )
-            // InternalChartDSL.g:41:9: 'label'
+            // InternalChartDSL.g:41:7: ( 'transparent' )
+            // InternalChartDSL.g:41:9: 'transparent'
             {
-            match("label"); 
+            match("transparent"); 
 
 
             }
@@ -845,10 +849,10 @@
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:42:7: ( 'hasTicks' )
-            // InternalChartDSL.g:42:9: 'hasTicks'
+            // InternalChartDSL.g:42:7: ( 'gauge' )
+            // InternalChartDSL.g:42:9: 'gauge'
             {
-            match("hasTicks"); 
+            match("gauge"); 
 
 
             }
@@ -866,10 +870,10 @@
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:43:7: ( 'minimum' )
-            // InternalChartDSL.g:43:9: 'minimum'
+            // InternalChartDSL.g:43:7: ( 'label' )
+            // InternalChartDSL.g:43:9: 'label'
             {
-            match("minimum"); 
+            match("label"); 
 
 
             }
@@ -887,10 +891,10 @@
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:44:7: ( 'maximum' )
-            // InternalChartDSL.g:44:9: 'maximum'
+            // InternalChartDSL.g:44:7: ( 'hasTicks' )
+            // InternalChartDSL.g:44:9: 'hasTicks'
             {
-            match("maximum"); 
+            match("hasTicks"); 
 
 
             }
@@ -908,10 +912,10 @@
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:45:7: ( 'intervals' )
-            // InternalChartDSL.g:45:9: 'intervals'
+            // InternalChartDSL.g:45:7: ( 'minimum' )
+            // InternalChartDSL.g:45:9: 'minimum'
             {
-            match("intervals"); 
+            match("minimum"); 
 
 
             }
@@ -929,10 +933,10 @@
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:46:7: ( 'tree' )
-            // InternalChartDSL.g:46:9: 'tree'
+            // InternalChartDSL.g:46:7: ( 'maximum' )
+            // InternalChartDSL.g:46:9: 'maximum'
             {
-            match("tree"); 
+            match("maximum"); 
 
 
             }
@@ -950,10 +954,10 @@
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:47:7: ( 'map' )
-            // InternalChartDSL.g:47:9: 'map'
+            // InternalChartDSL.g:47:7: ( 'intervals' )
+            // InternalChartDSL.g:47:9: 'intervals'
             {
-            match("map"); 
+            match("intervals"); 
 
 
             }
@@ -971,10 +975,10 @@
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:48:7: ( 'collapsible' )
-            // InternalChartDSL.g:48:9: 'collapsible'
+            // InternalChartDSL.g:48:7: ( 'tree' )
+            // InternalChartDSL.g:48:9: 'tree'
             {
-            match("collapsible"); 
+            match("tree"); 
 
 
             }
@@ -992,10 +996,10 @@
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:49:7: ( 'upTo' )
-            // InternalChartDSL.g:49:9: 'upTo'
+            // InternalChartDSL.g:49:7: ( 'map' )
+            // InternalChartDSL.g:49:9: 'map'
             {
-            match("upTo"); 
+            match("map"); 
 
 
             }
@@ -1013,10 +1017,10 @@
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:50:7: ( 'datamart' )
-            // InternalChartDSL.g:50:9: 'datamart'
+            // InternalChartDSL.g:50:7: ( 'collapsible' )
+            // InternalChartDSL.g:50:9: 'collapsible'
             {
-            match("datamart"); 
+            match("collapsible"); 
 
 
             }
@@ -1034,10 +1038,10 @@
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:51:7: ( 'legend' )
-            // InternalChartDSL.g:51:9: 'legend'
+            // InternalChartDSL.g:51:7: ( 'upTo' )
+            // InternalChartDSL.g:51:9: 'upTo'
             {
-            match("legend"); 
+            match("upTo"); 
 
 
             }
@@ -1055,10 +1059,10 @@
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:52:7: ( 'toggle' )
-            // InternalChartDSL.g:52:9: 'toggle'
+            // InternalChartDSL.g:52:7: ( 'datamart' )
+            // InternalChartDSL.g:52:9: 'datamart'
             {
-            match("toggle"); 
+            match("datamart"); 
 
 
             }
@@ -1076,10 +1080,10 @@
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:53:7: ( 'replot' )
-            // InternalChartDSL.g:53:9: 'replot'
+            // InternalChartDSL.g:53:7: ( 'legend' )
+            // InternalChartDSL.g:53:9: 'legend'
             {
-            match("replot"); 
+            match("legend"); 
 
 
             }
@@ -1097,10 +1101,10 @@
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:54:7: ( 'always' )
-            // InternalChartDSL.g:54:9: 'always'
+            // InternalChartDSL.g:54:7: ( 'noLegend' )
+            // InternalChartDSL.g:54:9: 'noLegend'
             {
-            match("always"); 
+            match("noLegend"); 
 
 
             }
@@ -1118,10 +1122,10 @@
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:55:7: ( 'inside' )
-            // InternalChartDSL.g:55:9: 'inside'
+            // InternalChartDSL.g:55:7: ( 'toggle' )
+            // InternalChartDSL.g:55:9: 'toggle'
             {
-            match("inside"); 
+            match("toggle"); 
 
 
             }
@@ -1139,10 +1143,10 @@
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:56:7: ( 'axis' )
-            // InternalChartDSL.g:56:9: 'axis'
+            // InternalChartDSL.g:56:7: ( 'replot' )
+            // InternalChartDSL.g:56:9: 'replot'
             {
-            match("axis"); 
+            match("replot"); 
 
 
             }
@@ -1160,10 +1164,10 @@
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:57:7: ( 'renders' )
-            // InternalChartDSL.g:57:9: 'renders'
+            // InternalChartDSL.g:57:7: ( 'fontSize' )
+            // InternalChartDSL.g:57:9: 'fontSize'
             {
-            match("renders"); 
+            match("fontSize"); 
 
 
             }
@@ -1181,10 +1185,10 @@
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:58:7: ( 'shortLabel' )
-            // InternalChartDSL.g:58:9: 'shortLabel'
+            // InternalChartDSL.g:58:7: ( 'textColor' )
+            // InternalChartDSL.g:58:9: 'textColor'
             {
-            match("shortLabel"); 
+            match("textColor"); 
 
 
             }
@@ -1202,10 +1206,10 @@
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:59:7: ( 'angle' )
-            // InternalChartDSL.g:59:9: 'angle'
+            // InternalChartDSL.g:59:7: ( 'always' )
+            // InternalChartDSL.g:59:9: 'always'
             {
-            match("angle"); 
+            match("always"); 
 
 
             }
@@ -1223,10 +1227,10 @@
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:60:7: ( 'segmentcolor' )
-            // InternalChartDSL.g:60:9: 'segmentcolor'
+            // InternalChartDSL.g:60:7: ( 'inside' )
+            // InternalChartDSL.g:60:9: 'inside'
             {
-            match("segmentcolor"); 
+            match("inside"); 
 
 
             }
@@ -1244,10 +1248,11 @@
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:61:7: ( '-' )
-            // InternalChartDSL.g:61:9: '-'
+            // InternalChartDSL.g:61:7: ( 'axis' )
+            // InternalChartDSL.g:61:9: 'axis'
             {
-            match('-'); 
+            match("axis"); 
+
 
             }
 
@@ -1264,10 +1269,10 @@
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:62:7: ( 'import' )
-            // InternalChartDSL.g:62:9: 'import'
+            // InternalChartDSL.g:62:7: ( 'renders' )
+            // InternalChartDSL.g:62:9: 'renders'
             {
-            match("import"); 
+            match("renders"); 
 
 
             }
@@ -1285,10 +1290,10 @@
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:63:7: ( 'static' )
-            // InternalChartDSL.g:63:9: 'static'
+            // InternalChartDSL.g:63:7: ( 'shortLabel' )
+            // InternalChartDSL.g:63:9: 'shortLabel'
             {
-            match("static"); 
+            match("shortLabel"); 
 
 
             }
@@ -1306,10 +1311,10 @@
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:64:7: ( 'extension' )
-            // InternalChartDSL.g:64:9: 'extension'
+            // InternalChartDSL.g:64:7: ( 'labelAngle' )
+            // InternalChartDSL.g:64:9: 'labelAngle'
             {
-            match("extension"); 
+            match("labelAngle"); 
 
 
             }
@@ -1327,10 +1332,11 @@
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:65:7: ( '*' )
-            // InternalChartDSL.g:65:9: '*'
+            // InternalChartDSL.g:65:7: ( 'labelFontSize' )
+            // InternalChartDSL.g:65:9: 'labelFontSize'
             {
-            match('*'); 
+            match("labelFontSize"); 
+
 
             }
 
@@ -1347,10 +1353,10 @@
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:66:7: ( 'ns' )
-            // InternalChartDSL.g:66:9: 'ns'
+            // InternalChartDSL.g:66:7: ( 'labelTextColor' )
+            // InternalChartDSL.g:66:9: 'labelTextColor'
             {
-            match("ns"); 
+            match("labelTextColor"); 
 
 
             }
@@ -1368,10 +1374,11 @@
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:67:7: ( ';' )
-            // InternalChartDSL.g:67:9: ';'
+            // InternalChartDSL.g:67:7: ( 'tickAngle' )
+            // InternalChartDSL.g:67:9: 'tickAngle'
             {
-            match(';'); 
+            match("tickAngle"); 
+
 
             }
 
@@ -1388,10 +1395,11 @@
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:68:7: ( '@' )
-            // InternalChartDSL.g:68:9: '@'
+            // InternalChartDSL.g:68:7: ( 'tickFontSize' )
+            // InternalChartDSL.g:68:9: 'tickFontSize'
             {
-            match('@'); 
+            match("tickFontSize"); 
+
 
             }
 
@@ -1408,10 +1416,11 @@
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:69:7: ( '(' )
-            // InternalChartDSL.g:69:9: '('
+            // InternalChartDSL.g:69:7: ( 'tickTextColor' )
+            // InternalChartDSL.g:69:9: 'tickTextColor'
             {
-            match('('); 
+            match("tickTextColor"); 
+
 
             }
 
@@ -1428,10 +1437,11 @@
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:70:7: ( ',' )
-            // InternalChartDSL.g:70:9: ','
+            // InternalChartDSL.g:70:7: ( 'segmentcolor' )
+            // InternalChartDSL.g:70:9: 'segmentcolor'
             {
-            match(','); 
+            match("segmentcolor"); 
+
 
             }
 
@@ -1448,10 +1458,10 @@
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:71:7: ( ')' )
-            // InternalChartDSL.g:71:9: ')'
+            // InternalChartDSL.g:71:7: ( '-' )
+            // InternalChartDSL.g:71:9: '-'
             {
-            match(')'); 
+            match('-'); 
 
             }
 
@@ -1468,10 +1478,11 @@
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:72:7: ( '=' )
-            // InternalChartDSL.g:72:9: '='
+            // InternalChartDSL.g:72:7: ( 'import' )
+            // InternalChartDSL.g:72:9: 'import'
             {
-            match('='); 
+            match("import"); 
+
 
             }
 
@@ -1488,10 +1499,11 @@
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:73:7: ( '#' )
-            // InternalChartDSL.g:73:9: '#'
+            // InternalChartDSL.g:73:7: ( 'static' )
+            // InternalChartDSL.g:73:9: 'static'
             {
-            match('#'); 
+            match("static"); 
+
 
             }
 
@@ -1508,10 +1520,11 @@
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:74:7: ( '[' )
-            // InternalChartDSL.g:74:9: '['
+            // InternalChartDSL.g:74:7: ( 'extension' )
+            // InternalChartDSL.g:74:9: 'extension'
             {
-            match('['); 
+            match("extension"); 
+
 
             }
 
@@ -1528,10 +1541,10 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:75:7: ( ']' )
-            // InternalChartDSL.g:75:9: ']'
+            // InternalChartDSL.g:75:7: ( '*' )
+            // InternalChartDSL.g:75:9: '*'
             {
-            match(']'); 
+            match('*'); 
 
             }
 
@@ -1548,10 +1561,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:76:7: ( '+=' )
-            // InternalChartDSL.g:76:9: '+='
+            // InternalChartDSL.g:76:7: ( 'ns' )
+            // InternalChartDSL.g:76:9: 'ns'
             {
-            match("+="); 
+            match("ns"); 
 
 
             }
@@ -1569,11 +1582,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:77:7: ( '-=' )
-            // InternalChartDSL.g:77:9: '-='
+            // InternalChartDSL.g:77:7: ( ';' )
+            // InternalChartDSL.g:77:9: ';'
             {
-            match("-="); 
-
+            match(';'); 
 
             }
 
@@ -1590,11 +1602,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:78:7: ( '*=' )
-            // InternalChartDSL.g:78:9: '*='
+            // InternalChartDSL.g:78:7: ( '@' )
+            // InternalChartDSL.g:78:9: '@'
             {
-            match("*="); 
-
+            match('@'); 
 
             }
 
@@ -1611,11 +1622,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:79:7: ( '/=' )
-            // InternalChartDSL.g:79:9: '/='
+            // InternalChartDSL.g:79:7: ( '(' )
+            // InternalChartDSL.g:79:9: '('
             {
-            match("/="); 
-
+            match('('); 
 
             }
 
@@ -1632,11 +1642,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:80:7: ( '%=' )
-            // InternalChartDSL.g:80:9: '%='
+            // InternalChartDSL.g:80:7: ( ',' )
+            // InternalChartDSL.g:80:9: ','
             {
-            match("%="); 
-
+            match(','); 
 
             }
 
@@ -1653,10 +1662,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:81:7: ( '<' )
-            // InternalChartDSL.g:81:9: '<'
+            // InternalChartDSL.g:81:7: ( ')' )
+            // InternalChartDSL.g:81:9: ')'
             {
-            match('<'); 
+            match(')'); 
 
             }
 
@@ -1673,10 +1682,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:82:7: ( '>' )
-            // InternalChartDSL.g:82:9: '>'
+            // InternalChartDSL.g:82:7: ( '=' )
+            // InternalChartDSL.g:82:9: '='
             {
-            match('>'); 
+            match('='); 
 
             }
 
@@ -1693,11 +1702,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:83:7: ( '>=' )
-            // InternalChartDSL.g:83:9: '>='
+            // InternalChartDSL.g:83:7: ( '#' )
+            // InternalChartDSL.g:83:9: '#'
             {
-            match(">="); 
-
+            match('#'); 
 
             }
 
@@ -1714,11 +1722,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:84:7: ( '||' )
-            // InternalChartDSL.g:84:9: '||'
+            // InternalChartDSL.g:84:7: ( '[' )
+            // InternalChartDSL.g:84:9: '['
             {
-            match("||"); 
-
+            match('['); 
 
             }
 
@@ -1735,11 +1742,10 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:85:7: ( '&&' )
-            // InternalChartDSL.g:85:9: '&&'
+            // InternalChartDSL.g:85:7: ( ']' )
+            // InternalChartDSL.g:85:9: ']'
             {
-            match("&&"); 
-
+            match(']'); 
 
             }
 
@@ -1756,10 +1762,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:86:7: ( '==' )
-            // InternalChartDSL.g:86:9: '=='
+            // InternalChartDSL.g:86:7: ( '+=' )
+            // InternalChartDSL.g:86:9: '+='
             {
-            match("=="); 
+            match("+="); 
 
 
             }
@@ -1777,10 +1783,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:87:7: ( '!=' )
-            // InternalChartDSL.g:87:9: '!='
+            // InternalChartDSL.g:87:7: ( '-=' )
+            // InternalChartDSL.g:87:9: '-='
             {
-            match("!="); 
+            match("-="); 
 
 
             }
@@ -1798,10 +1804,10 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:88:7: ( '===' )
-            // InternalChartDSL.g:88:9: '==='
+            // InternalChartDSL.g:88:7: ( '*=' )
+            // InternalChartDSL.g:88:9: '*='
             {
-            match("==="); 
+            match("*="); 
 
 
             }
@@ -1819,10 +1825,10 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:89:7: ( '!==' )
-            // InternalChartDSL.g:89:9: '!=='
+            // InternalChartDSL.g:89:7: ( '/=' )
+            // InternalChartDSL.g:89:9: '/='
             {
-            match("!=="); 
+            match("/="); 
 
 
             }
@@ -1840,10 +1846,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:90:7: ( 'instanceof' )
-            // InternalChartDSL.g:90:9: 'instanceof'
+            // InternalChartDSL.g:90:7: ( '%=' )
+            // InternalChartDSL.g:90:9: '%='
             {
-            match("instanceof"); 
+            match("%="); 
 
 
             }
@@ -1861,11 +1867,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:91:7: ( '->' )
-            // InternalChartDSL.g:91:9: '->'
+            // InternalChartDSL.g:91:7: ( '<' )
+            // InternalChartDSL.g:91:9: '<'
             {
-            match("->"); 
-
+            match('<'); 
 
             }
 
@@ -1882,11 +1887,10 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:92:7: ( '..<' )
-            // InternalChartDSL.g:92:9: '..<'
+            // InternalChartDSL.g:92:7: ( '>' )
+            // InternalChartDSL.g:92:9: '>'
             {
-            match("..<"); 
-
+            match('>'); 
 
             }
 
@@ -1903,10 +1907,10 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:93:7: ( '..' )
-            // InternalChartDSL.g:93:9: '..'
+            // InternalChartDSL.g:93:7: ( '>=' )
+            // InternalChartDSL.g:93:9: '>='
             {
-            match(".."); 
+            match(">="); 
 
 
             }
@@ -1924,10 +1928,10 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:94:7: ( '=>' )
-            // InternalChartDSL.g:94:9: '=>'
+            // InternalChartDSL.g:94:7: ( '||' )
+            // InternalChartDSL.g:94:9: '||'
             {
-            match("=>"); 
+            match("||"); 
 
 
             }
@@ -1945,10 +1949,10 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:95:7: ( '<>' )
-            // InternalChartDSL.g:95:9: '<>'
+            // InternalChartDSL.g:95:7: ( '&&' )
+            // InternalChartDSL.g:95:9: '&&'
             {
-            match("<>"); 
+            match("&&"); 
 
 
             }
@@ -1966,10 +1970,10 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:96:7: ( '?:' )
-            // InternalChartDSL.g:96:9: '?:'
+            // InternalChartDSL.g:96:7: ( '==' )
+            // InternalChartDSL.g:96:9: '=='
             {
-            match("?:"); 
+            match("=="); 
 
 
             }
@@ -1987,10 +1991,11 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:97:7: ( '+' )
-            // InternalChartDSL.g:97:9: '+'
+            // InternalChartDSL.g:97:7: ( '!=' )
+            // InternalChartDSL.g:97:9: '!='
             {
-            match('+'); 
+            match("!="); 
+
 
             }
 
@@ -2007,10 +2012,10 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:98:8: ( '**' )
-            // InternalChartDSL.g:98:10: '**'
+            // InternalChartDSL.g:98:8: ( '===' )
+            // InternalChartDSL.g:98:10: '==='
             {
-            match("**"); 
+            match("==="); 
 
 
             }
@@ -2028,10 +2033,11 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:99:8: ( '/' )
-            // InternalChartDSL.g:99:10: '/'
+            // InternalChartDSL.g:99:8: ( '!==' )
+            // InternalChartDSL.g:99:10: '!=='
             {
-            match('/'); 
+            match("!=="); 
+
 
             }
 
@@ -2048,10 +2054,11 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:100:8: ( '%' )
-            // InternalChartDSL.g:100:10: '%'
+            // InternalChartDSL.g:100:8: ( 'instanceof' )
+            // InternalChartDSL.g:100:10: 'instanceof'
             {
-            match('%'); 
+            match("instanceof"); 
+
 
             }
 
@@ -2068,10 +2075,11 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:101:8: ( '!' )
-            // InternalChartDSL.g:101:10: '!'
+            // InternalChartDSL.g:101:8: ( '->' )
+            // InternalChartDSL.g:101:10: '->'
             {
-            match('!'); 
+            match("->"); 
+
 
             }
 
@@ -2088,10 +2096,10 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:102:8: ( '++' )
-            // InternalChartDSL.g:102:10: '++'
+            // InternalChartDSL.g:102:8: ( '..<' )
+            // InternalChartDSL.g:102:10: '..<'
             {
-            match("++"); 
+            match("..<"); 
 
 
             }
@@ -2109,10 +2117,10 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:103:8: ( '--' )
-            // InternalChartDSL.g:103:10: '--'
+            // InternalChartDSL.g:103:8: ( '..' )
+            // InternalChartDSL.g:103:10: '..'
             {
-            match("--"); 
+            match(".."); 
 
 
             }
@@ -2130,10 +2138,11 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:104:8: ( '.' )
-            // InternalChartDSL.g:104:10: '.'
+            // InternalChartDSL.g:104:8: ( '=>' )
+            // InternalChartDSL.g:104:10: '=>'
             {
-            match('.'); 
+            match("=>"); 
+
 
             }
 
@@ -2150,10 +2159,10 @@
         try {
             int _type = T__107;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:105:8: ( '::' )
-            // InternalChartDSL.g:105:10: '::'
+            // InternalChartDSL.g:105:8: ( '<>' )
+            // InternalChartDSL.g:105:10: '<>'
             {
-            match("::"); 
+            match("<>"); 
 
 
             }
@@ -2171,10 +2180,10 @@
         try {
             int _type = T__108;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:106:8: ( '?.' )
-            // InternalChartDSL.g:106:10: '?.'
+            // InternalChartDSL.g:106:8: ( '?:' )
+            // InternalChartDSL.g:106:10: '?:'
             {
-            match("?."); 
+            match("?:"); 
 
 
             }
@@ -2192,10 +2201,10 @@
         try {
             int _type = T__109;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:107:8: ( '|' )
-            // InternalChartDSL.g:107:10: '|'
+            // InternalChartDSL.g:107:8: ( '+' )
+            // InternalChartDSL.g:107:10: '+'
             {
-            match('|'); 
+            match('+'); 
 
             }
 
@@ -2212,10 +2221,10 @@
         try {
             int _type = T__110;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:108:8: ( 'if' )
-            // InternalChartDSL.g:108:10: 'if'
+            // InternalChartDSL.g:108:8: ( '**' )
+            // InternalChartDSL.g:108:10: '**'
             {
-            match("if"); 
+            match("**"); 
 
 
             }
@@ -2233,11 +2242,10 @@
         try {
             int _type = T__111;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:109:8: ( 'else' )
-            // InternalChartDSL.g:109:10: 'else'
+            // InternalChartDSL.g:109:8: ( '/' )
+            // InternalChartDSL.g:109:10: '/'
             {
-            match("else"); 
-
+            match('/'); 
 
             }
 
@@ -2254,11 +2262,10 @@
         try {
             int _type = T__112;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:110:8: ( 'switch' )
-            // InternalChartDSL.g:110:10: 'switch'
+            // InternalChartDSL.g:110:8: ( '%' )
+            // InternalChartDSL.g:110:10: '%'
             {
-            match("switch"); 
-
+            match('%'); 
 
             }
 
@@ -2275,10 +2282,10 @@
         try {
             int _type = T__113;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:111:8: ( ':' )
-            // InternalChartDSL.g:111:10: ':'
+            // InternalChartDSL.g:111:8: ( '!' )
+            // InternalChartDSL.g:111:10: '!'
             {
-            match(':'); 
+            match('!'); 
 
             }
 
@@ -2295,10 +2302,10 @@
         try {
             int _type = T__114;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:112:8: ( 'default' )
-            // InternalChartDSL.g:112:10: 'default'
+            // InternalChartDSL.g:112:8: ( '++' )
+            // InternalChartDSL.g:112:10: '++'
             {
-            match("default"); 
+            match("++"); 
 
 
             }
@@ -2316,10 +2323,10 @@
         try {
             int _type = T__115;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:113:8: ( 'case' )
-            // InternalChartDSL.g:113:10: 'case'
+            // InternalChartDSL.g:113:8: ( '--' )
+            // InternalChartDSL.g:113:10: '--'
             {
-            match("case"); 
+            match("--"); 
 
 
             }
@@ -2337,11 +2344,10 @@
         try {
             int _type = T__116;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:114:8: ( 'for' )
-            // InternalChartDSL.g:114:10: 'for'
+            // InternalChartDSL.g:114:8: ( '.' )
+            // InternalChartDSL.g:114:10: '.'
             {
-            match("for"); 
-
+            match('.'); 
 
             }
 
@@ -2358,10 +2364,10 @@
         try {
             int _type = T__117;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:115:8: ( 'while' )
-            // InternalChartDSL.g:115:10: 'while'
+            // InternalChartDSL.g:115:8: ( '::' )
+            // InternalChartDSL.g:115:10: '::'
             {
-            match("while"); 
+            match("::"); 
 
 
             }
@@ -2379,10 +2385,10 @@
         try {
             int _type = T__118;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:116:8: ( 'do' )
-            // InternalChartDSL.g:116:10: 'do'
+            // InternalChartDSL.g:116:8: ( '?.' )
+            // InternalChartDSL.g:116:10: '?.'
             {
-            match("do"); 
+            match("?."); 
 
 
             }
@@ -2400,11 +2406,10 @@
         try {
             int _type = T__119;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:117:8: ( 'var' )
-            // InternalChartDSL.g:117:10: 'var'
+            // InternalChartDSL.g:117:8: ( '|' )
+            // InternalChartDSL.g:117:10: '|'
             {
-            match("var"); 
-
+            match('|'); 
 
             }
 
@@ -2421,10 +2426,10 @@
         try {
             int _type = T__120;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:118:8: ( 'val' )
-            // InternalChartDSL.g:118:10: 'val'
+            // InternalChartDSL.g:118:8: ( 'if' )
+            // InternalChartDSL.g:118:10: 'if'
             {
-            match("val"); 
+            match("if"); 
 
 
             }
@@ -2442,10 +2447,10 @@
         try {
             int _type = T__121;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:119:8: ( 'extends' )
-            // InternalChartDSL.g:119:10: 'extends'
+            // InternalChartDSL.g:119:8: ( 'else' )
+            // InternalChartDSL.g:119:10: 'else'
             {
-            match("extends"); 
+            match("else"); 
 
 
             }
@@ -2463,10 +2468,10 @@
         try {
             int _type = T__122;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:120:8: ( 'super' )
-            // InternalChartDSL.g:120:10: 'super'
+            // InternalChartDSL.g:120:8: ( 'switch' )
+            // InternalChartDSL.g:120:10: 'switch'
             {
-            match("super"); 
+            match("switch"); 
 
 
             }
@@ -2484,11 +2489,10 @@
         try {
             int _type = T__123;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:121:8: ( 'new' )
-            // InternalChartDSL.g:121:10: 'new'
+            // InternalChartDSL.g:121:8: ( ':' )
+            // InternalChartDSL.g:121:10: ':'
             {
-            match("new"); 
-
+            match(':'); 
 
             }
 
@@ -2505,10 +2509,10 @@
         try {
             int _type = T__124;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:122:8: ( 'false' )
-            // InternalChartDSL.g:122:10: 'false'
+            // InternalChartDSL.g:122:8: ( 'default' )
+            // InternalChartDSL.g:122:10: 'default'
             {
-            match("false"); 
+            match("default"); 
 
 
             }
@@ -2526,10 +2530,10 @@
         try {
             int _type = T__125;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:123:8: ( 'true' )
-            // InternalChartDSL.g:123:10: 'true'
+            // InternalChartDSL.g:123:8: ( 'case' )
+            // InternalChartDSL.g:123:10: 'case'
             {
-            match("true"); 
+            match("case"); 
 
 
             }
@@ -2547,10 +2551,10 @@
         try {
             int _type = T__126;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:124:8: ( 'null' )
-            // InternalChartDSL.g:124:10: 'null'
+            // InternalChartDSL.g:124:8: ( 'for' )
+            // InternalChartDSL.g:124:10: 'for'
             {
-            match("null"); 
+            match("for"); 
 
 
             }
@@ -2568,10 +2572,10 @@
         try {
             int _type = T__127;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:125:8: ( 'typeof' )
-            // InternalChartDSL.g:125:10: 'typeof'
+            // InternalChartDSL.g:125:8: ( 'while' )
+            // InternalChartDSL.g:125:10: 'while'
             {
-            match("typeof"); 
+            match("while"); 
 
 
             }
@@ -2589,10 +2593,10 @@
         try {
             int _type = T__128;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:126:8: ( 'throw' )
-            // InternalChartDSL.g:126:10: 'throw'
+            // InternalChartDSL.g:126:8: ( 'do' )
+            // InternalChartDSL.g:126:10: 'do'
             {
-            match("throw"); 
+            match("do"); 
 
 
             }
@@ -2610,10 +2614,10 @@
         try {
             int _type = T__129;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:127:8: ( 'return' )
-            // InternalChartDSL.g:127:10: 'return'
+            // InternalChartDSL.g:127:8: ( 'var' )
+            // InternalChartDSL.g:127:10: 'var'
             {
-            match("return"); 
+            match("var"); 
 
 
             }
@@ -2631,10 +2635,10 @@
         try {
             int _type = T__130;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:128:8: ( 'try' )
-            // InternalChartDSL.g:128:10: 'try'
+            // InternalChartDSL.g:128:8: ( 'val' )
+            // InternalChartDSL.g:128:10: 'val'
             {
-            match("try"); 
+            match("val"); 
 
 
             }
@@ -2652,10 +2656,10 @@
         try {
             int _type = T__131;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:129:8: ( 'finally' )
-            // InternalChartDSL.g:129:10: 'finally'
+            // InternalChartDSL.g:129:8: ( 'extends' )
+            // InternalChartDSL.g:129:10: 'extends'
             {
-            match("finally"); 
+            match("extends"); 
 
 
             }
@@ -2673,10 +2677,10 @@
         try {
             int _type = T__132;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:130:8: ( 'synchronized' )
-            // InternalChartDSL.g:130:10: 'synchronized'
+            // InternalChartDSL.g:130:8: ( 'super' )
+            // InternalChartDSL.g:130:10: 'super'
             {
-            match("synchronized"); 
+            match("super"); 
 
 
             }
@@ -2694,10 +2698,10 @@
         try {
             int _type = T__133;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:131:8: ( 'catch' )
-            // InternalChartDSL.g:131:10: 'catch'
+            // InternalChartDSL.g:131:8: ( 'new' )
+            // InternalChartDSL.g:131:10: 'new'
             {
-            match("catch"); 
+            match("new"); 
 
 
             }
@@ -2715,10 +2719,11 @@
         try {
             int _type = T__134;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:132:8: ( '?' )
-            // InternalChartDSL.g:132:10: '?'
+            // InternalChartDSL.g:132:8: ( 'false' )
+            // InternalChartDSL.g:132:10: 'false'
             {
-            match('?'); 
+            match("false"); 
+
 
             }
 
@@ -2735,10 +2740,11 @@
         try {
             int _type = T__135;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:133:8: ( '&' )
-            // InternalChartDSL.g:133:10: '&'
+            // InternalChartDSL.g:133:8: ( 'true' )
+            // InternalChartDSL.g:133:10: 'true'
             {
-            match('&'); 
+            match("true"); 
+
 
             }
 
@@ -2755,10 +2761,10 @@
         try {
             int _type = T__136;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:134:8: ( 'inside-grid' )
-            // InternalChartDSL.g:134:10: 'inside-grid'
+            // InternalChartDSL.g:134:8: ( 'null' )
+            // InternalChartDSL.g:134:10: 'null'
             {
-            match("inside-grid"); 
+            match("null"); 
 
 
             }
@@ -2776,10 +2782,10 @@
         try {
             int _type = T__137;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:135:8: ( 'outside' )
-            // InternalChartDSL.g:135:10: 'outside'
+            // InternalChartDSL.g:135:8: ( 'typeof' )
+            // InternalChartDSL.g:135:10: 'typeof'
             {
-            match("outside"); 
+            match("typeof"); 
 
 
             }
@@ -2797,10 +2803,10 @@
         try {
             int _type = T__138;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:136:8: ( 'outside-grid' )
-            // InternalChartDSL.g:136:10: 'outside-grid'
+            // InternalChartDSL.g:136:8: ( 'throw' )
+            // InternalChartDSL.g:136:10: 'throw'
             {
-            match("outside-grid"); 
+            match("throw"); 
 
 
             }
@@ -2818,10 +2824,10 @@
         try {
             int _type = T__139;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:137:8: ( 'normal' )
-            // InternalChartDSL.g:137:10: 'normal'
+            // InternalChartDSL.g:137:8: ( 'return' )
+            // InternalChartDSL.g:137:10: 'return'
             {
-            match("normal"); 
+            match("return"); 
 
 
             }
@@ -2839,10 +2845,10 @@
         try {
             int _type = T__140;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:138:8: ( 'slow' )
-            // InternalChartDSL.g:138:10: 'slow'
+            // InternalChartDSL.g:138:8: ( 'try' )
+            // InternalChartDSL.g:138:10: 'try'
             {
-            match("slow"); 
+            match("try"); 
 
 
             }
@@ -2860,10 +2866,10 @@
         try {
             int _type = T__141;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:139:8: ( 'fast' )
-            // InternalChartDSL.g:139:10: 'fast'
+            // InternalChartDSL.g:139:8: ( 'finally' )
+            // InternalChartDSL.g:139:10: 'finally'
             {
-            match("fast"); 
+            match("finally"); 
 
 
             }
@@ -2881,10 +2887,10 @@
         try {
             int _type = T__142;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:140:8: ( 'north' )
-            // InternalChartDSL.g:140:10: 'north'
+            // InternalChartDSL.g:140:8: ( 'synchronized' )
+            // InternalChartDSL.g:140:10: 'synchronized'
             {
-            match("north"); 
+            match("synchronized"); 
 
 
             }
@@ -2902,10 +2908,10 @@
         try {
             int _type = T__143;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:141:8: ( 'north-east' )
-            // InternalChartDSL.g:141:10: 'north-east'
+            // InternalChartDSL.g:141:8: ( 'catch' )
+            // InternalChartDSL.g:141:10: 'catch'
             {
-            match("north-east"); 
+            match("catch"); 
 
 
             }
@@ -2923,11 +2929,10 @@
         try {
             int _type = T__144;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:142:8: ( 'east' )
-            // InternalChartDSL.g:142:10: 'east'
+            // InternalChartDSL.g:142:8: ( '?' )
+            // InternalChartDSL.g:142:10: '?'
             {
-            match("east"); 
-
+            match('?'); 
 
             }
 
@@ -2944,11 +2949,10 @@
         try {
             int _type = T__145;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:143:8: ( 'south-east' )
-            // InternalChartDSL.g:143:10: 'south-east'
+            // InternalChartDSL.g:143:8: ( '&' )
+            // InternalChartDSL.g:143:10: '&'
             {
-            match("south-east"); 
-
+            match('&'); 
 
             }
 
@@ -2965,10 +2969,10 @@
         try {
             int _type = T__146;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:144:8: ( 'south' )
-            // InternalChartDSL.g:144:10: 'south'
+            // InternalChartDSL.g:144:8: ( 'inside-grid' )
+            // InternalChartDSL.g:144:10: 'inside-grid'
             {
-            match("south"); 
+            match("inside-grid"); 
 
 
             }
@@ -2986,10 +2990,10 @@
         try {
             int _type = T__147;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:145:8: ( 'south-west' )
-            // InternalChartDSL.g:145:10: 'south-west'
+            // InternalChartDSL.g:145:8: ( 'outside' )
+            // InternalChartDSL.g:145:10: 'outside'
             {
-            match("south-west"); 
+            match("outside"); 
 
 
             }
@@ -3007,10 +3011,10 @@
         try {
             int _type = T__148;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:146:8: ( 'west' )
-            // InternalChartDSL.g:146:10: 'west'
+            // InternalChartDSL.g:146:8: ( 'outside-grid' )
+            // InternalChartDSL.g:146:10: 'outside-grid'
             {
-            match("west"); 
+            match("outside-grid"); 
 
 
             }
@@ -3028,10 +3032,10 @@
         try {
             int _type = T__149;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:147:8: ( 'north-west' )
-            // InternalChartDSL.g:147:10: 'north-west'
+            // InternalChartDSL.g:147:8: ( 'normal' )
+            // InternalChartDSL.g:147:10: 'normal'
             {
-            match("north-west"); 
+            match("normal"); 
 
 
             }
@@ -3049,10 +3053,10 @@
         try {
             int _type = T__150;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:148:8: ( 'category' )
-            // InternalChartDSL.g:148:10: 'category'
+            // InternalChartDSL.g:148:8: ( 'slow' )
+            // InternalChartDSL.g:148:10: 'slow'
             {
-            match("category"); 
+            match("slow"); 
 
 
             }
@@ -3070,10 +3074,10 @@
         try {
             int _type = T__151;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:149:8: ( 'linear' )
-            // InternalChartDSL.g:149:10: 'linear'
+            // InternalChartDSL.g:149:8: ( 'fast' )
+            // InternalChartDSL.g:149:10: 'fast'
             {
-            match("linear"); 
+            match("fast"); 
 
 
             }
@@ -3091,10 +3095,10 @@
         try {
             int _type = T__152;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:150:8: ( 'date' )
-            // InternalChartDSL.g:150:10: 'date'
+            // InternalChartDSL.g:150:8: ( 'north' )
+            // InternalChartDSL.g:150:10: 'north'
             {
-            match("date"); 
+            match("north"); 
 
 
             }
@@ -3112,10 +3116,10 @@
         try {
             int _type = T__153;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:151:8: ( 'logarithmic' )
-            // InternalChartDSL.g:151:10: 'logarithmic'
+            // InternalChartDSL.g:151:8: ( 'north-east' )
+            // InternalChartDSL.g:151:10: 'north-east'
             {
-            match("logarithmic"); 
+            match("north-east"); 
 
 
             }
@@ -3133,10 +3137,10 @@
         try {
             int _type = T__154;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:152:8: ( 'pyramid' )
-            // InternalChartDSL.g:152:10: 'pyramid'
+            // InternalChartDSL.g:152:8: ( 'east' )
+            // InternalChartDSL.g:152:10: 'east'
             {
-            match("pyramid"); 
+            match("east"); 
 
 
             }
@@ -3149,15 +3153,372 @@
     }
     // $ANTLR end "T__154"
 
+    // $ANTLR start "T__155"
+    public final void mT__155() throws RecognitionException {
+        try {
+            int _type = T__155;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:153:8: ( 'south-east' )
+            // InternalChartDSL.g:153:10: 'south-east'
+            {
+            match("south-east"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__155"
+
+    // $ANTLR start "T__156"
+    public final void mT__156() throws RecognitionException {
+        try {
+            int _type = T__156;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:154:8: ( 'south' )
+            // InternalChartDSL.g:154:10: 'south'
+            {
+            match("south"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__156"
+
+    // $ANTLR start "T__157"
+    public final void mT__157() throws RecognitionException {
+        try {
+            int _type = T__157;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:155:8: ( 'south-west' )
+            // InternalChartDSL.g:155:10: 'south-west'
+            {
+            match("south-west"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__157"
+
+    // $ANTLR start "T__158"
+    public final void mT__158() throws RecognitionException {
+        try {
+            int _type = T__158;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:156:8: ( 'west' )
+            // InternalChartDSL.g:156:10: 'west'
+            {
+            match("west"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__158"
+
+    // $ANTLR start "T__159"
+    public final void mT__159() throws RecognitionException {
+        try {
+            int _type = T__159;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:157:8: ( 'north-west' )
+            // InternalChartDSL.g:157:10: 'north-west'
+            {
+            match("north-west"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__159"
+
+    // $ANTLR start "T__160"
+    public final void mT__160() throws RecognitionException {
+        try {
+            int _type = T__160;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:158:8: ( 'category' )
+            // InternalChartDSL.g:158:10: 'category'
+            {
+            match("category"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__160"
+
+    // $ANTLR start "T__161"
+    public final void mT__161() throws RecognitionException {
+        try {
+            int _type = T__161;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:159:8: ( 'linear' )
+            // InternalChartDSL.g:159:10: 'linear'
+            {
+            match("linear"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__161"
+
+    // $ANTLR start "T__162"
+    public final void mT__162() throws RecognitionException {
+        try {
+            int _type = T__162;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:160:8: ( 'date' )
+            // InternalChartDSL.g:160:10: 'date'
+            {
+            match("date"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__162"
+
+    // $ANTLR start "T__163"
+    public final void mT__163() throws RecognitionException {
+        try {
+            int _type = T__163;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:161:8: ( 'logarithmic' )
+            // InternalChartDSL.g:161:10: 'logarithmic'
+            {
+            match("logarithmic"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__163"
+
+    // $ANTLR start "T__164"
+    public final void mT__164() throws RecognitionException {
+        try {
+            int _type = T__164;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:162:8: ( 'pyramid' )
+            // InternalChartDSL.g:162:10: 'pyramid'
+            {
+            match("pyramid"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__164"
+
+    // $ANTLR start "T__165"
+    public final void mT__165() throws RecognitionException {
+        try {
+            int _type = T__165;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:163:8: ( 'Default' )
+            // InternalChartDSL.g:163:10: 'Default'
+            {
+            match("Default"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__165"
+
+    // $ANTLR start "T__166"
+    public final void mT__166() throws RecognitionException {
+        try {
+            int _type = T__166;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:164:8: ( 'Arial' )
+            // InternalChartDSL.g:164:10: 'Arial'
+            {
+            match("Arial"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__166"
+
+    // $ANTLR start "T__167"
+    public final void mT__167() throws RecognitionException {
+        try {
+            int _type = T__167;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:165:8: ( 'Verdana' )
+            // InternalChartDSL.g:165:10: 'Verdana'
+            {
+            match("Verdana"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__167"
+
+    // $ANTLR start "T__168"
+    public final void mT__168() throws RecognitionException {
+        try {
+            int _type = T__168;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:166:8: ( 'Times New Roman' )
+            // InternalChartDSL.g:166:10: 'Times New Roman'
+            {
+            match("Times New Roman"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__168"
+
+    // $ANTLR start "T__169"
+    public final void mT__169() throws RecognitionException {
+        try {
+            int _type = T__169;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:167:8: ( 'Courier New' )
+            // InternalChartDSL.g:167:10: 'Courier New'
+            {
+            match("Courier New"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__169"
+
+    // $ANTLR start "T__170"
+    public final void mT__170() throws RecognitionException {
+        try {
+            int _type = T__170;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:168:8: ( 'serif' )
+            // InternalChartDSL.g:168:10: 'serif'
+            {
+            match("serif"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__170"
+
+    // $ANTLR start "T__171"
+    public final void mT__171() throws RecognitionException {
+        try {
+            int _type = T__171;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalChartDSL.g:169:8: ( 'sans-serif' )
+            // InternalChartDSL.g:169:10: 'sans-serif'
+            {
+            match("sans-serif"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__171"
+
     // $ANTLR start "RULE_HEX"
     public final void mRULE_HEX() throws RecognitionException {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:8986:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalChartDSL.g:8986:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalChartDSL.g:9357:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalChartDSL.g:9357:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalChartDSL.g:8986:12: ( '0x' | '0X' )
+            // InternalChartDSL.g:9357:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -3185,7 +3546,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalChartDSL.g:8986:13: '0x'
+                    // InternalChartDSL.g:9357:13: '0x'
                     {
                     match("0x"); 
 
@@ -3193,7 +3554,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:8986:18: '0X'
+                    // InternalChartDSL.g:9357:18: '0X'
                     {
                     match("0X"); 
 
@@ -3203,7 +3564,7 @@
 
             }
 
-            // InternalChartDSL.g:8986:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalChartDSL.g:9357:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -3241,7 +3602,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalChartDSL.g:8986:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalChartDSL.g:9357:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -3250,10 +3611,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalChartDSL.g:8986:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalChartDSL.g:9357:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalChartDSL.g:8986:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalChartDSL.g:9357:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -3271,7 +3632,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalChartDSL.g:8986:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalChartDSL.g:9357:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -3295,7 +3656,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalChartDSL.g:8986:84: ( 'l' | 'L' )
+                            // InternalChartDSL.g:9357:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -3334,11 +3695,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:8988:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalChartDSL.g:8988:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalChartDSL.g:9359:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalChartDSL.g:9359:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalChartDSL.g:8988:21: ( '0' .. '9' | '_' )*
+            // InternalChartDSL.g:9359:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -3387,11 +3748,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:8990:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalChartDSL.g:8990:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalChartDSL.g:9361:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalChartDSL.g:9361:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalChartDSL.g:8990:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalChartDSL.g:9361:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -3400,7 +3761,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalChartDSL.g:8990:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalChartDSL.g:9361:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -3411,7 +3772,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalChartDSL.g:8990:36: ( '+' | '-' )?
+                    // InternalChartDSL.g:9361:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -3444,7 +3805,7 @@
 
             }
 
-            // InternalChartDSL.g:8990:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalChartDSL.g:9361:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -3456,7 +3817,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalChartDSL.g:8990:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalChartDSL.g:9361:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -3480,7 +3841,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:8990:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalChartDSL.g:9361: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();
@@ -3513,10 +3874,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:8992:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalChartDSL.g:8992:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalChartDSL.g:9363:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalChartDSL.g:9363:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalChartDSL.g:8992:11: ( '^' )?
+            // InternalChartDSL.g:9363:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -3525,7 +3886,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalChartDSL.g:8992:11: '^'
+                    // InternalChartDSL.g:9363:11: '^'
                     {
                     match('^'); 
 
@@ -3543,7 +3904,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalChartDSL.g:8992:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalChartDSL.g:9363:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -3592,10 +3953,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:8994:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalChartDSL.g:8994:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalChartDSL.g:9365:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalChartDSL.g:9365:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalChartDSL.g:8994:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalChartDSL.g:9365:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -3613,10 +3974,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalChartDSL.g:8994:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalChartDSL.g:9365:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalChartDSL.g:8994:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalChartDSL.g:9365:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -3632,7 +3993,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalChartDSL.g:8994:21: '\\\\' .
+                    	    // InternalChartDSL.g:9365:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3640,7 +4001,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalChartDSL.g:8994:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalChartDSL.g:9365:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3660,7 +4021,7 @@
                         }
                     } while (true);
 
-                    // InternalChartDSL.g:8994:44: ( '\"' )?
+                    // InternalChartDSL.g:9365:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -3669,7 +4030,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalChartDSL.g:8994:44: '\"'
+                            // InternalChartDSL.g:9365:44: '\"'
                             {
                             match('\"'); 
 
@@ -3682,10 +4043,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:8994:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalChartDSL.g:9365:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalChartDSL.g:8994:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalChartDSL.g:9365:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -3701,7 +4062,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalChartDSL.g:8994:55: '\\\\' .
+                    	    // InternalChartDSL.g:9365:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3709,7 +4070,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalChartDSL.g:8994:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalChartDSL.g:9365:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3729,7 +4090,7 @@
                         }
                     } while (true);
 
-                    // InternalChartDSL.g:8994:79: ( '\\'' )?
+                    // InternalChartDSL.g:9365:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -3738,7 +4099,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalChartDSL.g:8994:79: '\\''
+                            // InternalChartDSL.g:9365:79: '\\''
                             {
                             match('\''); 
 
@@ -3769,12 +4130,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:8996:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalChartDSL.g:8996:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalChartDSL.g:9367:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalChartDSL.g:9367:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalChartDSL.g:8996:24: ( options {greedy=false; } : . )*
+            // InternalChartDSL.g:9367:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -3799,7 +4160,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalChartDSL.g:8996:52: .
+            	    // InternalChartDSL.g:9367:52: .
             	    {
             	    matchAny(); 
 
@@ -3829,12 +4190,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:8998:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalChartDSL.g:8998:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalChartDSL.g:9369:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalChartDSL.g:9369:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalChartDSL.g:8998:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalChartDSL.g:9369:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -3847,7 +4208,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalChartDSL.g:8998:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalChartDSL.g:9369: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();
@@ -3867,7 +4228,7 @@
                 }
             } while (true);
 
-            // InternalChartDSL.g:8998:40: ( ( '\\r' )? '\\n' )?
+            // InternalChartDSL.g:9369:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -3876,9 +4237,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalChartDSL.g:8998:41: ( '\\r' )? '\\n'
+                    // InternalChartDSL.g:9369:41: ( '\\r' )? '\\n'
                     {
-                    // InternalChartDSL.g:8998:41: ( '\\r' )?
+                    // InternalChartDSL.g:9369:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -3887,7 +4248,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalChartDSL.g:8998:41: '\\r'
+                            // InternalChartDSL.g:9369:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3919,10 +4280,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:9000:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalChartDSL.g:9000:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalChartDSL.g:9371:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalChartDSL.g:9371:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalChartDSL.g:9000:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalChartDSL.g:9371:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -3976,8 +4337,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalChartDSL.g:9002:16: ( . )
-            // InternalChartDSL.g:9002:18: .
+            // InternalChartDSL.g:9373:16: ( . )
+            // InternalChartDSL.g:9373:18: .
             {
             matchAny(); 
 
@@ -3992,8 +4353,8 @@
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalChartDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=151;
+        // InternalChartDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=168;
         alt21 = dfa21.predict(input);
         switch (alt21) {
             case 1 :
@@ -4991,63 +5352,182 @@
                 }
                 break;
             case 143 :
-                // InternalChartDSL.g:1:917: RULE_HEX
+                // InternalChartDSL.g:1:917: T__155
+                {
+                mT__155(); 
+
+                }
+                break;
+            case 144 :
+                // InternalChartDSL.g:1:924: T__156
+                {
+                mT__156(); 
+
+                }
+                break;
+            case 145 :
+                // InternalChartDSL.g:1:931: T__157
+                {
+                mT__157(); 
+
+                }
+                break;
+            case 146 :
+                // InternalChartDSL.g:1:938: T__158
+                {
+                mT__158(); 
+
+                }
+                break;
+            case 147 :
+                // InternalChartDSL.g:1:945: T__159
+                {
+                mT__159(); 
+
+                }
+                break;
+            case 148 :
+                // InternalChartDSL.g:1:952: T__160
+                {
+                mT__160(); 
+
+                }
+                break;
+            case 149 :
+                // InternalChartDSL.g:1:959: T__161
+                {
+                mT__161(); 
+
+                }
+                break;
+            case 150 :
+                // InternalChartDSL.g:1:966: T__162
+                {
+                mT__162(); 
+
+                }
+                break;
+            case 151 :
+                // InternalChartDSL.g:1:973: T__163
+                {
+                mT__163(); 
+
+                }
+                break;
+            case 152 :
+                // InternalChartDSL.g:1:980: T__164
+                {
+                mT__164(); 
+
+                }
+                break;
+            case 153 :
+                // InternalChartDSL.g:1:987: T__165
+                {
+                mT__165(); 
+
+                }
+                break;
+            case 154 :
+                // InternalChartDSL.g:1:994: T__166
+                {
+                mT__166(); 
+
+                }
+                break;
+            case 155 :
+                // InternalChartDSL.g:1:1001: T__167
+                {
+                mT__167(); 
+
+                }
+                break;
+            case 156 :
+                // InternalChartDSL.g:1:1008: T__168
+                {
+                mT__168(); 
+
+                }
+                break;
+            case 157 :
+                // InternalChartDSL.g:1:1015: T__169
+                {
+                mT__169(); 
+
+                }
+                break;
+            case 158 :
+                // InternalChartDSL.g:1:1022: T__170
+                {
+                mT__170(); 
+
+                }
+                break;
+            case 159 :
+                // InternalChartDSL.g:1:1029: T__171
+                {
+                mT__171(); 
+
+                }
+                break;
+            case 160 :
+                // InternalChartDSL.g:1:1036: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 144 :
-                // InternalChartDSL.g:1:926: RULE_INT
+            case 161 :
+                // InternalChartDSL.g:1:1045: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 145 :
-                // InternalChartDSL.g:1:935: RULE_DECIMAL
+            case 162 :
+                // InternalChartDSL.g:1:1054: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 146 :
-                // InternalChartDSL.g:1:948: RULE_ID
+            case 163 :
+                // InternalChartDSL.g:1:1067: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 147 :
-                // InternalChartDSL.g:1:956: RULE_STRING
+            case 164 :
+                // InternalChartDSL.g:1:1075: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 148 :
-                // InternalChartDSL.g:1:968: RULE_ML_COMMENT
+            case 165 :
+                // InternalChartDSL.g:1:1087: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 149 :
-                // InternalChartDSL.g:1:984: RULE_SL_COMMENT
+            case 166 :
+                // InternalChartDSL.g:1:1103: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 150 :
-                // InternalChartDSL.g:1:1000: RULE_WS
+            case 167 :
+                // InternalChartDSL.g:1:1119: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 151 :
-                // InternalChartDSL.g:1:1008: RULE_ANY_OTHER
+            case 168 :
+                // InternalChartDSL.g:1:1127: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -5061,225 +5541,216 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\71\2\uffff\20\71\1\160\1\163\1\71\5\uffff\1\177\3\uffff\1\u0085\1\u0089\1\u008b\1\u008d\1\u008f\1\u0091\1\u0093\1\u0095\1\u0097\1\u009a\1\u009c\3\71\2\u00a3\1\65\5\uffff\3\71\3\uffff\5\71\1\u00b2\1\71\1\u00b4\47\71\1\u00e8\1\71\7\uffff\1\u00ec\3\71\5\uffff\1\u00f1\26\uffff\1\u00f3\1\uffff\1\u00f5\6\uffff\4\71\1\uffff\1\u00a3\4\uffff\1\71\1\u00fc\11\71\1\uffff\1\71\1\uffff\24\71\1\u0120\4\71\1\u0125\10\71\1\u012e\11\71\1\u0138\6\71\1\uffff\3\71\1\uffff\1\u0143\2\71\6\uffff\2\71\1\u0149\1\u014a\2\71\1\uffff\4\71\1\u0151\6\71\1\u0158\3\71\1\u015c\13\71\1\u0168\4\71\1\u016e\1\71\1\u0170\1\uffff\3\71\1\u0174\1\uffff\1\71\1\u0177\3\71\1\u017b\2\71\1\uffff\1\71\1\u0180\2\71\1\u0183\1\u0184\3\71\1\uffff\12\71\1\uffff\1\u0192\3\71\1\u0196\2\uffff\3\71\1\u019a\2\71\1\uffff\1\u019d\3\71\1\u01a1\1\71\1\uffff\1\71\1\u01a4\1\71\1\uffff\11\71\1\u01af\1\71\1\uffff\1\u01b2\4\71\1\uffff\1\71\1\uffff\1\71\1\u01b9\1\u01ba\1\uffff\2\71\1\uffff\1\u01bd\2\71\1\uffff\3\71\1\u01c3\1\uffff\1\u01c4\1\71\2\uffff\4\71\1\u01cb\10\71\1\uffff\1\71\1\u01d6\1\u01d7\1\uffff\3\71\1\uffff\1\u01db\1\71\1\uffff\3\71\1\uffff\2\71\1\uffff\1\u01e2\2\71\1\u01e5\3\71\1\u01e9\1\71\1\u01eb\1\uffff\1\71\2\uffff\2\71\1\u01f1\2\71\1\u01f4\2\uffff\1\u01f5\1\u01f6\1\uffff\1\u01f7\2\71\1\u01fa\1\71\2\uffff\6\71\1\uffff\2\71\1\u0205\1\71\1\u0207\1\u0208\1\71\1\u020a\1\u020b\3\uffff\1\71\1\u020f\1\u0210\1\uffff\3\71\1\u0214\2\71\1\uffff\2\71\1\uffff\2\71\1\u021b\1\uffff\1\u021c\1\uffff\1\71\2\uffff\1\u021e\1\u021f\1\uffff\2\71\4\uffff\2\71\1\uffff\1\u0224\1\71\1\u0226\1\71\1\u0228\1\u0229\3\71\2\uffff\1\71\2\uffff\1\u022e\4\uffff\1\u0230\2\uffff\1\71\1\u0232\1\71\1\uffff\1\u0234\1\u0235\4\71\2\uffff\1\71\2\uffff\3\71\1\u023e\1\uffff\1\71\1\uffff\1\71\2\uffff\1\u0241\1\u0242\2\71\3\uffff\1\71\1\uffff\1\71\2\uffff\5\71\1\u024c\2\71\1\uffff\1\u024f\1\71\2\uffff\1\u0251\3\71\1\u0255\1\71\1\u0257\1\u0258\1\71\1\uffff\2\71\1\uffff\1\u025c\1\uffff\1\u025d\1\u025e\1\u025f\1\uffff\1\71\2\uffff\1\71\1\u0262\1\u0263\4\uffff\1\u0264\1\u0265\4\uffff";
+        "\1\uffff\2\76\2\uffff\20\76\1\174\1\177\5\uffff\1\u0087\3\uffff\1\u008d\1\u0091\1\u0093\1\u0095\1\u0097\1\u0099\1\u009b\1\u009d\1\u009f\1\u00a2\1\u00a4\10\76\2\u00b0\1\72\5\uffff\3\76\1\uffff\11\76\2\uffff\10\76\1\u00d2\1\76\1\u00d4\36\76\1\u00f9\1\76\1\u00fc\3\76\14\uffff\1\u0103\26\uffff\1\u0105\1\uffff\1\u0107\6\uffff\11\76\1\uffff\1\u00b0\4\uffff\1\76\1\u0113\17\76\1\u0125\14\76\1\uffff\1\76\1\uffff\10\76\1\u013e\6\76\1\u0145\15\76\1\u0153\6\76\1\uffff\2\76\1\uffff\1\u015e\4\76\6\uffff\2\76\1\u0165\1\u0166\7\76\1\uffff\15\76\1\u017c\3\76\1\uffff\3\76\1\u0185\3\76\1\u0189\6\76\1\u0190\2\76\1\u0193\3\76\1\u0198\1\76\1\u019a\1\uffff\5\76\1\u01a2\1\uffff\1\76\1\u01a5\3\76\1\u01a9\2\76\1\u01ac\1\u01ad\3\76\1\uffff\12\76\1\uffff\1\u01bb\4\76\1\u01c0\2\uffff\11\76\1\u01ca\11\76\1\u01d4\1\76\1\uffff\1\u01d7\1\uffff\5\76\1\u01dd\1\uffff\1\u01de\2\76\1\uffff\1\u01e1\3\76\1\u01e5\1\76\1\uffff\2\76\1\uffff\4\76\1\uffff\1\76\1\uffff\5\76\1\u01f3\1\u01f4\1\uffff\2\76\1\uffff\1\u01fa\2\76\1\uffff\1\u01fd\1\76\2\uffff\4\76\1\u0204\7\76\1\u020d\1\uffff\3\76\1\u0211\1\uffff\2\76\1\u0214\6\76\1\uffff\2\76\1\u021d\3\76\1\u0221\1\76\1\u0223\1\uffff\1\76\2\uffff\3\76\1\u022a\1\76\2\uffff\1\u022c\1\76\1\uffff\3\76\1\uffff\2\76\1\u0233\2\76\1\u0236\6\76\1\u023d\2\uffff\1\u023e\1\u023f\3\76\1\uffff\1\u0243\1\76\1\uffff\6\76\1\uffff\2\76\1\u024e\1\76\1\u0250\1\76\1\u0252\2\uffff\1\u0255\1\76\1\u0257\1\uffff\2\76\1\uffff\1\76\1\uffff\1\76\1\u025c\1\u025d\3\76\1\uffff\2\76\1\u0263\1\uffff\1\u0264\1\uffff\1\76\2\uffff\3\76\1\uffff\1\u0269\1\uffff\3\76\1\u026d\2\76\1\uffff\1\u0270\1\u0271\1\uffff\6\76\3\uffff\3\76\1\uffff\2\76\1\u027d\1\76\1\u027f\1\u0280\3\76\2\uffff\1\76\1\uffff\1\76\4\uffff\1\u0286\1\uffff\1\u0288\1\u0289\1\u028a\1\76\2\uffff\5\76\2\uffff\2\76\1\u0293\1\u0294\1\uffff\1\76\1\u0296\1\76\1\uffff\1\u0298\1\u0299\2\uffff\13\76\1\uffff\1\76\2\uffff\1\u02a6\1\u02a7\2\76\1\u02aa\6\uffff\7\76\2\uffff\1\76\1\uffff\1\76\2\uffff\1\u02b4\1\76\1\u02b6\1\u02b7\6\76\1\u02be\1\76\2\uffff\1\u02c0\1\76\1\uffff\1\76\1\u02c3\1\76\1\u02c5\1\u02c6\1\76\1\u02c8\2\76\1\uffff\1\76\2\uffff\2\76\1\u02ce\3\76\1\uffff\1\u02d2\1\uffff\1\u02d3\1\76\1\uffff\1\76\2\uffff\1\76\1\uffff\1\u02d7\1\u02d8\1\u02d9\2\76\1\uffff\2\76\1\u02de\2\uffff\1\u02df\1\u02e0\1\u02e1\3\uffff\1\u02e2\3\76\5\uffff\1\u02e6\1\u02e7\1\76\2\uffff\1\u02e9\1\uffff";
     static final String DFA21_eofS =
-        "\u0266\uffff";
+        "\u02ea\uffff";
     static final String DFA21_minS =
-        "\1\0\1\141\2\uffff\2\141\1\154\1\145\1\150\1\160\2\141\1\157\5\141\1\146\1\145\1\55\1\52\1\145\5\uffff\1\75\3\uffff\1\53\1\52\1\75\1\76\1\75\1\174\1\46\1\75\2\56\1\72\1\145\1\141\1\165\2\60\1\44\5\uffff\1\143\1\145\1\162\3\uffff\1\141\1\162\1\154\1\163\1\146\1\44\1\164\1\44\1\147\1\167\1\151\1\147\3\141\1\160\1\156\1\157\1\165\1\147\1\141\1\160\1\162\1\151\1\124\1\162\1\142\1\156\1\142\2\147\1\157\1\154\1\162\1\154\1\160\1\164\2\163\1\154\1\156\1\160\1\141\1\165\2\163\1\160\1\44\1\156\7\uffff\1\44\1\167\1\154\1\162\5\uffff\1\75\26\uffff\1\75\1\uffff\1\74\6\uffff\1\151\1\163\1\154\1\164\1\uffff\1\60\4\uffff\1\153\1\44\1\141\1\162\1\163\1\154\1\145\2\143\1\141\1\165\1\uffff\1\141\1\uffff\1\155\1\154\1\141\1\163\1\145\1\155\1\144\1\162\1\160\1\164\1\143\1\145\1\143\1\167\1\164\1\154\1\147\1\145\1\156\1\145\1\44\1\145\1\157\1\156\1\157\1\44\1\142\3\145\1\141\1\155\1\154\1\141\1\44\1\163\2\164\2\145\2\164\2\151\1\44\1\144\1\147\1\124\1\145\1\151\1\157\1\uffff\1\154\1\144\1\165\1\uffff\1\44\1\154\1\155\6\uffff\1\154\1\164\2\44\1\163\1\141\1\uffff\1\155\1\164\1\157\1\141\1\44\1\150\1\147\1\162\1\165\1\164\1\155\1\44\1\141\1\145\1\171\1\44\1\143\2\145\1\115\1\164\1\160\1\143\1\153\1\151\1\162\1\150\1\44\1\150\1\142\1\154\1\144\1\44\1\163\1\44\1\uffff\1\157\1\167\1\147\1\44\1\uffff\1\154\1\44\1\154\1\156\1\162\1\44\1\132\1\154\1\uffff\1\145\1\44\1\171\1\156\2\44\1\151\2\155\1\uffff\1\151\1\145\1\151\1\162\1\144\1\141\1\162\1\157\1\145\1\162\1\uffff\1\44\1\141\1\150\1\145\1\44\2\uffff\1\151\1\147\1\151\1\44\1\162\1\160\1\uffff\1\44\1\157\1\151\1\154\1\44\1\141\1\uffff\1\164\1\44\1\163\1\uffff\1\164\1\156\1\144\1\141\1\114\1\145\1\150\1\145\1\143\1\44\1\162\1\uffff\1\44\1\141\1\151\1\145\1\114\1\uffff\1\160\1\uffff\1\146\2\44\1\uffff\1\145\1\162\1\uffff\1\44\1\144\1\151\1\uffff\1\145\1\144\1\154\1\44\1\uffff\1\44\1\144\2\uffff\1\160\2\165\1\145\1\44\1\143\1\166\1\145\1\156\2\164\1\162\1\156\1\uffff\1\154\2\44\1\uffff\1\144\1\145\1\144\1\uffff\1\44\1\163\1\uffff\1\162\1\142\1\164\1\uffff\1\162\1\145\1\uffff\1\44\1\102\1\164\1\44\1\162\1\141\1\144\1\44\1\144\1\44\1\uffff\1\157\1\145\1\uffff\1\162\1\160\1\44\1\151\1\141\1\44\2\uffff\2\44\1\uffff\1\44\1\164\1\162\1\44\1\171\2\uffff\1\151\1\163\1\154\2\155\1\156\1\uffff\1\153\1\141\1\44\1\143\2\44\1\163\2\44\1\145\2\uffff\1\145\2\44\1\uffff\1\151\1\171\1\145\1\44\1\164\1\144\1\uffff\1\171\1\143\1\uffff\1\153\1\142\1\44\1\uffff\1\44\1\uffff\1\156\2\uffff\2\44\1\uffff\1\156\1\162\4\uffff\1\150\1\157\1\uffff\1\44\1\157\1\44\1\151\2\44\1\164\1\163\1\154\2\uffff\1\145\2\uffff\1\44\4\uffff\1\44\2\uffff\1\142\1\44\1\144\1\uffff\2\44\1\111\1\157\2\145\2\uffff\1\151\2\uffff\2\145\1\155\1\44\1\uffff\1\156\1\uffff\1\145\2\uffff\2\44\1\163\1\157\3\uffff\1\154\1\uffff\1\102\2\uffff\1\144\1\154\1\162\1\154\1\172\1\44\1\156\1\151\1\uffff\1\44\1\162\2\uffff\1\44\1\146\1\145\1\171\1\44\1\157\2\44\1\145\1\uffff\1\164\1\143\1\uffff\1\44\1\uffff\3\44\1\uffff\1\162\2\uffff\1\144\2\44\4\uffff\2\44\4\uffff";
+        "\1\0\2\141\2\uffff\3\141\1\154\1\145\1\160\2\141\1\157\4\141\1\146\2\145\1\55\1\52\5\uffff\1\75\3\uffff\1\53\1\52\1\75\1\76\1\75\1\174\1\46\1\75\2\56\1\72\1\145\1\141\1\165\1\145\1\162\1\145\1\151\1\157\2\60\1\44\5\uffff\1\143\1\145\1\162\1\uffff\1\147\3\141\1\160\1\156\1\157\1\165\1\156\2\uffff\1\156\2\154\1\141\1\162\1\154\1\163\1\146\1\44\1\164\1\44\1\151\1\167\1\151\1\147\1\141\1\170\1\143\1\160\1\162\1\151\1\124\1\162\1\142\1\156\1\142\2\147\1\157\1\160\1\164\2\163\1\154\1\156\1\160\1\141\1\165\2\163\1\160\1\44\1\114\1\44\1\167\1\154\1\156\14\uffff\1\75\26\uffff\1\75\1\uffff\1\74\6\uffff\1\151\1\163\1\154\1\164\1\146\1\151\1\162\1\155\1\165\1\uffff\1\60\4\uffff\1\153\1\44\1\141\1\151\1\145\1\155\1\144\1\162\1\160\1\164\1\143\1\145\1\143\1\167\1\164\1\163\1\164\1\44\1\154\1\141\1\163\1\164\1\162\1\163\1\154\1\145\2\143\1\141\1\165\1\uffff\1\141\1\uffff\1\155\1\141\1\163\1\154\1\147\1\145\1\156\1\145\1\44\1\164\1\153\1\145\1\157\1\156\1\157\1\44\1\142\3\145\1\141\1\155\1\164\2\145\2\164\2\151\1\44\1\144\1\147\1\124\1\145\1\151\1\157\1\uffff\1\145\1\155\1\uffff\1\44\2\154\1\144\1\165\6\uffff\1\154\1\164\2\44\1\163\2\141\1\144\1\145\1\162\1\141\1\uffff\1\155\1\145\1\143\2\145\1\115\1\164\1\160\1\143\1\153\1\151\1\162\1\150\1\44\1\150\1\55\1\106\1\uffff\1\132\1\154\1\145\1\44\1\164\1\157\1\141\1\44\1\150\1\147\1\162\1\165\1\164\1\155\1\44\1\141\1\171\1\44\1\142\1\154\1\144\1\44\1\163\1\44\1\uffff\1\103\1\101\1\157\1\167\1\147\1\44\1\uffff\1\154\1\44\1\154\1\156\1\162\1\44\1\171\1\156\2\44\1\151\2\155\1\uffff\1\151\1\145\1\151\1\162\1\144\1\141\1\162\1\147\1\141\1\150\1\uffff\1\44\1\157\1\145\1\162\1\145\1\44\2\uffff\1\151\1\165\1\154\1\141\1\163\1\151\1\147\1\151\1\163\1\44\1\164\1\156\1\144\1\141\1\114\1\145\1\150\1\145\1\143\1\44\1\162\1\uffff\1\44\1\uffff\1\141\1\151\1\145\1\144\1\154\1\44\1\uffff\1\44\1\162\1\160\1\uffff\1\44\1\157\1\151\1\154\1\44\1\141\1\uffff\1\164\1\163\1\uffff\1\141\1\151\1\145\1\114\1\uffff\1\160\1\uffff\1\157\1\156\1\157\1\145\1\146\2\44\1\uffff\1\145\1\162\1\uffff\1\44\1\144\1\151\1\uffff\1\44\1\144\2\uffff\1\160\2\165\1\145\1\44\1\143\1\166\1\145\1\156\1\164\1\145\1\154\1\44\1\uffff\1\164\1\162\1\156\1\44\1\uffff\1\144\1\154\1\44\1\156\1\40\2\145\1\144\1\103\1\uffff\1\102\1\164\1\44\1\162\1\141\1\144\1\44\1\144\1\44\1\uffff\1\157\1\145\1\uffff\1\155\1\172\1\162\1\44\1\171\2\uffff\1\44\1\163\1\uffff\1\162\1\142\1\164\1\uffff\1\162\1\145\1\44\1\162\1\160\1\44\1\151\1\141\1\154\1\147\1\156\1\170\1\44\2\uffff\2\44\1\156\1\157\1\145\1\uffff\1\44\1\164\1\uffff\1\151\1\163\1\154\2\155\1\156\1\uffff\1\153\1\141\1\44\1\143\1\44\1\156\1\44\1\145\1\uffff\1\44\1\163\1\44\1\uffff\1\145\1\164\1\uffff\1\141\1\uffff\1\162\2\44\1\157\1\171\1\143\1\uffff\1\153\1\142\1\44\1\uffff\1\44\1\uffff\1\156\2\uffff\1\151\1\145\1\157\1\uffff\1\44\1\uffff\1\151\1\171\1\145\1\44\1\164\1\144\1\uffff\2\44\1\uffff\1\156\1\162\1\157\1\154\2\164\3\uffff\1\147\1\156\1\170\1\uffff\1\150\1\157\1\44\1\151\2\44\1\164\1\163\1\154\2\uffff\1\145\1\uffff\1\144\4\uffff\1\44\1\uffff\3\44\1\40\2\uffff\1\154\1\111\1\157\2\145\2\uffff\1\151\1\154\2\44\1\uffff\1\142\1\44\1\144\1\uffff\2\44\2\uffff\2\145\1\162\1\145\1\123\1\103\1\154\2\164\1\155\1\156\1\uffff\1\145\2\uffff\2\44\1\163\1\157\1\44\6\uffff\1\157\1\144\1\154\1\162\1\154\1\172\1\171\2\uffff\1\154\1\uffff\1\102\2\uffff\1\44\1\156\2\44\1\151\1\157\1\145\1\123\1\103\1\151\1\44\1\162\2\uffff\1\44\1\146\1\uffff\1\162\1\44\1\157\2\44\1\145\1\44\1\145\1\171\1\uffff\1\164\2\uffff\1\172\1\154\1\44\1\151\1\157\1\143\1\uffff\1\44\1\uffff\1\44\1\163\1\uffff\1\162\2\uffff\1\144\1\uffff\3\44\1\145\1\157\1\uffff\1\172\1\154\1\44\2\uffff\3\44\3\uffff\1\44\1\162\1\145\1\157\5\uffff\2\44\1\162\2\uffff\1\44\1\uffff";
     static final String DFA21_maxS =
-        "\1\uffff\1\171\2\uffff\1\165\1\157\1\170\2\171\1\163\1\165\3\157\1\170\1\165\1\162\1\141\1\156\1\145\1\76\1\75\1\165\5\uffff\1\76\3\uffff\3\75\1\76\1\75\1\174\1\46\1\75\1\56\2\72\1\150\1\141\1\165\1\170\1\154\1\172\5\uffff\1\143\1\145\1\162\3\uffff\1\141\1\162\1\154\1\164\1\163\1\172\1\164\1\172\1\151\1\167\1\151\1\154\1\157\1\151\1\141\1\160\1\156\1\157\1\165\1\157\1\171\1\160\1\162\1\151\1\124\1\162\1\142\1\156\1\142\2\147\1\157\1\156\1\162\1\163\1\160\1\164\2\163\1\154\1\156\1\170\1\141\1\165\1\163\1\164\1\160\1\172\1\164\7\uffff\1\172\1\167\1\154\1\162\5\uffff\1\75\26\uffff\1\75\1\uffff\1\74\6\uffff\1\151\1\163\1\162\1\164\1\uffff\1\154\4\uffff\1\153\1\172\1\141\1\162\1\163\1\154\2\145\1\143\1\141\1\165\1\uffff\1\145\1\uffff\1\155\1\154\1\141\1\163\1\145\1\155\1\144\1\167\1\160\2\164\1\145\1\143\1\167\1\164\1\154\1\147\2\156\1\145\1\172\1\145\1\157\1\156\1\157\1\172\1\142\3\145\1\141\1\155\1\154\1\141\1\172\1\163\2\164\2\145\2\164\2\151\1\172\1\144\1\147\1\124\1\145\1\164\1\157\1\uffff\1\154\1\144\1\165\1\uffff\1\172\1\154\1\164\6\uffff\1\154\1\164\2\172\1\163\1\141\1\uffff\1\155\1\164\1\157\1\141\1\172\1\150\1\147\1\162\1\165\1\164\1\155\1\172\1\141\1\145\1\171\1\172\1\143\2\145\1\115\1\164\1\160\1\143\1\153\1\151\1\162\1\150\1\172\1\150\1\164\1\154\1\144\1\172\1\163\1\172\1\uffff\1\157\1\167\1\147\1\172\1\uffff\1\154\1\172\1\154\1\156\1\162\1\172\1\145\1\154\1\uffff\1\145\1\172\1\171\1\156\2\172\1\151\2\155\1\uffff\1\151\1\145\1\151\1\162\1\144\1\141\1\162\1\157\1\145\1\162\1\uffff\1\172\1\141\1\150\1\145\1\172\2\uffff\1\151\1\147\1\151\1\172\1\162\1\160\1\uffff\1\172\1\157\1\151\1\154\1\172\1\141\1\uffff\1\164\1\172\1\163\1\uffff\1\164\1\156\1\144\1\141\1\114\1\145\1\150\1\145\1\143\1\172\1\162\1\uffff\1\172\1\141\1\151\1\145\1\114\1\uffff\1\160\1\uffff\1\146\2\172\1\uffff\1\145\1\162\1\uffff\1\172\1\144\1\151\1\uffff\1\145\1\144\1\154\1\172\1\uffff\1\172\1\163\2\uffff\1\160\2\165\1\145\1\172\1\143\1\166\1\145\1\156\2\164\1\162\1\156\1\uffff\1\154\2\172\1\uffff\1\144\1\145\1\144\1\uffff\1\172\1\163\1\uffff\1\162\1\142\1\164\1\uffff\1\162\1\145\1\uffff\1\172\1\102\1\164\1\172\1\162\1\141\1\144\1\172\1\144\1\172\1\uffff\1\157\1\167\1\uffff\1\162\1\160\1\172\1\151\1\141\1\172\2\uffff\2\172\1\uffff\1\172\1\164\1\162\1\172\1\171\2\uffff\1\151\1\163\1\154\2\155\1\156\1\uffff\1\153\1\141\1\172\1\143\2\172\1\163\2\172\1\167\2\uffff\1\145\2\172\1\uffff\1\151\1\171\1\145\1\172\1\164\1\144\1\uffff\1\171\1\143\1\uffff\1\153\1\142\1\172\1\uffff\1\172\1\uffff\1\156\2\uffff\2\172\1\uffff\1\156\1\162\4\uffff\1\150\1\157\1\uffff\1\172\1\157\1\172\1\151\2\172\1\164\1\163\1\154\2\uffff\1\145\2\uffff\1\172\4\uffff\1\172\2\uffff\1\142\1\172\1\144\1\uffff\2\172\1\111\1\157\2\145\2\uffff\1\151\2\uffff\2\145\1\155\1\172\1\uffff\1\156\1\uffff\1\145\2\uffff\2\172\1\163\1\157\3\uffff\1\154\1\uffff\1\102\2\uffff\1\144\1\154\1\162\1\154\2\172\1\156\1\151\1\uffff\1\172\1\162\2\uffff\1\172\1\146\1\145\1\171\1\172\1\157\2\172\1\145\1\uffff\1\164\1\143\1\uffff\1\172\1\uffff\3\172\1\uffff\1\162\2\uffff\1\144\2\172\4\uffff\2\172\4\uffff";
+        "\1\uffff\2\171\2\uffff\1\157\1\165\1\157\1\170\1\171\1\163\1\165\2\157\1\170\1\165\1\162\1\141\1\156\1\165\1\145\1\76\1\75\5\uffff\1\76\3\uffff\3\75\1\76\1\75\1\174\1\46\1\75\1\56\2\72\1\150\1\141\1\165\1\145\1\162\1\145\1\151\1\157\1\170\1\154\1\172\5\uffff\1\143\1\145\1\162\1\uffff\1\162\1\157\1\151\1\141\1\160\1\156\1\157\1\165\1\156\2\uffff\1\162\1\156\1\163\1\141\1\162\1\154\1\164\1\163\1\172\1\164\1\172\1\151\1\167\1\151\1\157\1\171\1\170\1\143\1\160\1\162\1\151\1\124\1\162\1\142\1\156\1\142\2\147\1\157\1\160\1\164\2\163\1\154\1\156\1\170\1\141\1\165\1\163\1\164\1\160\1\172\1\162\1\172\1\167\1\154\1\164\14\uffff\1\75\26\uffff\1\75\1\uffff\1\74\6\uffff\1\151\1\163\1\162\1\164\1\146\1\151\1\162\1\155\1\165\1\uffff\1\154\4\uffff\1\153\1\172\1\141\1\151\1\145\1\155\1\144\1\167\1\160\2\164\1\145\1\143\1\167\1\164\1\163\1\164\1\172\1\154\1\141\1\163\1\164\1\162\1\163\1\154\2\145\1\143\1\141\1\165\1\uffff\1\145\1\uffff\1\155\1\141\1\163\1\154\1\147\2\156\1\145\1\172\1\164\1\153\1\145\1\157\1\156\1\157\1\172\1\142\3\145\1\141\1\155\1\164\2\145\2\164\2\151\1\172\1\144\1\147\1\124\1\145\1\164\1\157\1\uffff\1\145\1\164\1\uffff\1\172\2\154\1\144\1\165\6\uffff\1\154\1\164\2\172\1\163\2\141\1\144\1\145\1\162\1\141\1\uffff\1\155\1\146\1\143\2\145\1\115\1\164\1\160\1\143\1\153\1\151\1\162\1\150\1\172\1\150\1\55\1\123\1\uffff\1\145\1\154\1\145\1\172\1\164\1\157\1\141\1\172\1\150\1\147\1\162\1\165\1\164\1\155\1\172\1\141\1\171\1\172\1\164\1\154\1\144\1\172\1\163\1\172\1\uffff\1\103\1\124\1\157\1\167\1\147\1\172\1\uffff\1\154\1\172\1\154\1\156\1\162\1\172\1\171\1\156\2\172\1\151\2\155\1\uffff\1\151\1\145\1\151\1\162\1\144\1\141\1\162\1\147\1\141\1\150\1\uffff\1\172\1\157\1\145\1\162\1\145\1\172\2\uffff\1\151\1\165\1\154\1\141\1\163\1\151\1\147\1\151\1\163\1\172\1\164\1\156\1\144\1\141\1\114\1\145\1\150\1\145\1\143\1\172\1\162\1\uffff\1\172\1\uffff\1\141\1\151\1\145\1\144\1\154\1\172\1\uffff\1\172\1\162\1\160\1\uffff\1\172\1\157\1\151\1\154\1\172\1\141\1\uffff\1\164\1\163\1\uffff\1\141\1\151\1\145\1\114\1\uffff\1\160\1\uffff\1\157\1\156\1\157\1\145\1\146\2\172\1\uffff\1\145\1\162\1\uffff\1\172\1\144\1\151\1\uffff\1\172\1\163\2\uffff\1\160\2\165\1\145\1\172\1\143\1\166\1\145\1\156\1\164\1\145\1\154\1\172\1\uffff\1\164\1\162\1\156\1\172\1\uffff\1\144\1\154\1\172\1\156\1\40\2\145\1\144\1\103\1\uffff\1\102\1\164\1\172\1\162\1\141\1\144\1\172\1\144\1\172\1\uffff\1\157\1\167\1\uffff\1\155\1\172\1\162\1\172\1\171\2\uffff\1\172\1\163\1\uffff\1\162\1\142\1\164\1\uffff\1\162\1\145\1\172\1\162\1\160\1\172\1\151\1\141\1\154\1\147\1\156\1\170\1\172\2\uffff\2\172\1\156\1\157\1\145\1\uffff\1\172\1\164\1\uffff\1\151\1\163\1\154\2\155\1\156\1\uffff\1\153\1\141\1\172\1\143\1\172\1\156\1\172\1\167\1\uffff\1\172\1\163\1\172\1\uffff\1\145\1\164\1\uffff\1\141\1\uffff\1\162\2\172\1\157\1\171\1\143\1\uffff\1\153\1\142\1\172\1\uffff\1\172\1\uffff\1\156\2\uffff\1\151\1\145\1\157\1\uffff\1\172\1\uffff\1\151\1\171\1\145\1\172\1\164\1\144\1\uffff\2\172\1\uffff\1\156\1\162\1\157\1\154\2\164\3\uffff\1\147\1\156\1\170\1\uffff\1\150\1\157\1\172\1\151\2\172\1\164\1\163\1\154\2\uffff\1\145\1\uffff\1\144\4\uffff\1\172\1\uffff\3\172\1\40\2\uffff\1\154\1\111\1\157\2\145\2\uffff\1\151\1\154\2\172\1\uffff\1\142\1\172\1\144\1\uffff\2\172\2\uffff\2\145\1\162\1\145\1\123\1\103\1\154\2\164\1\155\1\156\1\uffff\1\145\2\uffff\2\172\1\163\1\157\1\172\6\uffff\1\157\1\144\1\154\1\162\1\154\1\172\1\171\2\uffff\1\154\1\uffff\1\102\2\uffff\1\172\1\156\2\172\1\151\1\157\1\145\1\123\1\103\1\151\1\172\1\162\2\uffff\1\172\1\146\1\uffff\1\162\1\172\1\157\2\172\1\145\1\172\1\145\1\171\1\uffff\1\164\2\uffff\1\172\1\154\1\172\1\151\1\157\1\143\1\uffff\1\172\1\uffff\1\172\1\163\1\uffff\1\162\2\uffff\1\144\1\uffff\3\172\1\145\1\157\1\uffff\1\172\1\154\1\172\2\uffff\3\172\3\uffff\1\172\1\162\1\145\1\157\5\uffff\2\172\1\162\2\uffff\1\172\1\uffff";
     static final String DFA21_acceptS =
-        "\2\uffff\1\2\1\3\23\uffff\1\71\1\72\1\73\1\74\1\75\1\uffff\1\77\1\100\1\101\21\uffff\1\u0092\2\u0093\1\u0096\1\u0097\3\uffff\1\u0092\1\2\1\3\61\uffff\1\103\1\121\1\135\1\63\1\104\1\130\1\67\4\uffff\1\71\1\72\1\73\1\74\1\75\1\uffff\1\124\1\76\1\77\1\100\1\101\1\102\1\134\1\127\1\105\1\u0094\1\u0095\1\131\1\106\1\132\1\125\1\107\1\111\1\110\1\112\1\141\1\113\1\173\1\uffff\1\133\1\uffff\1\136\1\126\1\140\1\172\1\137\1\145\4\uffff\1\u008f\1\uffff\1\u0090\1\u0091\1\u0093\1\u0096\13\uffff\1\152\1\uffff\1\6\63\uffff\1\142\3\uffff\1\70\3\uffff\1\116\1\114\1\117\1\115\1\122\1\123\6\uffff\1\27\43\uffff\1\166\4\uffff\1\12\10\uffff\1\150\11\uffff\1\45\12\uffff\1\157\5\uffff\1\153\1\154\6\uffff\1\147\6\uffff\1\u008c\3\uffff\1\56\13\uffff\1\u0080\5\uffff\1\44\1\uffff\1\161\3\uffff\1\47\2\uffff\1\17\3\uffff\1\23\4\uffff\1\u0081\2\uffff\1\143\1\u0084\15\uffff\1\162\3\uffff\1\u0088\3\uffff\1\4\2\uffff\1\171\3\uffff\1\31\2\uffff\1\61\12\uffff\1\156\2\uffff\1\u0086\6\uffff\1\164\1\11\2\uffff\1\37\5\uffff\1\160\1\30\6\uffff\1\36\12\uffff\1\u0082\1\151\3\uffff\1\22\6\uffff\1\54\2\uffff\1\13\3\uffff\1\144\1\uffff\1\65\1\uffff\1\u0085\1\u0087\2\uffff\1\52\2\uffff\1\163\1\32\1\u008b\1\51\2\uffff\1\26\11\uffff\1\174\1\55\1\uffff\1\64\1\53\1\uffff\1\165\1\177\1\u0083\1\u0089\1\uffff\1\1\1\u008e\3\uffff\1\146\6\uffff\1\15\1\16\1\uffff\1\10\1\24\4\uffff\1\167\1\uffff\1\155\1\uffff\1\41\1\42\4\uffff\1\57\1\176\1\175\1\uffff\1\u008a\1\uffff\1\50\1\14\10\uffff\1\25\2\uffff\1\34\1\40\11\uffff\1\21\2\uffff\1\66\1\uffff\1\43\3\uffff\1\7\1\uffff\1\20\1\60\3\uffff\1\33\1\120\1\46\1\5\2\uffff\1\35\1\u008d\1\62\1\170";
+        "\3\uffff\1\3\1\4\22\uffff\1\103\1\104\1\105\1\106\1\107\1\uffff\1\111\1\112\1\113\26\uffff\1\u00a3\2\u00a4\1\u00a7\1\u00a8\3\uffff\1\u00a3\11\uffff\1\3\1\4\57\uffff\1\115\1\133\1\147\1\75\1\116\1\142\1\101\1\103\1\104\1\105\1\106\1\107\1\uffff\1\136\1\110\1\111\1\112\1\113\1\114\1\146\1\141\1\117\1\u00a5\1\u00a6\1\143\1\120\1\144\1\137\1\121\1\123\1\122\1\124\1\153\1\125\1\u0085\1\uffff\1\145\1\uffff\1\150\1\140\1\152\1\u0084\1\151\1\157\11\uffff\1\u00a0\1\uffff\1\u00a1\1\u00a2\1\u00a4\1\u00a7\36\uffff\1\164\1\uffff\1\10\44\uffff\1\154\2\uffff\1\102\5\uffff\1\130\1\126\1\131\1\127\1\134\1\135\13\uffff\1\31\21\uffff\1\162\30\uffff\1\u0080\6\uffff\1\14\15\uffff\1\47\12\uffff\1\171\6\uffff\1\165\1\166\25\uffff\1\u008a\1\uffff\1\u009f\6\uffff\1\u008b\3\uffff\1\161\6\uffff\1\u0096\2\uffff\1\63\4\uffff\1\46\1\uffff\1\173\7\uffff\1\51\2\uffff\1\21\3\uffff\1\25\2\uffff\1\155\1\u008e\15\uffff\1\174\4\uffff\1\u0092\11\uffff\1\u009e\11\uffff\1\170\2\uffff\1\u0090\5\uffff\1\172\1\6\2\uffff\1\u0083\3\uffff\1\33\15\uffff\1\176\1\13\5\uffff\1\41\2\uffff\1\32\6\uffff\1\40\10\uffff\1\u008c\3\uffff\1\163\2\uffff\1\u009a\1\uffff\1\u009c\6\uffff\1\15\3\uffff\1\156\1\uffff\1\77\1\uffff\1\u008f\1\u0091\3\uffff\1\30\1\uffff\1\24\6\uffff\1\61\2\uffff\1\55\6\uffff\1\175\1\34\1\u0095\3\uffff\1\53\11\uffff\1\u0086\1\62\1\uffff\1\76\1\uffff\1\u0089\1\u008d\1\u0093\1\56\1\uffff\1\177\4\uffff\1\1\1\u0098\5\uffff\1\17\1\20\4\uffff\1\u0081\3\uffff\1\160\2\uffff\1\12\1\26\13\uffff\1\167\1\uffff\1\43\1\44\5\uffff\1\64\1\u0088\1\u0087\1\u0099\1\u009b\1\u009d\7\uffff\1\57\1\27\1\uffff\1\u0094\1\uffff\1\52\1\16\14\uffff\1\36\1\42\2\uffff\1\54\11\uffff\1\23\1\uffff\1\60\1\71\6\uffff\1\100\1\uffff\1\45\2\uffff\1\11\1\uffff\1\22\1\65\1\uffff\1\5\5\uffff\1\66\3\uffff\1\35\1\132\3\uffff\1\50\1\7\1\37\4\uffff\1\u0097\1\2\1\74\1\u0082\1\72\3\uffff\1\73\1\67\1\uffff\1\70";
     static final String DFA21_specialS =
-        "\1\0\u0265\uffff}>";
+        "\1\0\u02e9\uffff}>";
     static final String[] DFA21_transitionS = {
-            "\11\65\2\64\2\65\1\64\22\65\1\64\1\47\1\62\1\35\1\61\1\42\1\46\1\63\1\31\1\33\1\25\1\40\1\32\1\24\1\50\1\41\1\56\11\57\1\52\1\27\1\43\1\34\1\44\1\51\1\30\32\61\1\36\1\65\1\37\1\60\1\61\1\65\1\6\1\12\1\4\1\5\1\16\1\15\1\20\1\21\1\22\2\61\1\13\1\17\1\26\1\55\1\1\1\61\1\23\1\7\1\10\1\11\1\54\1\53\2\61\1\14\1\2\1\45\1\3\uff82\65",
-            "\1\66\7\uffff\1\67\17\uffff\1\70",
+            "\11\72\2\71\2\72\1\71\22\72\1\71\1\47\1\67\1\35\1\66\1\42\1\46\1\70\1\31\1\33\1\26\1\40\1\32\1\25\1\50\1\41\1\63\11\64\1\52\1\27\1\43\1\34\1\44\1\51\1\30\1\57\1\66\1\62\1\56\17\66\1\61\1\66\1\60\4\66\1\36\1\72\1\37\1\65\1\66\1\72\1\10\1\13\1\6\1\7\1\16\1\5\1\20\1\21\1\22\2\66\1\14\1\17\1\23\1\55\1\1\1\66\1\24\1\2\1\11\1\12\1\54\1\53\2\66\1\15\1\3\1\45\1\4\uff82\72",
+            "\1\73\7\uffff\1\74\17\uffff\1\75",
+            "\1\107\3\uffff\1\77\2\uffff\1\100\3\uffff\1\105\2\uffff\1\106\4\uffff\1\102\1\103\1\uffff\1\101\1\uffff\1\104",
             "",
             "",
-            "\1\77\6\uffff\1\74\6\uffff\1\76\5\uffff\1\75",
-            "\1\102\3\uffff\1\100\11\uffff\1\101",
-            "\1\105\1\uffff\1\104\4\uffff\1\103\4\uffff\1\106",
-            "\1\107\2\uffff\1\110\3\uffff\1\115\2\uffff\1\116\4\uffff\1\112\1\113\1\uffff\1\111\1\uffff\1\114",
-            "\1\122\6\uffff\1\117\2\uffff\1\120\6\uffff\1\121",
-            "\1\124\2\uffff\1\123",
-            "\1\125\23\uffff\1\126",
-            "\1\130\3\uffff\1\131\3\uffff\1\127\5\uffff\1\132",
-            "\1\133",
-            "\1\136\7\uffff\1\134\5\uffff\1\135",
-            "\1\142\12\uffff\1\141\1\137\12\uffff\1\140",
-            "\1\145\7\uffff\1\144\13\uffff\1\143",
-            "\1\147\20\uffff\1\146",
-            "\1\150",
-            "\1\153\6\uffff\1\152\1\151",
-            "\1\154",
-            "\1\157\17\uffff\1\155\1\156",
-            "\1\162\22\uffff\1\161",
-            "\1\165\11\uffff\1\167\3\uffff\1\164\1\uffff\1\166",
+            "\1\114\7\uffff\1\113\5\uffff\1\112",
+            "\1\120\6\uffff\1\115\6\uffff\1\117\5\uffff\1\116",
+            "\1\123\3\uffff\1\121\11\uffff\1\122",
+            "\1\126\1\uffff\1\125\4\uffff\1\124\4\uffff\1\127",
+            "\1\132\2\uffff\1\135\1\133\5\uffff\1\130\2\uffff\1\131\6\uffff\1\134",
+            "\1\137\2\uffff\1\136",
+            "\1\140\23\uffff\1\141",
+            "\1\143\3\uffff\1\144\3\uffff\1\142\5\uffff\1\145",
+            "\1\146",
+            "\1\152\12\uffff\1\151\1\147\12\uffff\1\150",
+            "\1\155\7\uffff\1\154\13\uffff\1\153",
+            "\1\157\20\uffff\1\156",
+            "\1\160",
+            "\1\163\6\uffff\1\162\1\161",
+            "\1\166\11\uffff\1\164\3\uffff\1\165\1\uffff\1\167",
+            "\1\170",
+            "\1\173\17\uffff\1\171\1\172",
+            "\1\176\22\uffff\1\175",
             "",
             "",
             "",
             "",
             "",
-            "\1\175\1\176",
+            "\1\u0085\1\u0086",
             "",
             "",
             "",
-            "\1\u0084\21\uffff\1\u0083",
-            "\1\u0087\4\uffff\1\u0088\15\uffff\1\u0086",
-            "\1\u008a",
-            "\1\u008c",
-            "\1\u008e",
-            "\1\u0090",
+            "\1\u008c\21\uffff\1\u008b",
+            "\1\u008f\4\uffff\1\u0090\15\uffff\1\u008e",
             "\1\u0092",
             "\1\u0094",
             "\1\u0096",
-            "\1\u0099\13\uffff\1\u0098",
-            "\1\u009b",
-            "\1\u009e\2\uffff\1\u009d",
-            "\1\u009f",
-            "\1\u00a0",
-            "\12\u00a2\10\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4\13\uffff\1\u00a1\6\uffff\1\u00a2\2\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4\13\uffff\1\u00a1",
-            "\12\u00a2\10\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4\22\uffff\1\u00a2\2\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4",
-            "\1\71\34\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
-            "",
-            "",
-            "",
-            "",
+            "\1\u0098",
+            "\1\u009a",
+            "\1\u009c",
+            "\1\u009e",
+            "\1\u00a1\13\uffff\1\u00a0",
+            "\1\u00a3",
+            "\1\u00a6\2\uffff\1\u00a5",
             "\1\u00a7",
             "\1\u00a8",
             "\1\u00a9",
-            "",
-            "",
-            "",
             "\1\u00aa",
             "\1\u00ab",
             "\1\u00ac",
-            "\1\u00ad\1\u00ae",
-            "\1\u00b0\14\uffff\1\u00af",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\15\71\1\u00b1\14\71",
-            "\1\u00b3",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u00b6\1\uffff\1\u00b5",
-            "\1\u00b7",
-            "\1\u00b8",
-            "\1\u00ba\4\uffff\1\u00b9",
-            "\1\u00bb\15\uffff\1\u00bc",
-            "\1\u00bd\7\uffff\1\u00be",
+            "\1\u00ad",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\13\uffff\1\u00ae\6\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\13\uffff\1\u00ae",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\22\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1",
+            "\1\76\34\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00b4",
+            "\1\u00b5",
+            "\1\u00b6",
+            "",
+            "\1\u00b9\4\uffff\1\u00b8\5\uffff\1\u00b7",
+            "\1\u00ba\15\uffff\1\u00bb",
+            "\1\u00bc\7\uffff\1\u00bd",
+            "\1\u00be",
             "\1\u00bf",
             "\1\u00c0",
             "\1\u00c1",
             "\1\u00c2",
             "\1\u00c3",
-            "\1\u00c5\7\uffff\1\u00c4",
-            "\1\u00c7\3\uffff\1\u00c6\17\uffff\1\u00c8\3\uffff\1\u00c9",
+            "",
+            "",
+            "\1\u00c4\3\uffff\1\u00c5",
+            "\1\u00c6\1\uffff\1\u00c7",
+            "\1\u00c8\6\uffff\1\u00c9",
             "\1\u00ca",
             "\1\u00cb",
             "\1\u00cc",
-            "\1\u00cd",
-            "\1\u00ce",
-            "\1\u00cf",
-            "\1\u00d0",
-            "\1\u00d1",
-            "\1\u00d2",
+            "\1\u00cd\1\u00ce",
+            "\1\u00d0\14\uffff\1\u00cf",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\15\76\1\u00d1\14\76",
             "\1\u00d3",
-            "\1\u00d4",
-            "\1\u00d5\1\uffff\1\u00d6",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00d5",
+            "\1\u00d6",
             "\1\u00d7",
-            "\1\u00d8\6\uffff\1\u00d9",
-            "\1\u00da",
-            "\1\u00db",
-            "\1\u00dc",
-            "\1\u00dd",
+            "\1\u00d9\7\uffff\1\u00d8",
+            "\1\u00db\3\uffff\1\u00da\17\uffff\1\u00dc\3\uffff\1\u00dd",
             "\1\u00de",
             "\1\u00df",
-            "\1\u00e1\7\uffff\1\u00e0",
+            "\1\u00e0",
+            "\1\u00e1",
             "\1\u00e2",
             "\1\u00e3",
             "\1\u00e4",
-            "\1\u00e6\1\u00e5",
+            "\1\u00e5",
+            "\1\u00e6",
             "\1\u00e7",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u00ea\1\uffff\1\u00e9\3\uffff\1\u00eb",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u00e8",
+            "\1\u00e9",
+            "\1\u00ea",
+            "\1\u00eb",
+            "\1\u00ec",
             "\1\u00ed",
             "\1\u00ee",
             "\1\u00ef",
-            "",
-            "",
-            "",
-            "",
-            "",
             "\1\u00f0",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00f2",
-            "",
+            "\1\u00f2\7\uffff\1\u00f1",
+            "\1\u00f3",
             "\1\u00f4",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00f6",
-            "\1\u00f7",
-            "\1\u00f9\5\uffff\1\u00f8",
-            "\1\u00fa",
-            "",
-            "\12\u00a2\10\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4\22\uffff\1\u00a2\2\uffff\1\u00a4\1\uffff\3\u00a4\5\uffff\1\u00a4",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00fb",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u00f5",
+            "\1\u00f7\1\u00f6",
+            "\1\u00f8",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00fa\45\uffff\1\u00fb",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u00fd",
             "\1\u00fe",
-            "\1\u00ff",
-            "\1\u0100",
-            "\1\u0101",
-            "\1\u0102\1\uffff\1\u0103",
+            "\1\u0100\1\uffff\1\u00ff\3\uffff\1\u0101",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0102",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u0104",
-            "\1\u0105",
+            "",
             "\1\u0106",
             "",
-            "\1\u0107\3\uffff\1\u0108",
             "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0108",
             "\1\u0109",
-            "\1\u010a",
-            "\1\u010b",
+            "\1\u010b\5\uffff\1\u010a",
             "\1\u010c",
             "\1\u010d",
             "\1\u010e",
             "\1\u010f",
-            "\1\u0111\4\uffff\1\u0110",
+            "\1\u0110",
+            "\1\u0111",
+            "",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\22\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1",
+            "",
+            "",
+            "",
+            "",
             "\1\u0112",
-            "\1\u0113",
-            "\1\u0114\20\uffff\1\u0115",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0114",
+            "\1\u0115",
             "\1\u0116",
             "\1\u0117",
             "\1\u0118",
-            "\1\u0119",
-            "\1\u011a",
+            "\1\u011a\4\uffff\1\u0119",
             "\1\u011b",
-            "\1\u011d\10\uffff\1\u011c",
-            "\1\u011e",
+            "\1\u011c",
+            "\1\u011d\20\uffff\1\u011e",
             "\1\u011f",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0120",
             "\1\u0121",
             "\1\u0122",
             "\1\u0123",
             "\1\u0124",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0126",
             "\1\u0127",
             "\1\u0128",
@@ -5288,185 +5759,170 @@
             "\1\u012b",
             "\1\u012c",
             "\1\u012d",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u012f",
+            "\1\u012e\1\uffff\1\u012f",
             "\1\u0130",
             "\1\u0131",
             "\1\u0132",
-            "\1\u0133",
-            "\1\u0134",
+            "",
+            "\1\u0133\3\uffff\1\u0134",
+            "",
             "\1\u0135",
             "\1\u0136",
             "\1\u0137",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0138",
             "\1\u0139",
-            "\1\u013a",
-            "\1\u013b",
+            "\1\u013b\10\uffff\1\u013a",
             "\1\u013c",
-            "\1\u013d\12\uffff\1\u013e",
+            "\1\u013d",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u013f",
-            "",
             "\1\u0140",
             "\1\u0141",
             "\1\u0142",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0143",
             "\1\u0144",
-            "\1\u0145\6\uffff\1\u0146",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0146",
             "\1\u0147",
             "\1\u0148",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0149",
+            "\1\u014a",
             "\1\u014b",
             "\1\u014c",
-            "",
             "\1\u014d",
             "\1\u014e",
             "\1\u014f",
             "\1\u0150",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0151",
             "\1\u0152",
-            "\1\u0153",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0154",
             "\1\u0155",
             "\1\u0156",
             "\1\u0157",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u0159",
+            "\1\u0158\12\uffff\1\u0159",
             "\1\u015a",
+            "",
             "\1\u015b",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u015d",
-            "\1\u015e",
+            "\1\u015c\6\uffff\1\u015d",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u015f",
             "\1\u0160",
             "\1\u0161",
             "\1\u0162",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u0163",
             "\1\u0164",
-            "\1\u0165",
-            "\1\u0166",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0167",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0168",
             "\1\u0169",
-            "\1\u016a\21\uffff\1\u016b",
+            "\1\u016a",
+            "\1\u016b",
             "\1\u016c",
             "\1\u016d",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u016f",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
+            "\1\u016e",
+            "\1\u016f\1\u0170",
             "\1\u0171",
             "\1\u0172",
             "\1\u0173",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
+            "\1\u0174",
             "\1\u0175",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\1\u0176\31\71",
+            "\1\u0176",
+            "\1\u0177",
             "\1\u0178",
             "\1\u0179",
             "\1\u017a",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u017c\12\uffff\1\u017d",
+            "\1\u017b",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u017d",
             "\1\u017e",
+            "\1\u017f\14\uffff\1\u0180",
             "",
-            "\1\u017f",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u0181",
-            "\1\u0182",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u0185",
+            "\1\u0181\12\uffff\1\u0182",
+            "\1\u0183",
+            "\1\u0184",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0186",
             "\1\u0187",
-            "",
             "\1\u0188",
-            "\1\u0189",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u018a",
             "\1\u018b",
             "\1\u018c",
             "\1\u018d",
             "\1\u018e",
             "\1\u018f",
-            "\1\u0190",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0191",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u0193",
-            "\1\u0194",
-            "\1\u0195",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
-            "",
+            "\1\u0192",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0194\21\uffff\1\u0195",
+            "\1\u0196",
             "\1\u0197",
-            "\1\u0198",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0199",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u019b",
-            "\1\u019c",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u019e",
+            "\1\u019b",
+            "\1\u019c\4\uffff\1\u019d\15\uffff\1\u019e",
             "\1\u019f",
             "\1\u01a0",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u01a2",
+            "\1\u01a1",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
             "\1\u01a3",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u01a5",
-            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\1\u01a4\31\76",
             "\1\u01a6",
             "\1\u01a7",
             "\1\u01a8",
-            "\1\u01a9",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u01aa",
             "\1\u01ab",
-            "\1\u01ac",
-            "\1\u01ad",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u01ae",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01af",
             "\1\u01b0",
             "",
-            "\1\71\10\uffff\1\u01b1\2\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01b1",
+            "\1\u01b2",
             "\1\u01b3",
             "\1\u01b4",
             "\1\u01b5",
             "\1\u01b6",
-            "",
             "\1\u01b7",
-            "",
             "\1\u01b8",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01b9",
+            "\1\u01ba",
             "",
-            "\1\u01bb",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u01bc",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01bd",
             "\1\u01be",
             "\1\u01bf",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\1\u01c0",
+            "",
             "\1\u01c1",
             "\1\u01c2",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u01c6\16\uffff\1\u01c5",
-            "",
-            "",
+            "\1\u01c3",
+            "\1\u01c4",
+            "\1\u01c5",
+            "\1\u01c6",
             "\1\u01c7",
             "\1\u01c8",
             "\1\u01c9",
-            "\1\u01ca",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01cb",
             "\1\u01cc",
             "\1\u01cd",
             "\1\u01ce",
@@ -5475,217 +5931,373 @@
             "\1\u01d1",
             "\1\u01d2",
             "\1\u01d3",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01d5",
             "",
-            "\1\u01d4",
-            "\1\71\10\uffff\1\u01d5\2\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\10\uffff\1\u01d6\2\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
             "\1\u01d8",
             "\1\u01d9",
             "\1\u01da",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01db",
             "\1\u01dc",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\1\u01dd",
-            "\1\u01de",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u01df",
-            "",
             "\1\u01e0",
-            "\1\u01e1",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01e2",
             "\1\u01e3",
             "\1\u01e4",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u01e6",
+            "",
             "\1\u01e7",
             "\1\u01e8",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u01e9",
             "\1\u01ea",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
+            "\1\u01eb",
             "\1\u01ec",
-            "\1\u01ed\21\uffff\1\u01ee",
             "",
+            "\1\u01ed",
+            "",
+            "\1\u01ee",
             "\1\u01ef",
             "\1\u01f0",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01f1",
             "\1\u01f2",
-            "\1\u01f3",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
+            "\1\u01f5",
+            "\1\u01f6",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u01f8",
-            "\1\u01f9",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\1\u01f7\4\76\1\u01f8\15\76\1\u01f9\6\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u01fb",
-            "",
-            "",
             "\1\u01fc",
-            "\1\u01fd",
-            "\1\u01fe",
-            "\1\u01ff",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01ff\16\uffff\1\u01fe",
+            "",
+            "",
             "\1\u0200",
             "\1\u0201",
-            "",
             "\1\u0202",
             "\1\u0203",
-            "\1\71\10\uffff\1\u0204\2\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0205",
             "\1\u0206",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0207",
+            "\1\u0208",
             "\1\u0209",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u020c\21\uffff\1\u020d",
-            "",
+            "\1\u020a",
+            "\1\u020b",
+            "\1\76\10\uffff\1\u020c\2\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
             "\1\u020e",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u020f",
+            "\1\u0210",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\1\u0211",
             "\1\u0212",
             "\1\u0213",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0215",
             "\1\u0216",
-            "",
             "\1\u0217",
             "\1\u0218",
-            "",
             "\1\u0219",
             "\1\u021a",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
-            "\1\u021d",
-            "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
+            "\1\u021b",
+            "\1\u021c",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u021e",
+            "\1\u021f",
             "\1\u0220",
-            "\1\u0221",
-            "",
-            "",
-            "",
-            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0222",
-            "\1\u0223",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u0225",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0224",
+            "\1\u0225\21\uffff\1\u0226",
+            "",
             "\1\u0227",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u022a",
+            "\1\u0228",
+            "\1\u0229",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u022b",
-            "\1\u022c",
             "",
             "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u022d",
             "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
-            "",
-            "",
-            "",
-            "\1\71\10\uffff\1\u022f\2\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
+            "\1\u022e",
+            "\1\u022f",
+            "\1\u0230",
             "",
             "\1\u0231",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u0233",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u0236",
+            "\1\u0232",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0234",
+            "\1\u0235",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0237",
             "\1\u0238",
             "\1\u0239",
-            "",
-            "",
             "\1\u023a",
-            "",
-            "",
             "\1\u023b",
             "\1\u023c",
-            "\1\u023d",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\1\u023f",
             "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0240",
+            "\1\u0241",
+            "\1\u0242",
             "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u0243",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0244",
             "",
-            "",
-            "",
             "\1\u0245",
-            "",
             "\1\u0246",
-            "",
-            "",
             "\1\u0247",
             "\1\u0248",
             "\1\u0249",
             "\1\u024a",
+            "",
             "\1\u024b",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u024d",
-            "\1\u024e",
+            "\1\u024c",
+            "\1\76\10\uffff\1\u024d\2\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u024f",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0251",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0253\21\uffff\1\u0254",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u0250",
-            "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\u0252",
-            "\1\u0253",
-            "\1\u0254",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0256",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u0258",
             "\1\u0259",
             "",
             "\1\u025a",
+            "",
             "\1\u025b",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u025e",
+            "\1\u025f",
             "\1\u0260",
             "",
-            "",
             "\1\u0261",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0262",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u0265",
+            "",
+            "",
+            "\1\u0266",
+            "\1\u0267",
+            "\1\u0268",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u026a",
+            "\1\u026b",
+            "\1\u026c",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u026e",
+            "\1\u026f",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u0272",
+            "\1\u0273",
+            "\1\u0274",
+            "\1\u0275",
+            "\1\u0276",
+            "\1\u0277",
+            "",
+            "",
+            "",
+            "\1\u0278",
+            "\1\u0279",
+            "\1\u027a",
+            "",
+            "\1\u027b",
+            "\1\u027c",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u027e",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0281",
+            "\1\u0282",
+            "\1\u0283",
+            "",
+            "",
+            "\1\u0284",
+            "",
+            "\1\u0285",
             "",
             "",
             "",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\76\10\uffff\1\u0287\2\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u028b",
+            "",
+            "",
+            "\1\u028c",
+            "\1\u028d",
+            "\1\u028e",
+            "\1\u028f",
+            "\1\u0290",
+            "",
+            "",
+            "\1\u0291",
+            "\1\u0292",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u0295",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0297",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "",
+            "\1\u029a",
+            "\1\u029b",
+            "\1\u029c",
+            "\1\u029d",
+            "\1\u029e",
+            "\1\u029f",
+            "\1\u02a0",
+            "\1\u02a1",
+            "\1\u02a2",
+            "\1\u02a3",
+            "\1\u02a4",
+            "",
+            "\1\u02a5",
+            "",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02a8",
+            "\1\u02a9",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
             "",
             "",
+            "",
+            "",
+            "",
+            "\1\u02ab",
+            "\1\u02ac",
+            "\1\u02ad",
+            "\1\u02ae",
+            "\1\u02af",
+            "\1\u02b0",
+            "\1\u02b1",
+            "",
+            "",
+            "\1\u02b2",
+            "",
+            "\1\u02b3",
+            "",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02b5",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02b8",
+            "\1\u02b9",
+            "\1\u02ba",
+            "\1\u02bb",
+            "\1\u02bc",
+            "\1\u02bd",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02bf",
+            "",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02c1",
+            "",
+            "\1\u02c2",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02c4",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02c7",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02c9",
+            "\1\u02ca",
+            "",
+            "\1\u02cb",
+            "",
+            "",
+            "\1\u02cc",
+            "\1\u02cd",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02cf",
+            "\1\u02d0",
+            "\1\u02d1",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02d4",
+            "",
+            "\1\u02d5",
+            "",
+            "",
+            "\1\u02d6",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02da",
+            "\1\u02db",
+            "",
+            "\1\u02dc",
+            "\1\u02dd",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02e3",
+            "\1\u02e4",
+            "\1\u02e5",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02e8",
+            "",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             ""
     };
 
@@ -5719,7 +6331,7 @@
             this.transition = DFA21_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | 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;
@@ -5731,29 +6343,29 @@
                         s = -1;
                         if ( (LA21_0=='p') ) {s = 1;}
 
-                        else if ( (LA21_0=='{') ) {s = 2;}
+                        else if ( (LA21_0=='s') ) {s = 2;}
 
-                        else if ( (LA21_0=='}') ) {s = 3;}
+                        else if ( (LA21_0=='{') ) {s = 3;}
 
-                        else if ( (LA21_0=='c') ) {s = 4;}
+                        else if ( (LA21_0=='}') ) {s = 4;}
 
-                        else if ( (LA21_0=='d') ) {s = 5;}
+                        else if ( (LA21_0=='f') ) {s = 5;}
 
-                        else if ( (LA21_0=='a') ) {s = 6;}
+                        else if ( (LA21_0=='c') ) {s = 6;}
 
-                        else if ( (LA21_0=='s') ) {s = 7;}
+                        else if ( (LA21_0=='d') ) {s = 7;}
 
-                        else if ( (LA21_0=='t') ) {s = 8;}
+                        else if ( (LA21_0=='a') ) {s = 8;}
 
-                        else if ( (LA21_0=='u') ) {s = 9;}
+                        else if ( (LA21_0=='t') ) {s = 9;}
 
-                        else if ( (LA21_0=='b') ) {s = 10;}
+                        else if ( (LA21_0=='u') ) {s = 10;}
 
-                        else if ( (LA21_0=='l') ) {s = 11;}
+                        else if ( (LA21_0=='b') ) {s = 11;}
 
-                        else if ( (LA21_0=='z') ) {s = 12;}
+                        else if ( (LA21_0=='l') ) {s = 12;}
 
-                        else if ( (LA21_0=='f') ) {s = 13;}
+                        else if ( (LA21_0=='z') ) {s = 13;}
 
                         else if ( (LA21_0=='e') ) {s = 14;}
 
@@ -5765,13 +6377,13 @@
 
                         else if ( (LA21_0=='i') ) {s = 18;}
 
-                        else if ( (LA21_0=='r') ) {s = 19;}
+                        else if ( (LA21_0=='n') ) {s = 19;}
 
-                        else if ( (LA21_0=='-') ) {s = 20;}
+                        else if ( (LA21_0=='r') ) {s = 20;}
 
-                        else if ( (LA21_0=='*') ) {s = 21;}
+                        else if ( (LA21_0=='-') ) {s = 21;}
 
-                        else if ( (LA21_0=='n') ) {s = 22;}
+                        else if ( (LA21_0=='*') ) {s = 22;}
 
                         else if ( (LA21_0==';') ) {s = 23;}
 
@@ -5819,21 +6431,31 @@
 
                         else if ( (LA21_0=='o') ) {s = 45;}
 
-                        else if ( (LA21_0=='0') ) {s = 46;}
+                        else if ( (LA21_0=='D') ) {s = 46;}
 
-                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 47;}
+                        else if ( (LA21_0=='A') ) {s = 47;}
 
-                        else if ( (LA21_0=='^') ) {s = 48;}
+                        else if ( (LA21_0=='V') ) {s = 48;}
 
-                        else if ( (LA21_0=='$'||(LA21_0>='A' && LA21_0<='Z')||LA21_0=='_'||(LA21_0>='j' && LA21_0<='k')||LA21_0=='q'||(LA21_0>='x' && LA21_0<='y')) ) {s = 49;}
+                        else if ( (LA21_0=='T') ) {s = 49;}
 
-                        else if ( (LA21_0=='\"') ) {s = 50;}
+                        else if ( (LA21_0=='C') ) {s = 50;}
 
-                        else if ( (LA21_0=='\'') ) {s = 51;}
+                        else if ( (LA21_0=='0') ) {s = 51;}
 
-                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 52;}
+                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 52;}
 
-                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 53;}
+                        else if ( (LA21_0=='^') ) {s = 53;}
+
+                        else if ( (LA21_0=='$'||LA21_0=='B'||(LA21_0>='E' && LA21_0<='S')||LA21_0=='U'||(LA21_0>='W' && LA21_0<='Z')||LA21_0=='_'||(LA21_0>='j' && LA21_0<='k')||LA21_0=='q'||(LA21_0>='x' && LA21_0<='y')) ) {s = 54;}
+
+                        else if ( (LA21_0=='\"') ) {s = 55;}
+
+                        else if ( (LA21_0=='\'') ) {s = 56;}
+
+                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 57;}
+
+                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 58;}
 
                         if ( s>=0 ) return s;
                         break;
@@ -5846,4 +6468,4 @@
     }
  
 
-}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSLParser.java b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSLParser.java
index e25cb27..b1684c4 100644
--- a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSLParser.java
+++ b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/parser/antlr/internal/InternalChartDSLParser.java
@@ -40,7 +40,7 @@
 @SuppressWarnings("all")
 public class InternalChartDSLParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_HEX", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'chart'", "'describedBy'", "'as'", "'selectById'", "'toolbar'", "'using'", "'bar'", "'shaded'", "'animated'", "'swapped'", "'stacked'", "'line'", "'showMarker'", "'trendLine'", "'cursor'", "'zoom'", "'tooltip'", "'fillZero'", "'filled'", "'pie'", "'empty'", "'donut'", "'bubble'", "'multiplier'", "'gradient'", "'transparent'", "'gauge'", "'label'", "'hasTicks'", "'minimum'", "'maximum'", "'intervals'", "'tree'", "'map'", "'collapsible'", "'upTo'", "'datamart'", "'legend'", "'toggle'", "'replot'", "'always'", "'inside'", "'axis'", "'renders'", "'shortLabel'", "'angle'", "'segmentcolor'", "'-'", "'import'", "'static'", "'extension'", "'*'", "'ns'", "';'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'::'", "'?.'", "'|'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'inside-grid'", "'outside'", "'outside-grid'", "'normal'", "'slow'", "'fast'", "'north'", "'north-east'", "'east'", "'south-east'", "'south'", "'south-west'", "'west'", "'north-west'", "'category'", "'linear'", "'date'", "'logarithmic'", "'pyramid'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_HEX", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'seriesColors'", "'{'", "'}'", "'fontFamily'", "'chart'", "'describedBy'", "'as'", "'selectById'", "'toolbar'", "'using'", "'bar'", "'shaded'", "'animated'", "'swapped'", "'stacked'", "'line'", "'showMarker'", "'trendLine'", "'cursor'", "'zoom'", "'tooltip'", "'fillZero'", "'filled'", "'pie'", "'empty'", "'donut'", "'bubble'", "'multiplier'", "'gradient'", "'transparent'", "'gauge'", "'label'", "'hasTicks'", "'minimum'", "'maximum'", "'intervals'", "'tree'", "'map'", "'collapsible'", "'upTo'", "'datamart'", "'legend'", "'noLegend'", "'toggle'", "'replot'", "'fontSize'", "'textColor'", "'always'", "'inside'", "'axis'", "'renders'", "'shortLabel'", "'labelAngle'", "'labelFontSize'", "'labelTextColor'", "'tickAngle'", "'tickFontSize'", "'tickTextColor'", "'segmentcolor'", "'-'", "'import'", "'static'", "'extension'", "'*'", "'ns'", "';'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'::'", "'?.'", "'|'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'inside-grid'", "'outside'", "'outside-grid'", "'normal'", "'slow'", "'fast'", "'north'", "'north-east'", "'east'", "'south-east'", "'south'", "'south-west'", "'west'", "'north-west'", "'category'", "'linear'", "'date'", "'logarithmic'", "'pyramid'", "'Default'", "'Arial'", "'Verdana'", "'Times New Roman'", "'Courier New'", "'serif'", "'sans-serif'"
     };
     public static final int T__144=144;
     public static final int T__143=143;
@@ -70,7 +70,7 @@
     public static final int T__135=135;
     public static final int T__61=61;
     public static final int T__134=134;
-    public static final int RULE_ID=4;
+    public static final int RULE_ID=5;
     public static final int T__131=131;
     public static final int T__130=130;
     public static final int RULE_INT=6;
@@ -88,6 +88,15 @@
     public static final int T__128=128;
     public static final int T__65=65;
     public static final int T__127=127;
+    public static final int T__166=166;
+    public static final int T__165=165;
+    public static final int T__168=168;
+    public static final int T__167=167;
+    public static final int T__162=162;
+    public static final int T__161=161;
+    public static final int T__164=164;
+    public static final int T__163=163;
+    public static final int T__160=160;
     public static final int T__37=37;
     public static final int T__38=38;
     public static final int T__39=39;
@@ -95,10 +104,15 @@
     public static final int T__34=34;
     public static final int T__35=35;
     public static final int T__36=36;
+    public static final int T__159=159;
     public static final int T__30=30;
+    public static final int T__158=158;
     public static final int T__31=31;
     public static final int T__32=32;
+    public static final int T__155=155;
     public static final int T__154=154;
+    public static final int T__157=157;
+    public static final int T__156=156;
     public static final int T__151=151;
     public static final int T__150=150;
     public static final int T__153=153;
@@ -136,6 +150,8 @@
     public static final int T__96=96;
     public static final int T__97=97;
     public static final int T__98=98;
+    public static final int T__171=171;
+    public static final int T__170=170;
     public static final int RULE_DECIMAL=8;
     public static final int T__26=26;
     public static final int T__27=27;
@@ -145,6 +161,7 @@
     public static final int T__23=23;
     public static final int T__24=24;
     public static final int T__25=25;
+    public static final int T__169=169;
     public static final int T__20=20;
     public static final int T__21=21;
     public static final int T__122=122;
@@ -155,7 +172,7 @@
     public static final int T__72=72;
     public static final int T__123=123;
     public static final int T__120=120;
-    public static final int RULE_STRING=5;
+    public static final int RULE_STRING=4;
     public static final int RULE_SL_COMMENT=10;
     public static final int T__77=77;
     public static final int T__119=119;
@@ -298,7 +315,7 @@
             int alt1=2;
             int LA1_0 = input.LA(1);
 
-            if ( (LA1_0==64) ) {
+            if ( (LA1_0==74) ) {
                 alt1=1;
             }
             switch (alt1) {
@@ -458,27 +475,35 @@
 
 
     // $ANTLR start "ruleChartPackage"
-    // InternalChartDSL.g:144:1: ruleChartPackage returns [EObject current=null] : ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_charts_4_0= ruleChart ) )* otherlv_5= '}' )? ) ;
+    // InternalChartDSL.g:144:1: ruleChartPackage returns [EObject current=null] : ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) ( ( (lv_hasColors_3_0= 'seriesColors' ) ) otherlv_4= '{' ( (lv_colors_5_0= ruleSeriesColor ) )* otherlv_6= '}' )? (otherlv_7= 'fontFamily' ( (lv_defaultFontFamily_8_0= ruleCanvasFontFamilyEnum ) ) )? (otherlv_9= '{' ( (lv_charts_10_0= ruleChart ) )* otherlv_11= '}' )? ) ;
     public final EObject ruleChartPackage() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
-        Token otherlv_3=null;
-        Token otherlv_5=null;
+        Token lv_hasColors_3_0=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        Token otherlv_11=null;
         AntlrDatatypeRuleToken lv_name_2_0 = null;
 
-        EObject lv_charts_4_0 = null;
+        EObject lv_colors_5_0 = null;
+
+        Enumerator lv_defaultFontFamily_8_0 = null;
+
+        EObject lv_charts_10_0 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalChartDSL.g:150:2: ( ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_charts_4_0= ruleChart ) )* otherlv_5= '}' )? ) )
-            // InternalChartDSL.g:151:2: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_charts_4_0= ruleChart ) )* otherlv_5= '}' )? )
+            // InternalChartDSL.g:150:2: ( ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) ( ( (lv_hasColors_3_0= 'seriesColors' ) ) otherlv_4= '{' ( (lv_colors_5_0= ruleSeriesColor ) )* otherlv_6= '}' )? (otherlv_7= 'fontFamily' ( (lv_defaultFontFamily_8_0= ruleCanvasFontFamilyEnum ) ) )? (otherlv_9= '{' ( (lv_charts_10_0= ruleChart ) )* otherlv_11= '}' )? ) )
+            // InternalChartDSL.g:151:2: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) ( ( (lv_hasColors_3_0= 'seriesColors' ) ) otherlv_4= '{' ( (lv_colors_5_0= ruleSeriesColor ) )* otherlv_6= '}' )? (otherlv_7= 'fontFamily' ( (lv_defaultFontFamily_8_0= ruleCanvasFontFamilyEnum ) ) )? (otherlv_9= '{' ( (lv_charts_10_0= ruleChart ) )* otherlv_11= '}' )? )
             {
-            // InternalChartDSL.g:151:2: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_charts_4_0= ruleChart ) )* otherlv_5= '}' )? )
-            // InternalChartDSL.g:152:3: () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_charts_4_0= ruleChart ) )* otherlv_5= '}' )?
+            // InternalChartDSL.g:151:2: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) ( ( (lv_hasColors_3_0= 'seriesColors' ) ) otherlv_4= '{' ( (lv_colors_5_0= ruleSeriesColor ) )* otherlv_6= '}' )? (otherlv_7= 'fontFamily' ( (lv_defaultFontFamily_8_0= ruleCanvasFontFamilyEnum ) ) )? (otherlv_9= '{' ( (lv_charts_10_0= ruleChart ) )* otherlv_11= '}' )? )
+            // InternalChartDSL.g:152:3: () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) ( ( (lv_hasColors_3_0= 'seriesColors' ) ) otherlv_4= '{' ( (lv_colors_5_0= ruleSeriesColor ) )* otherlv_6= '}' )? (otherlv_7= 'fontFamily' ( (lv_defaultFontFamily_8_0= ruleCanvasFontFamilyEnum ) ) )? (otherlv_9= '{' ( (lv_charts_10_0= ruleChart ) )* otherlv_11= '}' )?
             {
             // InternalChartDSL.g:152:3: ()
             // InternalChartDSL.g:153:4: 
@@ -534,7 +559,7 @@
 
             }
 
-            // InternalChartDSL.g:182:3: (otherlv_3= '{' ( (lv_charts_4_0= ruleChart ) )* otherlv_5= '}' )?
+            // InternalChartDSL.g:182:3: ( ( (lv_hasColors_3_0= 'seriesColors' ) ) otherlv_4= '{' ( (lv_colors_5_0= ruleSeriesColor ) )* otherlv_6= '}' )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -543,39 +568,65 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalChartDSL.g:183:4: otherlv_3= '{' ( (lv_charts_4_0= ruleChart ) )* otherlv_5= '}'
+                    // InternalChartDSL.g:183:4: ( (lv_hasColors_3_0= 'seriesColors' ) ) otherlv_4= '{' ( (lv_colors_5_0= ruleSeriesColor ) )* otherlv_6= '}'
                     {
-                    otherlv_3=(Token)match(input,14,FOLLOW_6); if (state.failed) return current;
+                    // InternalChartDSL.g:183:4: ( (lv_hasColors_3_0= 'seriesColors' ) )
+                    // InternalChartDSL.g:184:5: (lv_hasColors_3_0= 'seriesColors' )
+                    {
+                    // InternalChartDSL.g:184:5: (lv_hasColors_3_0= 'seriesColors' )
+                    // InternalChartDSL.g:185:6: lv_hasColors_3_0= 'seriesColors'
+                    {
+                    lv_hasColors_3_0=(Token)match(input,14,FOLLOW_6); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				newLeafNode(otherlv_3, grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_0());
+                      						newLeafNode(lv_hasColors_3_0, grammarAccess.getChartPackageAccess().getHasColorsSeriesColorsKeyword_3_0_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getChartPackageRule());
+                      						}
+                      						setWithLastConsumed(current, "hasColors", true, "seriesColors");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_4=(Token)match(input,15,FOLLOW_7); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_4, grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_1());
                       			
                     }
-                    // InternalChartDSL.g:187:4: ( (lv_charts_4_0= ruleChart ) )*
+                    // InternalChartDSL.g:201:4: ( (lv_colors_5_0= ruleSeriesColor ) )*
                     loop3:
                     do {
                         int alt3=2;
                         int LA3_0 = input.LA(1);
 
-                        if ( (LA3_0==16) ) {
+                        if ( (LA3_0==RULE_STRING) ) {
                             alt3=1;
                         }
 
 
                         switch (alt3) {
                     	case 1 :
-                    	    // InternalChartDSL.g:188:5: (lv_charts_4_0= ruleChart )
+                    	    // InternalChartDSL.g:202:5: (lv_colors_5_0= ruleSeriesColor )
                     	    {
-                    	    // InternalChartDSL.g:188:5: (lv_charts_4_0= ruleChart )
-                    	    // InternalChartDSL.g:189:6: lv_charts_4_0= ruleChart
+                    	    // InternalChartDSL.g:202:5: (lv_colors_5_0= ruleSeriesColor )
+                    	    // InternalChartDSL.g:203:6: lv_colors_5_0= ruleSeriesColor
                     	    {
                     	    if ( state.backtracking==0 ) {
 
-                    	      						newCompositeNode(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_3_1_0());
+                    	      						newCompositeNode(grammarAccess.getChartPackageAccess().getColorsSeriesColorParserRuleCall_3_2_0());
                     	      					
                     	    }
-                    	    pushFollow(FOLLOW_6);
-                    	    lv_charts_4_0=ruleChart();
+                    	    pushFollow(FOLLOW_7);
+                    	    lv_colors_5_0=ruleSeriesColor();
 
                     	    state._fsp--;
                     	    if (state.failed) return current;
@@ -586,9 +637,9 @@
                     	      						}
                     	      						add(
                     	      							current,
-                    	      							"charts",
-                    	      							lv_charts_4_0,
-                    	      							"org.eclipse.osbp.xtext.chart.ChartDSL.Chart");
+                    	      							"colors",
+                    	      							lv_colors_5_0,
+                    	      							"org.eclipse.osbp.xtext.chart.ChartDSL.SeriesColor");
                     	      						afterParserOrEnumRuleCall();
                     	      					
                     	    }
@@ -604,10 +655,150 @@
                         }
                     } while (true);
 
-                    otherlv_5=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,16,FOLLOW_8); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				newLeafNode(otherlv_5, grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_2());
+                      				newLeafNode(otherlv_6, grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_3());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // InternalChartDSL.g:225:3: (otherlv_7= 'fontFamily' ( (lv_defaultFontFamily_8_0= ruleCanvasFontFamilyEnum ) ) )?
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==17) ) {
+                alt5=1;
+            }
+            switch (alt5) {
+                case 1 :
+                    // InternalChartDSL.g:226:4: otherlv_7= 'fontFamily' ( (lv_defaultFontFamily_8_0= ruleCanvasFontFamilyEnum ) )
+                    {
+                    otherlv_7=(Token)match(input,17,FOLLOW_9); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_7, grammarAccess.getChartPackageAccess().getFontFamilyKeyword_4_0());
+                      			
+                    }
+                    // InternalChartDSL.g:230:4: ( (lv_defaultFontFamily_8_0= ruleCanvasFontFamilyEnum ) )
+                    // InternalChartDSL.g:231:5: (lv_defaultFontFamily_8_0= ruleCanvasFontFamilyEnum )
+                    {
+                    // InternalChartDSL.g:231:5: (lv_defaultFontFamily_8_0= ruleCanvasFontFamilyEnum )
+                    // InternalChartDSL.g:232:6: lv_defaultFontFamily_8_0= ruleCanvasFontFamilyEnum
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getChartPackageAccess().getDefaultFontFamilyCanvasFontFamilyEnumEnumRuleCall_4_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_10);
+                    lv_defaultFontFamily_8_0=ruleCanvasFontFamilyEnum();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getChartPackageRule());
+                      						}
+                      						set(
+                      							current,
+                      							"defaultFontFamily",
+                      							lv_defaultFontFamily_8_0,
+                      							"org.eclipse.osbp.xtext.chart.ChartDSL.CanvasFontFamilyEnum");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalChartDSL.g:250:3: (otherlv_9= '{' ( (lv_charts_10_0= ruleChart ) )* otherlv_11= '}' )?
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0==15) ) {
+                alt7=1;
+            }
+            switch (alt7) {
+                case 1 :
+                    // InternalChartDSL.g:251:4: otherlv_9= '{' ( (lv_charts_10_0= ruleChart ) )* otherlv_11= '}'
+                    {
+                    otherlv_9=(Token)match(input,15,FOLLOW_11); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_9, grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_5_0());
+                      			
+                    }
+                    // InternalChartDSL.g:255:4: ( (lv_charts_10_0= ruleChart ) )*
+                    loop6:
+                    do {
+                        int alt6=2;
+                        int LA6_0 = input.LA(1);
+
+                        if ( (LA6_0==18) ) {
+                            alt6=1;
+                        }
+
+
+                        switch (alt6) {
+                    	case 1 :
+                    	    // InternalChartDSL.g:256:5: (lv_charts_10_0= ruleChart )
+                    	    {
+                    	    // InternalChartDSL.g:256:5: (lv_charts_10_0= ruleChart )
+                    	    // InternalChartDSL.g:257:6: lv_charts_10_0= ruleChart
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      						newCompositeNode(grammarAccess.getChartPackageAccess().getChartsChartParserRuleCall_5_1_0());
+                    	      					
+                    	    }
+                    	    pushFollow(FOLLOW_11);
+                    	    lv_charts_10_0=ruleChart();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      						if (current==null) {
+                    	      							current = createModelElementForParent(grammarAccess.getChartPackageRule());
+                    	      						}
+                    	      						add(
+                    	      							current,
+                    	      							"charts",
+                    	      							lv_charts_10_0,
+                    	      							"org.eclipse.osbp.xtext.chart.ChartDSL.Chart");
+                    	      						afterParserOrEnumRuleCall();
+                    	      					
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop6;
+                        }
+                    } while (true);
+
+                    otherlv_11=(Token)match(input,16,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_11, grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_5_2());
                       			
                     }
 
@@ -640,8 +831,132 @@
     // $ANTLR end "ruleChartPackage"
 
 
+    // $ANTLR start "entryRuleSeriesColor"
+    // InternalChartDSL.g:283:1: entryRuleSeriesColor returns [EObject current=null] : iv_ruleSeriesColor= ruleSeriesColor EOF ;
+    public final EObject entryRuleSeriesColor() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleSeriesColor = null;
+
+
+        try {
+            // InternalChartDSL.g:283:52: (iv_ruleSeriesColor= ruleSeriesColor EOF )
+            // InternalChartDSL.g:284:2: iv_ruleSeriesColor= ruleSeriesColor EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getSeriesColorRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleSeriesColor=ruleSeriesColor();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleSeriesColor; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSeriesColor"
+
+
+    // $ANTLR start "ruleSeriesColor"
+    // InternalChartDSL.g:290:1: ruleSeriesColor returns [EObject current=null] : ( () ( (lv_rgb_1_0= RULE_STRING ) ) ) ;
+    public final EObject ruleSeriesColor() throws RecognitionException {
+        EObject current = null;
+
+        Token lv_rgb_1_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:296:2: ( ( () ( (lv_rgb_1_0= RULE_STRING ) ) ) )
+            // InternalChartDSL.g:297:2: ( () ( (lv_rgb_1_0= RULE_STRING ) ) )
+            {
+            // InternalChartDSL.g:297:2: ( () ( (lv_rgb_1_0= RULE_STRING ) ) )
+            // InternalChartDSL.g:298:3: () ( (lv_rgb_1_0= RULE_STRING ) )
+            {
+            // InternalChartDSL.g:298:3: ()
+            // InternalChartDSL.g:299:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getSeriesColorAccess().getSeriesColorAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            // InternalChartDSL.g:305:3: ( (lv_rgb_1_0= RULE_STRING ) )
+            // InternalChartDSL.g:306:4: (lv_rgb_1_0= RULE_STRING )
+            {
+            // InternalChartDSL.g:306:4: (lv_rgb_1_0= RULE_STRING )
+            // InternalChartDSL.g:307:5: lv_rgb_1_0= RULE_STRING
+            {
+            lv_rgb_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(lv_rgb_1_0, grammarAccess.getSeriesColorAccess().getRgbSTRINGTerminalRuleCall_1_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getSeriesColorRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"rgb",
+              						lv_rgb_1_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSeriesColor"
+
+
     // $ANTLR start "entryRuleChart"
-    // InternalChartDSL.g:215:1: entryRuleChart returns [EObject current=null] : iv_ruleChart= ruleChart EOF ;
+    // InternalChartDSL.g:327:1: entryRuleChart returns [EObject current=null] : iv_ruleChart= ruleChart EOF ;
     public final EObject entryRuleChart() throws RecognitionException {
         EObject current = null;
 
@@ -649,8 +964,8 @@
 
 
         try {
-            // InternalChartDSL.g:215:46: (iv_ruleChart= ruleChart EOF )
-            // InternalChartDSL.g:216:2: iv_ruleChart= ruleChart EOF
+            // InternalChartDSL.g:327:46: (iv_ruleChart= ruleChart EOF )
+            // InternalChartDSL.g:328:2: iv_ruleChart= ruleChart EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartRule()); 
@@ -681,7 +996,7 @@
 
 
     // $ANTLR start "ruleChart"
-    // InternalChartDSL.g:222:1: ruleChart returns [EObject current=null] : ( () otherlv_1= 'chart' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_charttype_6_0= ruleChartOption ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )? ) ;
+    // InternalChartDSL.g:334:1: ruleChart returns [EObject current=null] : ( () otherlv_1= 'chart' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_charttype_6_0= ruleChartOption ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )? ) ;
     public final EObject ruleChart() throws RecognitionException {
         EObject current = null;
 
@@ -705,14 +1020,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:228:2: ( ( () otherlv_1= 'chart' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_charttype_6_0= ruleChartOption ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )? ) )
-            // InternalChartDSL.g:229:2: ( () otherlv_1= 'chart' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_charttype_6_0= ruleChartOption ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )? )
+            // InternalChartDSL.g:340:2: ( ( () otherlv_1= 'chart' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_charttype_6_0= ruleChartOption ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )? ) )
+            // InternalChartDSL.g:341:2: ( () otherlv_1= 'chart' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_charttype_6_0= ruleChartOption ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )? )
             {
-            // InternalChartDSL.g:229:2: ( () otherlv_1= 'chart' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_charttype_6_0= ruleChartOption ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )? )
-            // InternalChartDSL.g:230:3: () otherlv_1= 'chart' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_charttype_6_0= ruleChartOption ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )?
+            // InternalChartDSL.g:341:2: ( () otherlv_1= 'chart' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_charttype_6_0= ruleChartOption ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )? )
+            // InternalChartDSL.g:342:3: () otherlv_1= 'chart' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_charttype_6_0= ruleChartOption ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )?
             {
-            // InternalChartDSL.g:230:3: ()
-            // InternalChartDSL.g:231:4: 
+            // InternalChartDSL.g:342:3: ()
+            // InternalChartDSL.g:343:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -724,24 +1039,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,16,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,18,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getChartAccess().getChartKeyword_1());
               		
             }
-            // InternalChartDSL.g:241:3: ( (lv_name_2_0= ruleTRANSLATABLEID ) )
-            // InternalChartDSL.g:242:4: (lv_name_2_0= ruleTRANSLATABLEID )
+            // InternalChartDSL.g:353:3: ( (lv_name_2_0= ruleTRANSLATABLEID ) )
+            // InternalChartDSL.g:354:4: (lv_name_2_0= ruleTRANSLATABLEID )
             {
-            // InternalChartDSL.g:242:4: (lv_name_2_0= ruleTRANSLATABLEID )
-            // InternalChartDSL.g:243:5: lv_name_2_0= ruleTRANSLATABLEID
+            // InternalChartDSL.g:354:4: (lv_name_2_0= ruleTRANSLATABLEID )
+            // InternalChartDSL.g:355:5: lv_name_2_0= ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getChartAccess().getNameTRANSLATABLEIDParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_7);
+            pushFollow(FOLLOW_12);
             lv_name_2_0=ruleTRANSLATABLEID();
 
             state._fsp--;
@@ -765,24 +1080,24 @@
 
             }
 
-            // InternalChartDSL.g:260:3: ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )?
-            int alt5=2;
-            int LA5_0 = input.LA(1);
+            // InternalChartDSL.g:372:3: ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )?
+            int alt8=2;
+            int LA8_0 = input.LA(1);
 
-            if ( (LA5_0==17) ) {
-                alt5=1;
+            if ( (LA8_0==19) ) {
+                alt8=1;
             }
-            switch (alt5) {
+            switch (alt8) {
                 case 1 :
-                    // InternalChartDSL.g:261:4: ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
+                    // InternalChartDSL.g:373:4: ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
                     {
-                    // InternalChartDSL.g:261:4: ( (lv_description_3_0= 'describedBy' ) )
-                    // InternalChartDSL.g:262:5: (lv_description_3_0= 'describedBy' )
+                    // InternalChartDSL.g:373:4: ( (lv_description_3_0= 'describedBy' ) )
+                    // InternalChartDSL.g:374:5: (lv_description_3_0= 'describedBy' )
                     {
-                    // InternalChartDSL.g:262:5: (lv_description_3_0= 'describedBy' )
-                    // InternalChartDSL.g:263:6: lv_description_3_0= 'describedBy'
+                    // InternalChartDSL.g:374:5: (lv_description_3_0= 'describedBy' )
+                    // InternalChartDSL.g:375:6: lv_description_3_0= 'describedBy'
                     {
-                    lv_description_3_0=(Token)match(input,17,FOLLOW_8); if (state.failed) return current;
+                    lv_description_3_0=(Token)match(input,19,FOLLOW_13); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_description_3_0, grammarAccess.getChartAccess().getDescriptionDescribedByKeyword_3_0_0());
@@ -802,18 +1117,18 @@
 
                     }
 
-                    // InternalChartDSL.g:275:4: ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
-                    // InternalChartDSL.g:276:5: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
+                    // InternalChartDSL.g:387:4: ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
+                    // InternalChartDSL.g:388:5: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
                     {
-                    // InternalChartDSL.g:276:5: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
-                    // InternalChartDSL.g:277:6: lv_descriptionValue_4_0= ruleTRANSLATABLESTRING
+                    // InternalChartDSL.g:388:5: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
+                    // InternalChartDSL.g:389:6: lv_descriptionValue_4_0= ruleTRANSLATABLESTRING
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getChartAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_9);
+                    pushFollow(FOLLOW_14);
                     lv_descriptionValue_4_0=ruleTRANSLATABLESTRING();
 
                     state._fsp--;
@@ -843,24 +1158,24 @@
 
             }
 
-            otherlv_5=(Token)match(input,18,FOLLOW_10); if (state.failed) return current;
+            otherlv_5=(Token)match(input,20,FOLLOW_15); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getChartAccess().getAsKeyword_4());
               		
             }
-            // InternalChartDSL.g:299:3: ( (lv_charttype_6_0= ruleChartOption ) )
-            // InternalChartDSL.g:300:4: (lv_charttype_6_0= ruleChartOption )
+            // InternalChartDSL.g:411:3: ( (lv_charttype_6_0= ruleChartOption ) )
+            // InternalChartDSL.g:412:4: (lv_charttype_6_0= ruleChartOption )
             {
-            // InternalChartDSL.g:300:4: (lv_charttype_6_0= ruleChartOption )
-            // InternalChartDSL.g:301:5: lv_charttype_6_0= ruleChartOption
+            // InternalChartDSL.g:412:4: (lv_charttype_6_0= ruleChartOption )
+            // InternalChartDSL.g:413:5: lv_charttype_6_0= ruleChartOption
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getChartAccess().getCharttypeChartOptionParserRuleCall_5_0());
               				
             }
-            pushFollow(FOLLOW_11);
+            pushFollow(FOLLOW_16);
             lv_charttype_6_0=ruleChartOption();
 
             state._fsp--;
@@ -884,59 +1199,59 @@
 
             }
 
-            // InternalChartDSL.g:318:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) )
-            // InternalChartDSL.g:319:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) )
+            // InternalChartDSL.g:430:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) ) )
+            // InternalChartDSL.g:431:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) )
             {
-            // InternalChartDSL.g:319:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) )
-            // InternalChartDSL.g:320:5: ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* )
+            // InternalChartDSL.g:431:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* ) )
+            // InternalChartDSL.g:432:5: ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getChartAccess().getUnorderedGroup_6());
-            // InternalChartDSL.g:323:5: ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* )
-            // InternalChartDSL.g:324:6: ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )*
+            // InternalChartDSL.g:435:5: ( ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )* )
+            // InternalChartDSL.g:436:6: ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )*
             {
-            // InternalChartDSL.g:324:6: ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )*
-            loop6:
+            // InternalChartDSL.g:436:6: ( ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) ) )*
+            loop9:
             do {
-                int alt6=3;
-                int LA6_0 = input.LA(1);
+                int alt9=3;
+                int LA9_0 = input.LA(1);
 
-                if ( LA6_0 == 19 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0) ) {
-                    alt6=1;
+                if ( LA9_0 == 21 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0) ) {
+                    alt9=1;
                 }
-                else if ( LA6_0 == 20 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1) ) {
-                    alt6=2;
+                else if ( LA9_0 == 22 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1) ) {
+                    alt9=2;
                 }
 
 
-                switch (alt6) {
+                switch (alt9) {
             	case 1 :
-            	    // InternalChartDSL.g:325:4: ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) )
+            	    // InternalChartDSL.g:437:4: ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:325:4: ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) )
-            	    // InternalChartDSL.g:326:5: {...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) )
+            	    // InternalChartDSL.g:437:4: ({...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) ) )
+            	    // InternalChartDSL.g:438:5: {...}? => ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChart", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0)");
             	    }
-            	    // InternalChartDSL.g:326:102: ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) )
-            	    // InternalChartDSL.g:327:6: ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) )
+            	    // InternalChartDSL.g:438:102: ( ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) ) )
+            	    // InternalChartDSL.g:439:6: ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartAccess().getUnorderedGroup_6(), 0);
-            	    // InternalChartDSL.g:330:9: ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) )
-            	    // InternalChartDSL.g:330:10: {...}? => ( (lv_selectById_8_0= 'selectById' ) )
+            	    // InternalChartDSL.g:442:9: ({...}? => ( (lv_selectById_8_0= 'selectById' ) ) )
+            	    // InternalChartDSL.g:442:10: {...}? => ( (lv_selectById_8_0= 'selectById' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChart", "true");
             	    }
-            	    // InternalChartDSL.g:330:19: ( (lv_selectById_8_0= 'selectById' ) )
-            	    // InternalChartDSL.g:330:20: (lv_selectById_8_0= 'selectById' )
+            	    // InternalChartDSL.g:442:19: ( (lv_selectById_8_0= 'selectById' ) )
+            	    // InternalChartDSL.g:442:20: (lv_selectById_8_0= 'selectById' )
             	    {
-            	    // InternalChartDSL.g:330:20: (lv_selectById_8_0= 'selectById' )
-            	    // InternalChartDSL.g:331:10: lv_selectById_8_0= 'selectById'
+            	    // InternalChartDSL.g:442:20: (lv_selectById_8_0= 'selectById' )
+            	    // InternalChartDSL.g:443:10: lv_selectById_8_0= 'selectById'
             	    {
-            	    lv_selectById_8_0=(Token)match(input,19,FOLLOW_11); if (state.failed) return current;
+            	    lv_selectById_8_0=(Token)match(input,21,FOLLOW_16); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      										newLeafNode(lv_selectById_8_0, grammarAccess.getChartAccess().getSelectByIdSelectByIdKeyword_6_0_0());
@@ -970,40 +1285,40 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalChartDSL.g:348:4: ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) )
+            	    // InternalChartDSL.g:460:4: ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:348:4: ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) )
-            	    // InternalChartDSL.g:349:5: {...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) )
+            	    // InternalChartDSL.g:460:4: ({...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) ) )
+            	    // InternalChartDSL.g:461:5: {...}? => ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChart", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1)");
             	    }
-            	    // InternalChartDSL.g:349:102: ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) )
-            	    // InternalChartDSL.g:350:6: ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) )
+            	    // InternalChartDSL.g:461:102: ( ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) ) )
+            	    // InternalChartDSL.g:462:6: ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartAccess().getUnorderedGroup_6(), 1);
-            	    // InternalChartDSL.g:353:9: ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) )
-            	    // InternalChartDSL.g:353:10: {...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) )
+            	    // InternalChartDSL.g:465:9: ({...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) ) )
+            	    // InternalChartDSL.g:465:10: {...}? => (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChart", "true");
             	    }
-            	    // InternalChartDSL.g:353:19: (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) )
-            	    // InternalChartDSL.g:353:20: otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) )
+            	    // InternalChartDSL.g:465:19: (otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) ) )
+            	    // InternalChartDSL.g:465:20: otherlv_9= 'toolbar' ( (otherlv_10= RULE_ID ) )
             	    {
-            	    otherlv_9=(Token)match(input,20,FOLLOW_4); if (state.failed) return current;
+            	    otherlv_9=(Token)match(input,22,FOLLOW_4); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      									newLeafNode(otherlv_9, grammarAccess.getChartAccess().getToolbarKeyword_6_1_0());
             	      								
             	    }
-            	    // InternalChartDSL.g:357:9: ( (otherlv_10= RULE_ID ) )
-            	    // InternalChartDSL.g:358:10: (otherlv_10= RULE_ID )
+            	    // InternalChartDSL.g:469:9: ( (otherlv_10= RULE_ID ) )
+            	    // InternalChartDSL.g:470:10: (otherlv_10= RULE_ID )
             	    {
-            	    // InternalChartDSL.g:358:10: (otherlv_10= RULE_ID )
-            	    // InternalChartDSL.g:359:11: otherlv_10= RULE_ID
+            	    // InternalChartDSL.g:470:10: (otherlv_10= RULE_ID )
+            	    // InternalChartDSL.g:471:11: otherlv_10= RULE_ID
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -1012,7 +1327,7 @@
             	      											}
             	      										
             	    }
-            	    otherlv_10=(Token)match(input,RULE_ID,FOLLOW_11); if (state.failed) return current;
+            	    otherlv_10=(Token)match(input,RULE_ID,FOLLOW_16); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      											newLeafNode(otherlv_10, grammarAccess.getChartAccess().getToolbarActionToolbarCrossReference_6_1_1_0());
@@ -1042,7 +1357,7 @@
             	    break;
 
             	default :
-            	    break loop6;
+            	    break loop9;
                 }
             } while (true);
 
@@ -1056,28 +1371,28 @@
 
             }
 
-            // InternalChartDSL.g:383:3: (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )?
-            int alt7=2;
-            int LA7_0 = input.LA(1);
+            // InternalChartDSL.g:495:3: (otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) ) )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
 
-            if ( (LA7_0==21) ) {
-                alt7=1;
+            if ( (LA10_0==23) ) {
+                alt10=1;
             }
-            switch (alt7) {
+            switch (alt10) {
                 case 1 :
-                    // InternalChartDSL.g:384:4: otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) )
+                    // InternalChartDSL.g:496:4: otherlv_11= 'using' ( (lv_source_12_0= ruleChartDatamart ) )
                     {
-                    otherlv_11=(Token)match(input,21,FOLLOW_12); if (state.failed) return current;
+                    otherlv_11=(Token)match(input,23,FOLLOW_17); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_11, grammarAccess.getChartAccess().getUsingKeyword_7_0());
                       			
                     }
-                    // InternalChartDSL.g:388:4: ( (lv_source_12_0= ruleChartDatamart ) )
-                    // InternalChartDSL.g:389:5: (lv_source_12_0= ruleChartDatamart )
+                    // InternalChartDSL.g:500:4: ( (lv_source_12_0= ruleChartDatamart ) )
+                    // InternalChartDSL.g:501:5: (lv_source_12_0= ruleChartDatamart )
                     {
-                    // InternalChartDSL.g:389:5: (lv_source_12_0= ruleChartDatamart )
-                    // InternalChartDSL.g:390:6: lv_source_12_0= ruleChartDatamart
+                    // InternalChartDSL.g:501:5: (lv_source_12_0= ruleChartDatamart )
+                    // InternalChartDSL.g:502:6: lv_source_12_0= ruleChartDatamart
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1139,7 +1454,7 @@
 
 
     // $ANTLR start "entryRuleChartOption"
-    // InternalChartDSL.g:412:1: entryRuleChartOption returns [EObject current=null] : iv_ruleChartOption= ruleChartOption EOF ;
+    // InternalChartDSL.g:524:1: entryRuleChartOption returns [EObject current=null] : iv_ruleChartOption= ruleChartOption EOF ;
     public final EObject entryRuleChartOption() throws RecognitionException {
         EObject current = null;
 
@@ -1147,8 +1462,8 @@
 
 
         try {
-            // InternalChartDSL.g:412:52: (iv_ruleChartOption= ruleChartOption EOF )
-            // InternalChartDSL.g:413:2: iv_ruleChartOption= ruleChartOption EOF
+            // InternalChartDSL.g:524:52: (iv_ruleChartOption= ruleChartOption EOF )
+            // InternalChartDSL.g:525:2: iv_ruleChartOption= ruleChartOption EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartOptionRule()); 
@@ -1179,7 +1494,7 @@
 
 
     // $ANTLR start "ruleChartOption"
-    // InternalChartDSL.g:419:1: ruleChartOption returns [EObject current=null] : (this_ChartBar_0= ruleChartBar | this_ChartLine_1= ruleChartLine | this_ChartPie_2= ruleChartPie | this_ChartDonut_3= ruleChartDonut | this_ChartBubble_4= ruleChartBubble | this_ChartGauge_5= ruleChartGauge | this_ChartTree_6= ruleChartTree ) ;
+    // InternalChartDSL.g:531:1: ruleChartOption returns [EObject current=null] : (this_ChartBar_0= ruleChartBar | this_ChartLine_1= ruleChartLine | this_ChartPie_2= ruleChartPie | this_ChartDonut_3= ruleChartDonut | this_ChartBubble_4= ruleChartBubble | this_ChartGauge_5= ruleChartGauge | this_ChartTree_6= ruleChartTree ) ;
     public final EObject ruleChartOption() throws RecognitionException {
         EObject current = null;
 
@@ -1202,58 +1517,58 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:425:2: ( (this_ChartBar_0= ruleChartBar | this_ChartLine_1= ruleChartLine | this_ChartPie_2= ruleChartPie | this_ChartDonut_3= ruleChartDonut | this_ChartBubble_4= ruleChartBubble | this_ChartGauge_5= ruleChartGauge | this_ChartTree_6= ruleChartTree ) )
-            // InternalChartDSL.g:426:2: (this_ChartBar_0= ruleChartBar | this_ChartLine_1= ruleChartLine | this_ChartPie_2= ruleChartPie | this_ChartDonut_3= ruleChartDonut | this_ChartBubble_4= ruleChartBubble | this_ChartGauge_5= ruleChartGauge | this_ChartTree_6= ruleChartTree )
+            // InternalChartDSL.g:537:2: ( (this_ChartBar_0= ruleChartBar | this_ChartLine_1= ruleChartLine | this_ChartPie_2= ruleChartPie | this_ChartDonut_3= ruleChartDonut | this_ChartBubble_4= ruleChartBubble | this_ChartGauge_5= ruleChartGauge | this_ChartTree_6= ruleChartTree ) )
+            // InternalChartDSL.g:538:2: (this_ChartBar_0= ruleChartBar | this_ChartLine_1= ruleChartLine | this_ChartPie_2= ruleChartPie | this_ChartDonut_3= ruleChartDonut | this_ChartBubble_4= ruleChartBubble | this_ChartGauge_5= ruleChartGauge | this_ChartTree_6= ruleChartTree )
             {
-            // InternalChartDSL.g:426:2: (this_ChartBar_0= ruleChartBar | this_ChartLine_1= ruleChartLine | this_ChartPie_2= ruleChartPie | this_ChartDonut_3= ruleChartDonut | this_ChartBubble_4= ruleChartBubble | this_ChartGauge_5= ruleChartGauge | this_ChartTree_6= ruleChartTree )
-            int alt8=7;
+            // InternalChartDSL.g:538:2: (this_ChartBar_0= ruleChartBar | this_ChartLine_1= ruleChartLine | this_ChartPie_2= ruleChartPie | this_ChartDonut_3= ruleChartDonut | this_ChartBubble_4= ruleChartBubble | this_ChartGauge_5= ruleChartGauge | this_ChartTree_6= ruleChartTree )
+            int alt11=7;
             switch ( input.LA(1) ) {
-            case 22:
+            case 24:
                 {
-                alt8=1;
+                alt11=1;
                 }
                 break;
-            case 27:
+            case 29:
                 {
-                alt8=2;
-                }
-                break;
-            case 35:
-                {
-                alt8=3;
+                alt11=2;
                 }
                 break;
             case 37:
                 {
-                alt8=4;
+                alt11=3;
                 }
                 break;
-            case 38:
+            case 39:
                 {
-                alt8=5;
+                alt11=4;
                 }
                 break;
-            case 42:
+            case 40:
                 {
-                alt8=6;
+                alt11=5;
                 }
                 break;
-            case 48:
+            case 44:
                 {
-                alt8=7;
+                alt11=6;
+                }
+                break;
+            case 50:
+                {
+                alt11=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 8, 0, input);
+                    new NoViableAltException("", 11, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt8) {
+            switch (alt11) {
                 case 1 :
-                    // InternalChartDSL.g:427:3: this_ChartBar_0= ruleChartBar
+                    // InternalChartDSL.g:539:3: this_ChartBar_0= ruleChartBar
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1275,7 +1590,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:436:3: this_ChartLine_1= ruleChartLine
+                    // InternalChartDSL.g:548:3: this_ChartLine_1= ruleChartLine
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1297,7 +1612,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:445:3: this_ChartPie_2= ruleChartPie
+                    // InternalChartDSL.g:557:3: this_ChartPie_2= ruleChartPie
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1319,7 +1634,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:454:3: this_ChartDonut_3= ruleChartDonut
+                    // InternalChartDSL.g:566:3: this_ChartDonut_3= ruleChartDonut
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1341,7 +1656,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:463:3: this_ChartBubble_4= ruleChartBubble
+                    // InternalChartDSL.g:575:3: this_ChartBubble_4= ruleChartBubble
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1363,7 +1678,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:472:3: this_ChartGauge_5= ruleChartGauge
+                    // InternalChartDSL.g:584:3: this_ChartGauge_5= ruleChartGauge
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1385,7 +1700,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalChartDSL.g:481:3: this_ChartTree_6= ruleChartTree
+                    // InternalChartDSL.g:593:3: this_ChartTree_6= ruleChartTree
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1431,7 +1746,7 @@
 
 
     // $ANTLR start "entryRuleChartBar"
-    // InternalChartDSL.g:493:1: entryRuleChartBar returns [EObject current=null] : iv_ruleChartBar= ruleChartBar EOF ;
+    // InternalChartDSL.g:605:1: entryRuleChartBar returns [EObject current=null] : iv_ruleChartBar= ruleChartBar EOF ;
     public final EObject entryRuleChartBar() throws RecognitionException {
         EObject current = null;
 
@@ -1439,8 +1754,8 @@
 
 
         try {
-            // InternalChartDSL.g:493:49: (iv_ruleChartBar= ruleChartBar EOF )
-            // InternalChartDSL.g:494:2: iv_ruleChartBar= ruleChartBar EOF
+            // InternalChartDSL.g:605:49: (iv_ruleChartBar= ruleChartBar EOF )
+            // InternalChartDSL.g:606:2: iv_ruleChartBar= ruleChartBar EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartBarRule()); 
@@ -1471,7 +1786,7 @@
 
 
     // $ANTLR start "ruleChartBar"
-    // InternalChartDSL.g:500:1: ruleChartBar returns [EObject current=null] : ( () otherlv_1= 'bar' ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) ) ) ;
+    // InternalChartDSL.g:612:1: ruleChartBar returns [EObject current=null] : ( () otherlv_1= 'bar' ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) ) ) ;
     public final EObject ruleChartBar() throws RecognitionException {
         EObject current = null;
 
@@ -1485,14 +1800,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:506:2: ( ( () otherlv_1= 'bar' ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) ) ) )
-            // InternalChartDSL.g:507:2: ( () otherlv_1= 'bar' ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) ) )
+            // InternalChartDSL.g:618:2: ( ( () otherlv_1= 'bar' ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) ) ) )
+            // InternalChartDSL.g:619:2: ( () otherlv_1= 'bar' ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) ) )
             {
-            // InternalChartDSL.g:507:2: ( () otherlv_1= 'bar' ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) ) )
-            // InternalChartDSL.g:508:3: () otherlv_1= 'bar' ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) )
+            // InternalChartDSL.g:619:2: ( () otherlv_1= 'bar' ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) ) )
+            // InternalChartDSL.g:620:3: () otherlv_1= 'bar' ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) )
             {
-            // InternalChartDSL.g:508:3: ()
-            // InternalChartDSL.g:509:4: 
+            // InternalChartDSL.g:620:3: ()
+            // InternalChartDSL.g:621:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -1504,71 +1819,71 @@
 
             }
 
-            otherlv_1=(Token)match(input,22,FOLLOW_13); if (state.failed) return current;
+            otherlv_1=(Token)match(input,24,FOLLOW_18); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getChartBarAccess().getBarKeyword_1());
               		
             }
-            // InternalChartDSL.g:519:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) )
-            // InternalChartDSL.g:520:4: ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) )
+            // InternalChartDSL.g:631:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) ) )
+            // InternalChartDSL.g:632:4: ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) )
             {
-            // InternalChartDSL.g:520:4: ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) )
-            // InternalChartDSL.g:521:5: ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* )
+            // InternalChartDSL.g:632:4: ( ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* ) )
+            // InternalChartDSL.g:633:5: ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getChartBarAccess().getUnorderedGroup_2());
-            // InternalChartDSL.g:524:5: ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* )
-            // InternalChartDSL.g:525:6: ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )*
+            // InternalChartDSL.g:636:5: ( ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )* )
+            // InternalChartDSL.g:637:6: ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )*
             {
-            // InternalChartDSL.g:525:6: ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )*
-            loop9:
+            // InternalChartDSL.g:637:6: ( ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) ) )*
+            loop12:
             do {
-                int alt9=5;
-                int LA9_0 = input.LA(1);
+                int alt12=5;
+                int LA12_0 = input.LA(1);
 
-                if ( LA9_0 == 23 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
-                    alt9=1;
+                if ( LA12_0 == 25 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
+                    alt12=1;
                 }
-                else if ( LA9_0 == 24 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
-                    alt9=2;
+                else if ( LA12_0 == 26 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
+                    alt12=2;
                 }
-                else if ( LA9_0 == 25 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
-                    alt9=3;
+                else if ( LA12_0 == 27 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
+                    alt12=3;
                 }
-                else if ( LA9_0 == 26 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
-                    alt9=4;
+                else if ( LA12_0 == 28 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
+                    alt12=4;
                 }
 
 
-                switch (alt9) {
+                switch (alt12) {
             	case 1 :
-            	    // InternalChartDSL.g:526:4: ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) )
+            	    // InternalChartDSL.g:638:4: ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:526:4: ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) )
-            	    // InternalChartDSL.g:527:5: {...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) )
+            	    // InternalChartDSL.g:638:4: ({...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) ) )
+            	    // InternalChartDSL.g:639:5: {...}? => ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartBar", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0)");
             	    }
-            	    // InternalChartDSL.g:527:105: ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) )
-            	    // InternalChartDSL.g:528:6: ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) )
+            	    // InternalChartDSL.g:639:105: ( ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) ) )
+            	    // InternalChartDSL.g:640:6: ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 0);
-            	    // InternalChartDSL.g:531:9: ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) )
-            	    // InternalChartDSL.g:531:10: {...}? => ( (lv_shadow_3_0= 'shaded' ) )
+            	    // InternalChartDSL.g:643:9: ({...}? => ( (lv_shadow_3_0= 'shaded' ) ) )
+            	    // InternalChartDSL.g:643:10: {...}? => ( (lv_shadow_3_0= 'shaded' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartBar", "true");
             	    }
-            	    // InternalChartDSL.g:531:19: ( (lv_shadow_3_0= 'shaded' ) )
-            	    // InternalChartDSL.g:531:20: (lv_shadow_3_0= 'shaded' )
+            	    // InternalChartDSL.g:643:19: ( (lv_shadow_3_0= 'shaded' ) )
+            	    // InternalChartDSL.g:643:20: (lv_shadow_3_0= 'shaded' )
             	    {
-            	    // InternalChartDSL.g:531:20: (lv_shadow_3_0= 'shaded' )
-            	    // InternalChartDSL.g:532:10: lv_shadow_3_0= 'shaded'
+            	    // InternalChartDSL.g:643:20: (lv_shadow_3_0= 'shaded' )
+            	    // InternalChartDSL.g:644:10: lv_shadow_3_0= 'shaded'
             	    {
-            	    lv_shadow_3_0=(Token)match(input,23,FOLLOW_13); if (state.failed) return current;
+            	    lv_shadow_3_0=(Token)match(input,25,FOLLOW_18); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      										newLeafNode(lv_shadow_3_0, grammarAccess.getChartBarAccess().getShadowShadedKeyword_2_0_0());
@@ -1602,33 +1917,33 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalChartDSL.g:549:4: ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) )
+            	    // InternalChartDSL.g:661:4: ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:549:4: ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) )
-            	    // InternalChartDSL.g:550:5: {...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) )
+            	    // InternalChartDSL.g:661:4: ({...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) ) )
+            	    // InternalChartDSL.g:662:5: {...}? => ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartBar", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1)");
             	    }
-            	    // InternalChartDSL.g:550:105: ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) )
-            	    // InternalChartDSL.g:551:6: ({...}? => ( (lv_animated_4_0= 'animated' ) ) )
+            	    // InternalChartDSL.g:662:105: ( ({...}? => ( (lv_animated_4_0= 'animated' ) ) ) )
+            	    // InternalChartDSL.g:663:6: ({...}? => ( (lv_animated_4_0= 'animated' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 1);
-            	    // InternalChartDSL.g:554:9: ({...}? => ( (lv_animated_4_0= 'animated' ) ) )
-            	    // InternalChartDSL.g:554:10: {...}? => ( (lv_animated_4_0= 'animated' ) )
+            	    // InternalChartDSL.g:666:9: ({...}? => ( (lv_animated_4_0= 'animated' ) ) )
+            	    // InternalChartDSL.g:666:10: {...}? => ( (lv_animated_4_0= 'animated' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartBar", "true");
             	    }
-            	    // InternalChartDSL.g:554:19: ( (lv_animated_4_0= 'animated' ) )
-            	    // InternalChartDSL.g:554:20: (lv_animated_4_0= 'animated' )
+            	    // InternalChartDSL.g:666:19: ( (lv_animated_4_0= 'animated' ) )
+            	    // InternalChartDSL.g:666:20: (lv_animated_4_0= 'animated' )
             	    {
-            	    // InternalChartDSL.g:554:20: (lv_animated_4_0= 'animated' )
-            	    // InternalChartDSL.g:555:10: lv_animated_4_0= 'animated'
+            	    // InternalChartDSL.g:666:20: (lv_animated_4_0= 'animated' )
+            	    // InternalChartDSL.g:667:10: lv_animated_4_0= 'animated'
             	    {
-            	    lv_animated_4_0=(Token)match(input,24,FOLLOW_13); if (state.failed) return current;
+            	    lv_animated_4_0=(Token)match(input,26,FOLLOW_18); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      										newLeafNode(lv_animated_4_0, grammarAccess.getChartBarAccess().getAnimatedAnimatedKeyword_2_1_0());
@@ -1662,33 +1977,33 @@
             	    }
             	    break;
             	case 3 :
-            	    // InternalChartDSL.g:572:4: ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) )
+            	    // InternalChartDSL.g:684:4: ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:572:4: ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) )
-            	    // InternalChartDSL.g:573:5: {...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) )
+            	    // InternalChartDSL.g:684:4: ({...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) ) )
+            	    // InternalChartDSL.g:685:5: {...}? => ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartBar", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2)");
             	    }
-            	    // InternalChartDSL.g:573:105: ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) )
-            	    // InternalChartDSL.g:574:6: ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) )
+            	    // InternalChartDSL.g:685:105: ( ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) ) )
+            	    // InternalChartDSL.g:686:6: ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 2);
-            	    // InternalChartDSL.g:577:9: ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) )
-            	    // InternalChartDSL.g:577:10: {...}? => ( (lv_swapped_5_0= 'swapped' ) )
+            	    // InternalChartDSL.g:689:9: ({...}? => ( (lv_swapped_5_0= 'swapped' ) ) )
+            	    // InternalChartDSL.g:689:10: {...}? => ( (lv_swapped_5_0= 'swapped' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartBar", "true");
             	    }
-            	    // InternalChartDSL.g:577:19: ( (lv_swapped_5_0= 'swapped' ) )
-            	    // InternalChartDSL.g:577:20: (lv_swapped_5_0= 'swapped' )
+            	    // InternalChartDSL.g:689:19: ( (lv_swapped_5_0= 'swapped' ) )
+            	    // InternalChartDSL.g:689:20: (lv_swapped_5_0= 'swapped' )
             	    {
-            	    // InternalChartDSL.g:577:20: (lv_swapped_5_0= 'swapped' )
-            	    // InternalChartDSL.g:578:10: lv_swapped_5_0= 'swapped'
+            	    // InternalChartDSL.g:689:20: (lv_swapped_5_0= 'swapped' )
+            	    // InternalChartDSL.g:690:10: lv_swapped_5_0= 'swapped'
             	    {
-            	    lv_swapped_5_0=(Token)match(input,25,FOLLOW_13); if (state.failed) return current;
+            	    lv_swapped_5_0=(Token)match(input,27,FOLLOW_18); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      										newLeafNode(lv_swapped_5_0, grammarAccess.getChartBarAccess().getSwappedSwappedKeyword_2_2_0());
@@ -1722,33 +2037,33 @@
             	    }
             	    break;
             	case 4 :
-            	    // InternalChartDSL.g:595:4: ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) )
+            	    // InternalChartDSL.g:707:4: ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:595:4: ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) )
-            	    // InternalChartDSL.g:596:5: {...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) )
+            	    // InternalChartDSL.g:707:4: ({...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) ) )
+            	    // InternalChartDSL.g:708:5: {...}? => ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartBar", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3)");
             	    }
-            	    // InternalChartDSL.g:596:105: ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) )
-            	    // InternalChartDSL.g:597:6: ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) )
+            	    // InternalChartDSL.g:708:105: ( ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) ) )
+            	    // InternalChartDSL.g:709:6: ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartBarAccess().getUnorderedGroup_2(), 3);
-            	    // InternalChartDSL.g:600:9: ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) )
-            	    // InternalChartDSL.g:600:10: {...}? => ( (lv_stacked_6_0= 'stacked' ) )
+            	    // InternalChartDSL.g:712:9: ({...}? => ( (lv_stacked_6_0= 'stacked' ) ) )
+            	    // InternalChartDSL.g:712:10: {...}? => ( (lv_stacked_6_0= 'stacked' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartBar", "true");
             	    }
-            	    // InternalChartDSL.g:600:19: ( (lv_stacked_6_0= 'stacked' ) )
-            	    // InternalChartDSL.g:600:20: (lv_stacked_6_0= 'stacked' )
+            	    // InternalChartDSL.g:712:19: ( (lv_stacked_6_0= 'stacked' ) )
+            	    // InternalChartDSL.g:712:20: (lv_stacked_6_0= 'stacked' )
             	    {
-            	    // InternalChartDSL.g:600:20: (lv_stacked_6_0= 'stacked' )
-            	    // InternalChartDSL.g:601:10: lv_stacked_6_0= 'stacked'
+            	    // InternalChartDSL.g:712:20: (lv_stacked_6_0= 'stacked' )
+            	    // InternalChartDSL.g:713:10: lv_stacked_6_0= 'stacked'
             	    {
-            	    lv_stacked_6_0=(Token)match(input,26,FOLLOW_13); if (state.failed) return current;
+            	    lv_stacked_6_0=(Token)match(input,28,FOLLOW_18); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      										newLeafNode(lv_stacked_6_0, grammarAccess.getChartBarAccess().getStackedStackedKeyword_2_3_0());
@@ -1783,7 +2098,7 @@
             	    break;
 
             	default :
-            	    break loop9;
+            	    break loop12;
                 }
             } while (true);
 
@@ -1822,7 +2137,7 @@
 
 
     // $ANTLR start "entryRuleChartLine"
-    // InternalChartDSL.g:629:1: entryRuleChartLine returns [EObject current=null] : iv_ruleChartLine= ruleChartLine EOF ;
+    // InternalChartDSL.g:741:1: entryRuleChartLine returns [EObject current=null] : iv_ruleChartLine= ruleChartLine EOF ;
     public final EObject entryRuleChartLine() throws RecognitionException {
         EObject current = null;
 
@@ -1830,8 +2145,8 @@
 
 
         try {
-            // InternalChartDSL.g:629:50: (iv_ruleChartLine= ruleChartLine EOF )
-            // InternalChartDSL.g:630:2: iv_ruleChartLine= ruleChartLine EOF
+            // InternalChartDSL.g:741:50: (iv_ruleChartLine= ruleChartLine EOF )
+            // InternalChartDSL.g:742:2: iv_ruleChartLine= ruleChartLine EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartLineRule()); 
@@ -1862,7 +2177,7 @@
 
 
     // $ANTLR start "ruleChartLine"
-    // InternalChartDSL.g:636:1: ruleChartLine returns [EObject current=null] : ( () otherlv_1= 'line' ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) ) ) ;
+    // InternalChartDSL.g:748:1: ruleChartLine returns [EObject current=null] : ( () otherlv_1= 'line' ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) ) ) ;
     public final EObject ruleChartLine() throws RecognitionException {
         EObject current = null;
 
@@ -1880,14 +2195,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:642:2: ( ( () otherlv_1= 'line' ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) ) ) )
-            // InternalChartDSL.g:643:2: ( () otherlv_1= 'line' ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) ) )
+            // InternalChartDSL.g:754:2: ( ( () otherlv_1= 'line' ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) ) ) )
+            // InternalChartDSL.g:755:2: ( () otherlv_1= 'line' ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) ) )
             {
-            // InternalChartDSL.g:643:2: ( () otherlv_1= 'line' ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) ) )
-            // InternalChartDSL.g:644:3: () otherlv_1= 'line' ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) )
+            // InternalChartDSL.g:755:2: ( () otherlv_1= 'line' ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) ) )
+            // InternalChartDSL.g:756:3: () otherlv_1= 'line' ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) )
             {
-            // InternalChartDSL.g:644:3: ()
-            // InternalChartDSL.g:645:4: 
+            // InternalChartDSL.g:756:3: ()
+            // InternalChartDSL.g:757:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -1899,77 +2214,77 @@
 
             }
 
-            otherlv_1=(Token)match(input,27,FOLLOW_14); if (state.failed) return current;
+            otherlv_1=(Token)match(input,29,FOLLOW_19); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getChartLineAccess().getLineKeyword_1());
               		
             }
-            // InternalChartDSL.g:655:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) )
-            // InternalChartDSL.g:656:4: ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) )
+            // InternalChartDSL.g:767:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) ) )
+            // InternalChartDSL.g:768:4: ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) )
             {
-            // InternalChartDSL.g:656:4: ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) )
-            // InternalChartDSL.g:657:5: ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* )
+            // InternalChartDSL.g:768:4: ( ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* ) )
+            // InternalChartDSL.g:769:5: ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getChartLineAccess().getUnorderedGroup_2());
-            // InternalChartDSL.g:660:5: ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* )
-            // InternalChartDSL.g:661:6: ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )*
+            // InternalChartDSL.g:772:5: ( ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )* )
+            // InternalChartDSL.g:773:6: ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )*
             {
-            // InternalChartDSL.g:661:6: ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )*
-            loop12:
+            // InternalChartDSL.g:773:6: ( ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) ) )*
+            loop15:
             do {
-                int alt12=7;
-                int LA12_0 = input.LA(1);
+                int alt15=7;
+                int LA15_0 = input.LA(1);
 
-                if ( LA12_0 == 24 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
-                    alt12=1;
+                if ( LA15_0 == 26 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
+                    alt15=1;
                 }
-                else if ( LA12_0 == 28 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
-                    alt12=2;
+                else if ( LA15_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
+                    alt15=2;
                 }
-                else if ( LA12_0 == 29 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
-                    alt12=3;
+                else if ( LA15_0 == 31 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
+                    alt15=3;
                 }
-                else if ( LA12_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
-                    alt12=4;
+                else if ( LA15_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
+                    alt15=4;
                 }
-                else if ( LA12_0 == 33 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
-                    alt12=5;
+                else if ( LA15_0 == 35 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
+                    alt15=5;
                 }
-                else if ( LA12_0 == 34 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
-                    alt12=6;
+                else if ( LA15_0 == 36 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
+                    alt15=6;
                 }
 
 
-                switch (alt12) {
+                switch (alt15) {
             	case 1 :
-            	    // InternalChartDSL.g:662:4: ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) )
+            	    // InternalChartDSL.g:774:4: ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:662:4: ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) )
-            	    // InternalChartDSL.g:663:5: {...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) )
+            	    // InternalChartDSL.g:774:4: ({...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) ) )
+            	    // InternalChartDSL.g:775:5: {...}? => ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0)");
             	    }
-            	    // InternalChartDSL.g:663:106: ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) )
-            	    // InternalChartDSL.g:664:6: ({...}? => ( (lv_animated_3_0= 'animated' ) ) )
+            	    // InternalChartDSL.g:775:106: ( ({...}? => ( (lv_animated_3_0= 'animated' ) ) ) )
+            	    // InternalChartDSL.g:776:6: ({...}? => ( (lv_animated_3_0= 'animated' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 0);
-            	    // InternalChartDSL.g:667:9: ({...}? => ( (lv_animated_3_0= 'animated' ) ) )
-            	    // InternalChartDSL.g:667:10: {...}? => ( (lv_animated_3_0= 'animated' ) )
+            	    // InternalChartDSL.g:779:9: ({...}? => ( (lv_animated_3_0= 'animated' ) ) )
+            	    // InternalChartDSL.g:779:10: {...}? => ( (lv_animated_3_0= 'animated' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "true");
             	    }
-            	    // InternalChartDSL.g:667:19: ( (lv_animated_3_0= 'animated' ) )
-            	    // InternalChartDSL.g:667:20: (lv_animated_3_0= 'animated' )
+            	    // InternalChartDSL.g:779:19: ( (lv_animated_3_0= 'animated' ) )
+            	    // InternalChartDSL.g:779:20: (lv_animated_3_0= 'animated' )
             	    {
-            	    // InternalChartDSL.g:667:20: (lv_animated_3_0= 'animated' )
-            	    // InternalChartDSL.g:668:10: lv_animated_3_0= 'animated'
+            	    // InternalChartDSL.g:779:20: (lv_animated_3_0= 'animated' )
+            	    // InternalChartDSL.g:780:10: lv_animated_3_0= 'animated'
             	    {
-            	    lv_animated_3_0=(Token)match(input,24,FOLLOW_14); if (state.failed) return current;
+            	    lv_animated_3_0=(Token)match(input,26,FOLLOW_19); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      										newLeafNode(lv_animated_3_0, grammarAccess.getChartLineAccess().getAnimatedAnimatedKeyword_2_0_0());
@@ -2003,33 +2318,33 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalChartDSL.g:685:4: ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) )
+            	    // InternalChartDSL.g:797:4: ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:685:4: ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) )
-            	    // InternalChartDSL.g:686:5: {...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) )
+            	    // InternalChartDSL.g:797:4: ({...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) ) )
+            	    // InternalChartDSL.g:798:5: {...}? => ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1)");
             	    }
-            	    // InternalChartDSL.g:686:106: ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) )
-            	    // InternalChartDSL.g:687:6: ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) )
+            	    // InternalChartDSL.g:798:106: ( ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) ) )
+            	    // InternalChartDSL.g:799:6: ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 1);
-            	    // InternalChartDSL.g:690:9: ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) )
-            	    // InternalChartDSL.g:690:10: {...}? => ( (lv_showMarker_4_0= 'showMarker' ) )
+            	    // InternalChartDSL.g:802:9: ({...}? => ( (lv_showMarker_4_0= 'showMarker' ) ) )
+            	    // InternalChartDSL.g:802:10: {...}? => ( (lv_showMarker_4_0= 'showMarker' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "true");
             	    }
-            	    // InternalChartDSL.g:690:19: ( (lv_showMarker_4_0= 'showMarker' ) )
-            	    // InternalChartDSL.g:690:20: (lv_showMarker_4_0= 'showMarker' )
+            	    // InternalChartDSL.g:802:19: ( (lv_showMarker_4_0= 'showMarker' ) )
+            	    // InternalChartDSL.g:802:20: (lv_showMarker_4_0= 'showMarker' )
             	    {
-            	    // InternalChartDSL.g:690:20: (lv_showMarker_4_0= 'showMarker' )
-            	    // InternalChartDSL.g:691:10: lv_showMarker_4_0= 'showMarker'
+            	    // InternalChartDSL.g:802:20: (lv_showMarker_4_0= 'showMarker' )
+            	    // InternalChartDSL.g:803:10: lv_showMarker_4_0= 'showMarker'
             	    {
-            	    lv_showMarker_4_0=(Token)match(input,28,FOLLOW_14); if (state.failed) return current;
+            	    lv_showMarker_4_0=(Token)match(input,30,FOLLOW_19); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      										newLeafNode(lv_showMarker_4_0, grammarAccess.getChartLineAccess().getShowMarkerShowMarkerKeyword_2_1_0());
@@ -2063,33 +2378,33 @@
             	    }
             	    break;
             	case 3 :
-            	    // InternalChartDSL.g:708:4: ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) )
+            	    // InternalChartDSL.g:820:4: ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:708:4: ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) )
-            	    // InternalChartDSL.g:709:5: {...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) )
+            	    // InternalChartDSL.g:820:4: ({...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) ) )
+            	    // InternalChartDSL.g:821:5: {...}? => ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2)");
             	    }
-            	    // InternalChartDSL.g:709:106: ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) )
-            	    // InternalChartDSL.g:710:6: ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) )
+            	    // InternalChartDSL.g:821:106: ( ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) ) )
+            	    // InternalChartDSL.g:822:6: ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 2);
-            	    // InternalChartDSL.g:713:9: ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) )
-            	    // InternalChartDSL.g:713:10: {...}? => ( (lv_trendLine_5_0= 'trendLine' ) )
+            	    // InternalChartDSL.g:825:9: ({...}? => ( (lv_trendLine_5_0= 'trendLine' ) ) )
+            	    // InternalChartDSL.g:825:10: {...}? => ( (lv_trendLine_5_0= 'trendLine' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "true");
             	    }
-            	    // InternalChartDSL.g:713:19: ( (lv_trendLine_5_0= 'trendLine' ) )
-            	    // InternalChartDSL.g:713:20: (lv_trendLine_5_0= 'trendLine' )
+            	    // InternalChartDSL.g:825:19: ( (lv_trendLine_5_0= 'trendLine' ) )
+            	    // InternalChartDSL.g:825:20: (lv_trendLine_5_0= 'trendLine' )
             	    {
-            	    // InternalChartDSL.g:713:20: (lv_trendLine_5_0= 'trendLine' )
-            	    // InternalChartDSL.g:714:10: lv_trendLine_5_0= 'trendLine'
+            	    // InternalChartDSL.g:825:20: (lv_trendLine_5_0= 'trendLine' )
+            	    // InternalChartDSL.g:826:10: lv_trendLine_5_0= 'trendLine'
             	    {
-            	    lv_trendLine_5_0=(Token)match(input,29,FOLLOW_14); if (state.failed) return current;
+            	    lv_trendLine_5_0=(Token)match(input,31,FOLLOW_19); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      										newLeafNode(lv_trendLine_5_0, grammarAccess.getChartLineAccess().getTrendLineTrendLineKeyword_2_2_0());
@@ -2123,36 +2438,36 @@
             	    }
             	    break;
             	case 4 :
-            	    // InternalChartDSL.g:731:4: ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) )
+            	    // InternalChartDSL.g:843:4: ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) )
             	    {
-            	    // InternalChartDSL.g:731:4: ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) )
-            	    // InternalChartDSL.g:732:5: {...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) )
+            	    // InternalChartDSL.g:843:4: ({...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) ) )
+            	    // InternalChartDSL.g:844:5: {...}? => ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3)");
             	    }
-            	    // InternalChartDSL.g:732:106: ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) )
-            	    // InternalChartDSL.g:733:6: ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) )
+            	    // InternalChartDSL.g:844:106: ( ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) ) )
+            	    // InternalChartDSL.g:845:6: ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 3);
-            	    // InternalChartDSL.g:736:9: ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) )
-            	    // InternalChartDSL.g:736:10: {...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? )
+            	    // InternalChartDSL.g:848:9: ({...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? ) )
+            	    // InternalChartDSL.g:848:10: {...}? => ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "true");
             	    }
-            	    // InternalChartDSL.g:736:19: ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? )
-            	    // InternalChartDSL.g:736:20: ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )?
+            	    // InternalChartDSL.g:848:19: ( ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )? )
+            	    // InternalChartDSL.g:848:20: ( (lv_cursor_6_0= 'cursor' ) ) ( (lv_zoom_7_0= 'zoom' ) )? ( (lv_tooltip_8_0= 'tooltip' ) )?
             	    {
-            	    // InternalChartDSL.g:736:20: ( (lv_cursor_6_0= 'cursor' ) )
-            	    // InternalChartDSL.g:737:10: (lv_cursor_6_0= 'cursor' )
+            	    // InternalChartDSL.g:848:20: ( (lv_cursor_6_0= 'cursor' ) )
+            	    // InternalChartDSL.g:849:10: (lv_cursor_6_0= 'cursor' )
             	    {
-            	    // InternalChartDSL.g:737:10: (lv_cursor_6_0= 'cursor' )
-            	    // InternalChartDSL.g:738:11: lv_cursor_6_0= 'cursor'
+            	    // InternalChartDSL.g:849:10: (lv_cursor_6_0= 'cursor' )
+            	    // InternalChartDSL.g:850:11: lv_cursor_6_0= 'cursor'
             	    {
-            	    lv_cursor_6_0=(Token)match(input,30,FOLLOW_15); if (state.failed) return current;
+            	    lv_cursor_6_0=(Token)match(input,32,FOLLOW_20); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      											newLeafNode(lv_cursor_6_0, grammarAccess.getChartLineAccess().getCursorCursorKeyword_2_3_0_0());
@@ -2172,21 +2487,21 @@
 
             	    }
 
-            	    // InternalChartDSL.g:750:9: ( (lv_zoom_7_0= 'zoom' ) )?
-            	    int alt10=2;
-            	    int LA10_0 = input.LA(1);
+            	    // InternalChartDSL.g:862:9: ( (lv_zoom_7_0= 'zoom' ) )?
+            	    int alt13=2;
+            	    int LA13_0 = input.LA(1);
 
-            	    if ( (LA10_0==31) ) {
-            	        alt10=1;
+            	    if ( (LA13_0==33) ) {
+            	        alt13=1;
             	    }
-            	    switch (alt10) {
+            	    switch (alt13) {
             	        case 1 :
-            	            // InternalChartDSL.g:751:10: (lv_zoom_7_0= 'zoom' )
+            	            // InternalChartDSL.g:863:10: (lv_zoom_7_0= 'zoom' )
             	            {
-            	            // InternalChartDSL.g:751:10: (lv_zoom_7_0= 'zoom' )
-            	            // InternalChartDSL.g:752:11: lv_zoom_7_0= 'zoom'
+            	            // InternalChartDSL.g:863:10: (lv_zoom_7_0= 'zoom' )
+            	            // InternalChartDSL.g:864:11: lv_zoom_7_0= 'zoom'
             	            {
-            	            lv_zoom_7_0=(Token)match(input,31,FOLLOW_16); if (state.failed) return current;
+            	            lv_zoom_7_0=(Token)match(input,33,FOLLOW_21); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              											newLeafNode(lv_zoom_7_0, grammarAccess.getChartLineAccess().getZoomZoomKeyword_2_3_1_0());
@@ -2209,21 +2524,21 @@
 
             	    }
 
-            	    // InternalChartDSL.g:764:9: ( (lv_tooltip_8_0= 'tooltip' ) )?
-            	    int alt11=2;
-            	    int LA11_0 = input.LA(1);
+            	    // InternalChartDSL.g:876:9: ( (lv_tooltip_8_0= 'tooltip' ) )?
+            	    int alt14=2;
+            	    int LA14_0 = input.LA(1);
 
-            	    if ( (LA11_0==32) ) {
-            	        alt11=1;
+            	    if ( (LA14_0==34) ) {
+            	        alt14=1;
             	    }
-            	    switch (alt11) {
+            	    switch (alt14) {
             	        case 1 :
-            	            // InternalChartDSL.g:765:10: (lv_tooltip_8_0= 'tooltip' )
+            	            // InternalChartDSL.g:877:10: (lv_tooltip_8_0= 'tooltip' )
             	            {
-            	            // InternalChartDSL.g:765:10: (lv_tooltip_8_0= 'tooltip' )
-            	            // InternalChartDSL.g:766:11: lv_tooltip_8_0= 'tooltip'
+            	            // InternalChartDSL.g:877:10: (lv_tooltip_8_0= 'tooltip' )
+            	            // InternalChartDSL.g:878:11: lv_tooltip_8_0= 'tooltip'
             	            {
-            	            lv_tooltip_8_0=(Token)match(input,32,FOLLOW_14); if (state.failed) return current;
+            	            lv_tooltip_8_0=(Token)match(input,34,FOLLOW_19); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              											newLeafNode(lv_tooltip_8_0, grammarAccess.getChartLineAccess().getTooltipTooltipKeyword_2_3_2_0());
@@ -2263,33 +2578,33 @@
             	    }
             	    break;
             	case 5 :
-            	    // InternalChartDSL.g:784:4: ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) )
+            	    // InternalChartDSL.g:896:4: ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:784:4: ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) )
-            	    // InternalChartDSL.g:785:5: {...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) )
+            	    // InternalChartDSL.g:896:4: ({...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) ) )
+            	    // InternalChartDSL.g:897:5: {...}? => ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4)");
             	    }
-            	    // InternalChartDSL.g:785:106: ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) )
-            	    // InternalChartDSL.g:786:6: ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) )
+            	    // InternalChartDSL.g:897:106: ( ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) ) )
+            	    // InternalChartDSL.g:898:6: ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 4);
-            	    // InternalChartDSL.g:789:9: ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) )
-            	    // InternalChartDSL.g:789:10: {...}? => ( (lv_fillToZero_9_0= 'fillZero' ) )
+            	    // InternalChartDSL.g:901:9: ({...}? => ( (lv_fillToZero_9_0= 'fillZero' ) ) )
+            	    // InternalChartDSL.g:901:10: {...}? => ( (lv_fillToZero_9_0= 'fillZero' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "true");
             	    }
-            	    // InternalChartDSL.g:789:19: ( (lv_fillToZero_9_0= 'fillZero' ) )
-            	    // InternalChartDSL.g:789:20: (lv_fillToZero_9_0= 'fillZero' )
+            	    // InternalChartDSL.g:901:19: ( (lv_fillToZero_9_0= 'fillZero' ) )
+            	    // InternalChartDSL.g:901:20: (lv_fillToZero_9_0= 'fillZero' )
             	    {
-            	    // InternalChartDSL.g:789:20: (lv_fillToZero_9_0= 'fillZero' )
-            	    // InternalChartDSL.g:790:10: lv_fillToZero_9_0= 'fillZero'
+            	    // InternalChartDSL.g:901:20: (lv_fillToZero_9_0= 'fillZero' )
+            	    // InternalChartDSL.g:902:10: lv_fillToZero_9_0= 'fillZero'
             	    {
-            	    lv_fillToZero_9_0=(Token)match(input,33,FOLLOW_14); if (state.failed) return current;
+            	    lv_fillToZero_9_0=(Token)match(input,35,FOLLOW_19); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      										newLeafNode(lv_fillToZero_9_0, grammarAccess.getChartLineAccess().getFillToZeroFillZeroKeyword_2_4_0());
@@ -2323,33 +2638,33 @@
             	    }
             	    break;
             	case 6 :
-            	    // InternalChartDSL.g:807:4: ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) )
+            	    // InternalChartDSL.g:919:4: ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:807:4: ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) )
-            	    // InternalChartDSL.g:808:5: {...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) )
+            	    // InternalChartDSL.g:919:4: ({...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) ) )
+            	    // InternalChartDSL.g:920:5: {...}? => ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5)");
             	    }
-            	    // InternalChartDSL.g:808:106: ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) )
-            	    // InternalChartDSL.g:809:6: ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) )
+            	    // InternalChartDSL.g:920:106: ( ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) ) )
+            	    // InternalChartDSL.g:921:6: ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartLineAccess().getUnorderedGroup_2(), 5);
-            	    // InternalChartDSL.g:812:9: ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) )
-            	    // InternalChartDSL.g:812:10: {...}? => ( (lv_fillArea_10_0= 'filled' ) )
+            	    // InternalChartDSL.g:924:9: ({...}? => ( (lv_fillArea_10_0= 'filled' ) ) )
+            	    // InternalChartDSL.g:924:10: {...}? => ( (lv_fillArea_10_0= 'filled' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartLine", "true");
             	    }
-            	    // InternalChartDSL.g:812:19: ( (lv_fillArea_10_0= 'filled' ) )
-            	    // InternalChartDSL.g:812:20: (lv_fillArea_10_0= 'filled' )
+            	    // InternalChartDSL.g:924:19: ( (lv_fillArea_10_0= 'filled' ) )
+            	    // InternalChartDSL.g:924:20: (lv_fillArea_10_0= 'filled' )
             	    {
-            	    // InternalChartDSL.g:812:20: (lv_fillArea_10_0= 'filled' )
-            	    // InternalChartDSL.g:813:10: lv_fillArea_10_0= 'filled'
+            	    // InternalChartDSL.g:924:20: (lv_fillArea_10_0= 'filled' )
+            	    // InternalChartDSL.g:925:10: lv_fillArea_10_0= 'filled'
             	    {
-            	    lv_fillArea_10_0=(Token)match(input,34,FOLLOW_14); if (state.failed) return current;
+            	    lv_fillArea_10_0=(Token)match(input,36,FOLLOW_19); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      										newLeafNode(lv_fillArea_10_0, grammarAccess.getChartLineAccess().getFillAreaFilledKeyword_2_5_0());
@@ -2384,7 +2699,7 @@
             	    break;
 
             	default :
-            	    break loop12;
+            	    break loop15;
                 }
             } while (true);
 
@@ -2423,7 +2738,7 @@
 
 
     // $ANTLR start "entryRuleChartPie"
-    // InternalChartDSL.g:841:1: entryRuleChartPie returns [EObject current=null] : iv_ruleChartPie= ruleChartPie EOF ;
+    // InternalChartDSL.g:953:1: entryRuleChartPie returns [EObject current=null] : iv_ruleChartPie= ruleChartPie EOF ;
     public final EObject entryRuleChartPie() throws RecognitionException {
         EObject current = null;
 
@@ -2431,8 +2746,8 @@
 
 
         try {
-            // InternalChartDSL.g:841:49: (iv_ruleChartPie= ruleChartPie EOF )
-            // InternalChartDSL.g:842:2: iv_ruleChartPie= ruleChartPie EOF
+            // InternalChartDSL.g:953:49: (iv_ruleChartPie= ruleChartPie EOF )
+            // InternalChartDSL.g:954:2: iv_ruleChartPie= ruleChartPie EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartPieRule()); 
@@ -2463,7 +2778,7 @@
 
 
     // $ANTLR start "ruleChartPie"
-    // InternalChartDSL.g:848:1: ruleChartPie returns [EObject current=null] : ( () otherlv_1= 'pie' ( (lv_empty_2_0= 'empty' ) )? ) ;
+    // InternalChartDSL.g:960:1: ruleChartPie returns [EObject current=null] : ( () otherlv_1= 'pie' ( (lv_empty_2_0= 'empty' ) )? ) ;
     public final EObject ruleChartPie() throws RecognitionException {
         EObject current = null;
 
@@ -2474,14 +2789,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:854:2: ( ( () otherlv_1= 'pie' ( (lv_empty_2_0= 'empty' ) )? ) )
-            // InternalChartDSL.g:855:2: ( () otherlv_1= 'pie' ( (lv_empty_2_0= 'empty' ) )? )
+            // InternalChartDSL.g:966:2: ( ( () otherlv_1= 'pie' ( (lv_empty_2_0= 'empty' ) )? ) )
+            // InternalChartDSL.g:967:2: ( () otherlv_1= 'pie' ( (lv_empty_2_0= 'empty' ) )? )
             {
-            // InternalChartDSL.g:855:2: ( () otherlv_1= 'pie' ( (lv_empty_2_0= 'empty' ) )? )
-            // InternalChartDSL.g:856:3: () otherlv_1= 'pie' ( (lv_empty_2_0= 'empty' ) )?
+            // InternalChartDSL.g:967:2: ( () otherlv_1= 'pie' ( (lv_empty_2_0= 'empty' ) )? )
+            // InternalChartDSL.g:968:3: () otherlv_1= 'pie' ( (lv_empty_2_0= 'empty' ) )?
             {
-            // InternalChartDSL.g:856:3: ()
-            // InternalChartDSL.g:857:4: 
+            // InternalChartDSL.g:968:3: ()
+            // InternalChartDSL.g:969:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -2493,27 +2808,27 @@
 
             }
 
-            otherlv_1=(Token)match(input,35,FOLLOW_17); if (state.failed) return current;
+            otherlv_1=(Token)match(input,37,FOLLOW_22); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getChartPieAccess().getPieKeyword_1());
               		
             }
-            // InternalChartDSL.g:867:3: ( (lv_empty_2_0= 'empty' ) )?
-            int alt13=2;
-            int LA13_0 = input.LA(1);
+            // InternalChartDSL.g:979:3: ( (lv_empty_2_0= 'empty' ) )?
+            int alt16=2;
+            int LA16_0 = input.LA(1);
 
-            if ( (LA13_0==36) ) {
-                alt13=1;
+            if ( (LA16_0==38) ) {
+                alt16=1;
             }
-            switch (alt13) {
+            switch (alt16) {
                 case 1 :
-                    // InternalChartDSL.g:868:4: (lv_empty_2_0= 'empty' )
+                    // InternalChartDSL.g:980:4: (lv_empty_2_0= 'empty' )
                     {
-                    // InternalChartDSL.g:868:4: (lv_empty_2_0= 'empty' )
-                    // InternalChartDSL.g:869:5: lv_empty_2_0= 'empty'
+                    // InternalChartDSL.g:980:4: (lv_empty_2_0= 'empty' )
+                    // InternalChartDSL.g:981:5: lv_empty_2_0= 'empty'
                     {
-                    lv_empty_2_0=(Token)match(input,36,FOLLOW_2); if (state.failed) return current;
+                    lv_empty_2_0=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(lv_empty_2_0, grammarAccess.getChartPieAccess().getEmptyEmptyKeyword_2_0());
@@ -2561,7 +2876,7 @@
 
 
     // $ANTLR start "entryRuleChartDonut"
-    // InternalChartDSL.g:885:1: entryRuleChartDonut returns [EObject current=null] : iv_ruleChartDonut= ruleChartDonut EOF ;
+    // InternalChartDSL.g:997:1: entryRuleChartDonut returns [EObject current=null] : iv_ruleChartDonut= ruleChartDonut EOF ;
     public final EObject entryRuleChartDonut() throws RecognitionException {
         EObject current = null;
 
@@ -2569,8 +2884,8 @@
 
 
         try {
-            // InternalChartDSL.g:885:51: (iv_ruleChartDonut= ruleChartDonut EOF )
-            // InternalChartDSL.g:886:2: iv_ruleChartDonut= ruleChartDonut EOF
+            // InternalChartDSL.g:997:51: (iv_ruleChartDonut= ruleChartDonut EOF )
+            // InternalChartDSL.g:998:2: iv_ruleChartDonut= ruleChartDonut EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartDonutRule()); 
@@ -2601,7 +2916,7 @@
 
 
     // $ANTLR start "ruleChartDonut"
-    // InternalChartDSL.g:892:1: ruleChartDonut returns [EObject current=null] : ( () otherlv_1= 'donut' ) ;
+    // InternalChartDSL.g:1004:1: ruleChartDonut returns [EObject current=null] : ( () otherlv_1= 'donut' ) ;
     public final EObject ruleChartDonut() throws RecognitionException {
         EObject current = null;
 
@@ -2611,14 +2926,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:898:2: ( ( () otherlv_1= 'donut' ) )
-            // InternalChartDSL.g:899:2: ( () otherlv_1= 'donut' )
+            // InternalChartDSL.g:1010:2: ( ( () otherlv_1= 'donut' ) )
+            // InternalChartDSL.g:1011:2: ( () otherlv_1= 'donut' )
             {
-            // InternalChartDSL.g:899:2: ( () otherlv_1= 'donut' )
-            // InternalChartDSL.g:900:3: () otherlv_1= 'donut'
+            // InternalChartDSL.g:1011:2: ( () otherlv_1= 'donut' )
+            // InternalChartDSL.g:1012:3: () otherlv_1= 'donut'
             {
-            // InternalChartDSL.g:900:3: ()
-            // InternalChartDSL.g:901:4: 
+            // InternalChartDSL.g:1012:3: ()
+            // InternalChartDSL.g:1013:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -2630,7 +2945,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,37,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,39,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getChartDonutAccess().getDonutKeyword_1());
@@ -2661,7 +2976,7 @@
 
 
     // $ANTLR start "entryRuleChartBubble"
-    // InternalChartDSL.g:915:1: entryRuleChartBubble returns [EObject current=null] : iv_ruleChartBubble= ruleChartBubble EOF ;
+    // InternalChartDSL.g:1027:1: entryRuleChartBubble returns [EObject current=null] : iv_ruleChartBubble= ruleChartBubble EOF ;
     public final EObject entryRuleChartBubble() throws RecognitionException {
         EObject current = null;
 
@@ -2669,8 +2984,8 @@
 
 
         try {
-            // InternalChartDSL.g:915:52: (iv_ruleChartBubble= ruleChartBubble EOF )
-            // InternalChartDSL.g:916:2: iv_ruleChartBubble= ruleChartBubble EOF
+            // InternalChartDSL.g:1027:52: (iv_ruleChartBubble= ruleChartBubble EOF )
+            // InternalChartDSL.g:1028:2: iv_ruleChartBubble= ruleChartBubble EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartBubbleRule()); 
@@ -2701,7 +3016,7 @@
 
 
     // $ANTLR start "ruleChartBubble"
-    // InternalChartDSL.g:922:1: ruleChartBubble returns [EObject current=null] : ( () otherlv_1= 'bubble' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )? ) ;
+    // InternalChartDSL.g:1034:1: ruleChartBubble returns [EObject current=null] : ( () otherlv_1= 'bubble' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )? ) ;
     public final EObject ruleChartBubble() throws RecognitionException {
         EObject current = null;
 
@@ -2716,14 +3031,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:928:2: ( ( () otherlv_1= 'bubble' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )? ) )
-            // InternalChartDSL.g:929:2: ( () otherlv_1= 'bubble' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )? )
+            // InternalChartDSL.g:1040:2: ( ( () otherlv_1= 'bubble' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )? ) )
+            // InternalChartDSL.g:1041:2: ( () otherlv_1= 'bubble' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )? )
             {
-            // InternalChartDSL.g:929:2: ( () otherlv_1= 'bubble' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )? )
-            // InternalChartDSL.g:930:3: () otherlv_1= 'bubble' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )?
+            // InternalChartDSL.g:1041:2: ( () otherlv_1= 'bubble' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )? )
+            // InternalChartDSL.g:1042:3: () otherlv_1= 'bubble' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )?
             {
-            // InternalChartDSL.g:930:3: ()
-            // InternalChartDSL.g:931:4: 
+            // InternalChartDSL.g:1042:3: ()
+            // InternalChartDSL.g:1043:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -2735,77 +3050,77 @@
 
             }
 
-            otherlv_1=(Token)match(input,38,FOLLOW_18); if (state.failed) return current;
+            otherlv_1=(Token)match(input,40,FOLLOW_23); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getChartBubbleAccess().getBubbleKeyword_1());
               		
             }
-            // InternalChartDSL.g:941:3: ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )?
-            int alt16=2;
-            int LA16_0 = input.LA(1);
+            // InternalChartDSL.g:1053:3: ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) ) )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
 
-            if ( ((LA16_0>=39 && LA16_0<=41)) ) {
-                alt16=1;
+            if ( ((LA19_0>=41 && LA19_0<=43)) ) {
+                alt19=1;
             }
-            switch (alt16) {
+            switch (alt19) {
                 case 1 :
-                    // InternalChartDSL.g:942:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) )
+                    // InternalChartDSL.g:1054:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) )
                     {
-                    // InternalChartDSL.g:942:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) )
-                    // InternalChartDSL.g:943:5: ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?)
+                    // InternalChartDSL.g:1054:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?) )
+                    // InternalChartDSL.g:1055:5: ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?)
                     {
                     getUnorderedGroupHelper().enter(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2());
-                    // InternalChartDSL.g:946:5: ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?)
-                    // InternalChartDSL.g:947:6: ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?
+                    // InternalChartDSL.g:1058:5: ( ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?)
+                    // InternalChartDSL.g:1059:6: ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+ {...}?
                     {
-                    // InternalChartDSL.g:947:6: ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+
-                    int cnt15=0;
-                    loop15:
+                    // InternalChartDSL.g:1059:6: ( ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) ) )+
+                    int cnt18=0;
+                    loop18:
                     do {
-                        int alt15=3;
-                        int LA15_0 = input.LA(1);
+                        int alt18=3;
+                        int LA18_0 = input.LA(1);
 
-                        if ( LA15_0 == 39 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
-                            alt15=1;
+                        if ( LA18_0 == 41 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
+                            alt18=1;
                         }
-                        else if ( LA15_0 >= 40 && LA15_0 <= 41 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
-                            alt15=2;
+                        else if ( LA18_0 >= 42 && LA18_0 <= 43 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
+                            alt18=2;
                         }
 
 
-                        switch (alt15) {
+                        switch (alt18) {
                     	case 1 :
-                    	    // InternalChartDSL.g:948:4: ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) )
+                    	    // InternalChartDSL.g:1060:4: ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) )
                     	    {
-                    	    // InternalChartDSL.g:948:4: ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) )
-                    	    // InternalChartDSL.g:949:5: {...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) )
+                    	    // InternalChartDSL.g:1060:4: ({...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) ) )
+                    	    // InternalChartDSL.g:1061:5: {...}? => ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) )
                     	    {
                     	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0) ) {
                     	        if (state.backtracking>0) {state.failed=true; return current;}
                     	        throw new FailedPredicateException(input, "ruleChartBubble", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0)");
                     	    }
-                    	    // InternalChartDSL.g:949:108: ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) )
-                    	    // InternalChartDSL.g:950:6: ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) )
+                    	    // InternalChartDSL.g:1061:108: ( ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) ) )
+                    	    // InternalChartDSL.g:1062:6: ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) )
                     	    {
                     	    getUnorderedGroupHelper().select(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 0);
-                    	    // InternalChartDSL.g:953:9: ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) )
-                    	    // InternalChartDSL.g:953:10: {...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) )
+                    	    // InternalChartDSL.g:1065:9: ({...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) ) )
+                    	    // InternalChartDSL.g:1065:10: {...}? => ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) )
                     	    {
                     	    if ( !((true)) ) {
                     	        if (state.backtracking>0) {state.failed=true; return current;}
                     	        throw new FailedPredicateException(input, "ruleChartBubble", "true");
                     	    }
-                    	    // InternalChartDSL.g:953:19: ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) )
-                    	    // InternalChartDSL.g:953:20: ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) )
+                    	    // InternalChartDSL.g:1065:19: ( ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) ) )
+                    	    // InternalChartDSL.g:1065:20: ( (lv_multiplier_3_0= 'multiplier' ) ) ( (lv_multiplierValue_4_0= ruleNumber ) )
                     	    {
-                    	    // InternalChartDSL.g:953:20: ( (lv_multiplier_3_0= 'multiplier' ) )
-                    	    // InternalChartDSL.g:954:10: (lv_multiplier_3_0= 'multiplier' )
+                    	    // InternalChartDSL.g:1065:20: ( (lv_multiplier_3_0= 'multiplier' ) )
+                    	    // InternalChartDSL.g:1066:10: (lv_multiplier_3_0= 'multiplier' )
                     	    {
-                    	    // InternalChartDSL.g:954:10: (lv_multiplier_3_0= 'multiplier' )
-                    	    // InternalChartDSL.g:955:11: lv_multiplier_3_0= 'multiplier'
+                    	    // InternalChartDSL.g:1066:10: (lv_multiplier_3_0= 'multiplier' )
+                    	    // InternalChartDSL.g:1067:11: lv_multiplier_3_0= 'multiplier'
                     	    {
-                    	    lv_multiplier_3_0=(Token)match(input,39,FOLLOW_19); if (state.failed) return current;
+                    	    lv_multiplier_3_0=(Token)match(input,41,FOLLOW_24); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      											newLeafNode(lv_multiplier_3_0, grammarAccess.getChartBubbleAccess().getMultiplierMultiplierKeyword_2_0_0_0());
@@ -2825,18 +3140,18 @@
 
                     	    }
 
-                    	    // InternalChartDSL.g:967:9: ( (lv_multiplierValue_4_0= ruleNumber ) )
-                    	    // InternalChartDSL.g:968:10: (lv_multiplierValue_4_0= ruleNumber )
+                    	    // InternalChartDSL.g:1079:9: ( (lv_multiplierValue_4_0= ruleNumber ) )
+                    	    // InternalChartDSL.g:1080:10: (lv_multiplierValue_4_0= ruleNumber )
                     	    {
-                    	    // InternalChartDSL.g:968:10: (lv_multiplierValue_4_0= ruleNumber )
-                    	    // InternalChartDSL.g:969:11: lv_multiplierValue_4_0= ruleNumber
+                    	    // InternalChartDSL.g:1080:10: (lv_multiplierValue_4_0= ruleNumber )
+                    	    // InternalChartDSL.g:1081:11: lv_multiplierValue_4_0= ruleNumber
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      											newCompositeNode(grammarAccess.getChartBubbleAccess().getMultiplierValueNumberParserRuleCall_2_0_1_0());
                     	      										
                     	    }
-                    	    pushFollow(FOLLOW_18);
+                    	    pushFollow(FOLLOW_23);
                     	    lv_multiplierValue_4_0=ruleNumber();
 
                     	    state._fsp--;
@@ -2877,54 +3192,54 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalChartDSL.g:992:4: ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) )
+                    	    // InternalChartDSL.g:1104:4: ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) )
                     	    {
-                    	    // InternalChartDSL.g:992:4: ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) )
-                    	    // InternalChartDSL.g:993:5: {...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) )
+                    	    // InternalChartDSL.g:1104:4: ({...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) ) )
+                    	    // InternalChartDSL.g:1105:5: {...}? => ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) )
                     	    {
                     	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1) ) {
                     	        if (state.backtracking>0) {state.failed=true; return current;}
                     	        throw new FailedPredicateException(input, "ruleChartBubble", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1)");
                     	    }
-                    	    // InternalChartDSL.g:993:108: ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) )
-                    	    // InternalChartDSL.g:994:6: ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) )
+                    	    // InternalChartDSL.g:1105:108: ( ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) ) )
+                    	    // InternalChartDSL.g:1106:6: ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) )
                     	    {
                     	    getUnorderedGroupHelper().select(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2(), 1);
-                    	    // InternalChartDSL.g:997:9: ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) )
-                    	    // InternalChartDSL.g:997:10: {...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) )
+                    	    // InternalChartDSL.g:1109:9: ({...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) ) )
+                    	    // InternalChartDSL.g:1109:10: {...}? => ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) )
                     	    {
                     	    if ( !((true)) ) {
                     	        if (state.backtracking>0) {state.failed=true; return current;}
                     	        throw new FailedPredicateException(input, "ruleChartBubble", "true");
                     	    }
-                    	    // InternalChartDSL.g:997:19: ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) )
-                    	    int alt14=2;
-                    	    int LA14_0 = input.LA(1);
+                    	    // InternalChartDSL.g:1109:19: ( ( (lv_gradient_5_0= 'gradient' ) ) | ( (lv_transparent_6_0= 'transparent' ) ) )
+                    	    int alt17=2;
+                    	    int LA17_0 = input.LA(1);
 
-                    	    if ( (LA14_0==40) ) {
-                    	        alt14=1;
+                    	    if ( (LA17_0==42) ) {
+                    	        alt17=1;
                     	    }
-                    	    else if ( (LA14_0==41) ) {
-                    	        alt14=2;
+                    	    else if ( (LA17_0==43) ) {
+                    	        alt17=2;
                     	    }
                     	    else {
                     	        if (state.backtracking>0) {state.failed=true; return current;}
                     	        NoViableAltException nvae =
-                    	            new NoViableAltException("", 14, 0, input);
+                    	            new NoViableAltException("", 17, 0, input);
 
                     	        throw nvae;
                     	    }
-                    	    switch (alt14) {
+                    	    switch (alt17) {
                     	        case 1 :
-                    	            // InternalChartDSL.g:997:20: ( (lv_gradient_5_0= 'gradient' ) )
+                    	            // InternalChartDSL.g:1109:20: ( (lv_gradient_5_0= 'gradient' ) )
                     	            {
-                    	            // InternalChartDSL.g:997:20: ( (lv_gradient_5_0= 'gradient' ) )
-                    	            // InternalChartDSL.g:998:10: (lv_gradient_5_0= 'gradient' )
+                    	            // InternalChartDSL.g:1109:20: ( (lv_gradient_5_0= 'gradient' ) )
+                    	            // InternalChartDSL.g:1110:10: (lv_gradient_5_0= 'gradient' )
                     	            {
-                    	            // InternalChartDSL.g:998:10: (lv_gradient_5_0= 'gradient' )
-                    	            // InternalChartDSL.g:999:11: lv_gradient_5_0= 'gradient'
+                    	            // InternalChartDSL.g:1110:10: (lv_gradient_5_0= 'gradient' )
+                    	            // InternalChartDSL.g:1111:11: lv_gradient_5_0= 'gradient'
                     	            {
-                    	            lv_gradient_5_0=(Token)match(input,40,FOLLOW_18); if (state.failed) return current;
+                    	            lv_gradient_5_0=(Token)match(input,42,FOLLOW_23); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              											newLeafNode(lv_gradient_5_0, grammarAccess.getChartBubbleAccess().getGradientGradientKeyword_2_1_0_0());
@@ -2948,15 +3263,15 @@
                     	            }
                     	            break;
                     	        case 2 :
-                    	            // InternalChartDSL.g:1012:9: ( (lv_transparent_6_0= 'transparent' ) )
+                    	            // InternalChartDSL.g:1124:9: ( (lv_transparent_6_0= 'transparent' ) )
                     	            {
-                    	            // InternalChartDSL.g:1012:9: ( (lv_transparent_6_0= 'transparent' ) )
-                    	            // InternalChartDSL.g:1013:10: (lv_transparent_6_0= 'transparent' )
+                    	            // InternalChartDSL.g:1124:9: ( (lv_transparent_6_0= 'transparent' ) )
+                    	            // InternalChartDSL.g:1125:10: (lv_transparent_6_0= 'transparent' )
                     	            {
-                    	            // InternalChartDSL.g:1013:10: (lv_transparent_6_0= 'transparent' )
-                    	            // InternalChartDSL.g:1014:11: lv_transparent_6_0= 'transparent'
+                    	            // InternalChartDSL.g:1125:10: (lv_transparent_6_0= 'transparent' )
+                    	            // InternalChartDSL.g:1126:11: lv_transparent_6_0= 'transparent'
                     	            {
-                    	            lv_transparent_6_0=(Token)match(input,41,FOLLOW_18); if (state.failed) return current;
+                    	            lv_transparent_6_0=(Token)match(input,43,FOLLOW_23); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              											newLeafNode(lv_transparent_6_0, grammarAccess.getChartBubbleAccess().getTransparentTransparentKeyword_2_1_1_0());
@@ -2997,13 +3312,13 @@
                     	    break;
 
                     	default :
-                    	    if ( cnt15 >= 1 ) break loop15;
+                    	    if ( cnt18 >= 1 ) break loop18;
                     	    if (state.backtracking>0) {state.failed=true; return current;}
                                 EarlyExitException eee =
-                                    new EarlyExitException(15, input);
+                                    new EarlyExitException(18, input);
                                 throw eee;
                         }
-                        cnt15++;
+                        cnt18++;
                     } while (true);
 
                     if ( ! getUnorderedGroupHelper().canLeave(grammarAccess.getChartBubbleAccess().getUnorderedGroup_2()) ) {
@@ -3048,7 +3363,7 @@
 
 
     // $ANTLR start "entryRuleChartGauge"
-    // InternalChartDSL.g:1044:1: entryRuleChartGauge returns [EObject current=null] : iv_ruleChartGauge= ruleChartGauge EOF ;
+    // InternalChartDSL.g:1156:1: entryRuleChartGauge returns [EObject current=null] : iv_ruleChartGauge= ruleChartGauge EOF ;
     public final EObject entryRuleChartGauge() throws RecognitionException {
         EObject current = null;
 
@@ -3056,8 +3371,8 @@
 
 
         try {
-            // InternalChartDSL.g:1044:51: (iv_ruleChartGauge= ruleChartGauge EOF )
-            // InternalChartDSL.g:1045:2: iv_ruleChartGauge= ruleChartGauge EOF
+            // InternalChartDSL.g:1156:51: (iv_ruleChartGauge= ruleChartGauge EOF )
+            // InternalChartDSL.g:1157:2: iv_ruleChartGauge= ruleChartGauge EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartGaugeRule()); 
@@ -3088,7 +3403,7 @@
 
 
     // $ANTLR start "ruleChartGauge"
-    // InternalChartDSL.g:1051:1: ruleChartGauge returns [EObject current=null] : ( () otherlv_1= 'gauge' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) ) ) ;
+    // InternalChartDSL.g:1163:1: ruleChartGauge returns [EObject current=null] : ( () otherlv_1= 'gauge' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) ) ) ;
     public final EObject ruleChartGauge() throws RecognitionException {
         EObject current = null;
 
@@ -3110,14 +3425,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1057:2: ( ( () otherlv_1= 'gauge' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) ) ) )
-            // InternalChartDSL.g:1058:2: ( () otherlv_1= 'gauge' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) ) )
+            // InternalChartDSL.g:1169:2: ( ( () otherlv_1= 'gauge' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) ) ) )
+            // InternalChartDSL.g:1170:2: ( () otherlv_1= 'gauge' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) ) )
             {
-            // InternalChartDSL.g:1058:2: ( () otherlv_1= 'gauge' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) ) )
-            // InternalChartDSL.g:1059:3: () otherlv_1= 'gauge' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) )
+            // InternalChartDSL.g:1170:2: ( () otherlv_1= 'gauge' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) ) )
+            // InternalChartDSL.g:1171:3: () otherlv_1= 'gauge' ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) )
             {
-            // InternalChartDSL.g:1059:3: ()
-            // InternalChartDSL.g:1060:4: 
+            // InternalChartDSL.g:1171:3: ()
+            // InternalChartDSL.g:1172:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -3129,71 +3444,71 @@
 
             }
 
-            otherlv_1=(Token)match(input,42,FOLLOW_20); if (state.failed) return current;
+            otherlv_1=(Token)match(input,44,FOLLOW_25); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getChartGaugeAccess().getGaugeKeyword_1());
               		
             }
-            // InternalChartDSL.g:1070:3: ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) )
-            // InternalChartDSL.g:1071:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) )
+            // InternalChartDSL.g:1182:3: ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) ) )
+            // InternalChartDSL.g:1183:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) )
             {
-            // InternalChartDSL.g:1071:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) )
-            // InternalChartDSL.g:1072:5: ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* )
+            // InternalChartDSL.g:1183:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* ) )
+            // InternalChartDSL.g:1184:5: ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2());
-            // InternalChartDSL.g:1075:5: ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* )
-            // InternalChartDSL.g:1076:6: ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )*
+            // InternalChartDSL.g:1187:5: ( ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )* )
+            // InternalChartDSL.g:1188:6: ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )*
             {
-            // InternalChartDSL.g:1076:6: ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )*
-            loop18:
+            // InternalChartDSL.g:1188:6: ( ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) ) )*
+            loop21:
             do {
-                int alt18=4;
-                int LA18_0 = input.LA(1);
+                int alt21=4;
+                int LA21_0 = input.LA(1);
 
-                if ( LA18_0 == 43 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
-                    alt18=1;
+                if ( LA21_0 == 45 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
+                    alt21=1;
                 }
-                else if ( LA18_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
-                    alt18=2;
+                else if ( LA21_0 == 46 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
+                    alt21=2;
                 }
-                else if ( LA18_0 == 47 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
-                    alt18=3;
+                else if ( LA21_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
+                    alt21=3;
                 }
 
 
-                switch (alt18) {
+                switch (alt21) {
             	case 1 :
-            	    // InternalChartDSL.g:1077:4: ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) )
+            	    // InternalChartDSL.g:1189:4: ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:1077:4: ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) )
-            	    // InternalChartDSL.g:1078:5: {...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) )
+            	    // InternalChartDSL.g:1189:4: ({...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) ) )
+            	    // InternalChartDSL.g:1190:5: {...}? => ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartGauge", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0)");
             	    }
-            	    // InternalChartDSL.g:1078:107: ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) )
-            	    // InternalChartDSL.g:1079:6: ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) )
+            	    // InternalChartDSL.g:1190:107: ( ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) ) )
+            	    // InternalChartDSL.g:1191:6: ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 0);
-            	    // InternalChartDSL.g:1082:9: ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) )
-            	    // InternalChartDSL.g:1082:10: {...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) )
+            	    // InternalChartDSL.g:1194:9: ({...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) ) )
+            	    // InternalChartDSL.g:1194:10: {...}? => ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartGauge", "true");
             	    }
-            	    // InternalChartDSL.g:1082:19: ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) )
-            	    // InternalChartDSL.g:1082:20: ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) )
+            	    // InternalChartDSL.g:1194:19: ( ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) ) )
+            	    // InternalChartDSL.g:1194:20: ( (lv_labeled_3_0= 'label' ) ) ( (lv_labelValue_4_0= RULE_STRING ) )
             	    {
-            	    // InternalChartDSL.g:1082:20: ( (lv_labeled_3_0= 'label' ) )
-            	    // InternalChartDSL.g:1083:10: (lv_labeled_3_0= 'label' )
+            	    // InternalChartDSL.g:1194:20: ( (lv_labeled_3_0= 'label' ) )
+            	    // InternalChartDSL.g:1195:10: (lv_labeled_3_0= 'label' )
             	    {
-            	    // InternalChartDSL.g:1083:10: (lv_labeled_3_0= 'label' )
-            	    // InternalChartDSL.g:1084:11: lv_labeled_3_0= 'label'
+            	    // InternalChartDSL.g:1195:10: (lv_labeled_3_0= 'label' )
+            	    // InternalChartDSL.g:1196:11: lv_labeled_3_0= 'label'
             	    {
-            	    lv_labeled_3_0=(Token)match(input,43,FOLLOW_8); if (state.failed) return current;
+            	    lv_labeled_3_0=(Token)match(input,45,FOLLOW_13); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      											newLeafNode(lv_labeled_3_0, grammarAccess.getChartGaugeAccess().getLabeledLabelKeyword_2_0_0_0());
@@ -3213,13 +3528,13 @@
 
             	    }
 
-            	    // InternalChartDSL.g:1096:9: ( (lv_labelValue_4_0= RULE_STRING ) )
-            	    // InternalChartDSL.g:1097:10: (lv_labelValue_4_0= RULE_STRING )
+            	    // InternalChartDSL.g:1208:9: ( (lv_labelValue_4_0= RULE_STRING ) )
+            	    // InternalChartDSL.g:1209:10: (lv_labelValue_4_0= RULE_STRING )
             	    {
-            	    // InternalChartDSL.g:1097:10: (lv_labelValue_4_0= RULE_STRING )
-            	    // InternalChartDSL.g:1098:11: lv_labelValue_4_0= RULE_STRING
+            	    // InternalChartDSL.g:1209:10: (lv_labelValue_4_0= RULE_STRING )
+            	    // InternalChartDSL.g:1210:11: lv_labelValue_4_0= RULE_STRING
             	    {
-            	    lv_labelValue_4_0=(Token)match(input,RULE_STRING,FOLLOW_20); if (state.failed) return current;
+            	    lv_labelValue_4_0=(Token)match(input,RULE_STRING,FOLLOW_25); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      											newLeafNode(lv_labelValue_4_0, grammarAccess.getChartGaugeAccess().getLabelValueSTRINGTerminalRuleCall_2_0_1_0());
@@ -3260,36 +3575,36 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalChartDSL.g:1120:4: ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) )
+            	    // InternalChartDSL.g:1232:4: ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) )
             	    {
-            	    // InternalChartDSL.g:1120:4: ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) )
-            	    // InternalChartDSL.g:1121:5: {...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) )
+            	    // InternalChartDSL.g:1232:4: ({...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) ) )
+            	    // InternalChartDSL.g:1233:5: {...}? => ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartGauge", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1)");
             	    }
-            	    // InternalChartDSL.g:1121:107: ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) )
-            	    // InternalChartDSL.g:1122:6: ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) )
+            	    // InternalChartDSL.g:1233:107: ( ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) ) )
+            	    // InternalChartDSL.g:1234:6: ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 1);
-            	    // InternalChartDSL.g:1125:9: ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) )
-            	    // InternalChartDSL.g:1125:10: {...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) )
+            	    // InternalChartDSL.g:1237:9: ({...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) ) )
+            	    // InternalChartDSL.g:1237:10: {...}? => ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartGauge", "true");
             	    }
-            	    // InternalChartDSL.g:1125:19: ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) )
-            	    // InternalChartDSL.g:1125:20: ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) )
+            	    // InternalChartDSL.g:1237:19: ( ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) ) )
+            	    // InternalChartDSL.g:1237:20: ( (lv_hasTicks_5_0= 'hasTicks' ) ) otherlv_6= 'minimum' ( (lv_minValue_7_0= RULE_INT ) ) otherlv_8= 'maximum' ( (lv_maxValue_9_0= RULE_INT ) )
             	    {
-            	    // InternalChartDSL.g:1125:20: ( (lv_hasTicks_5_0= 'hasTicks' ) )
-            	    // InternalChartDSL.g:1126:10: (lv_hasTicks_5_0= 'hasTicks' )
+            	    // InternalChartDSL.g:1237:20: ( (lv_hasTicks_5_0= 'hasTicks' ) )
+            	    // InternalChartDSL.g:1238:10: (lv_hasTicks_5_0= 'hasTicks' )
             	    {
-            	    // InternalChartDSL.g:1126:10: (lv_hasTicks_5_0= 'hasTicks' )
-            	    // InternalChartDSL.g:1127:11: lv_hasTicks_5_0= 'hasTicks'
+            	    // InternalChartDSL.g:1238:10: (lv_hasTicks_5_0= 'hasTicks' )
+            	    // InternalChartDSL.g:1239:11: lv_hasTicks_5_0= 'hasTicks'
             	    {
-            	    lv_hasTicks_5_0=(Token)match(input,44,FOLLOW_21); if (state.failed) return current;
+            	    lv_hasTicks_5_0=(Token)match(input,46,FOLLOW_26); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      											newLeafNode(lv_hasTicks_5_0, grammarAccess.getChartGaugeAccess().getHasTicksHasTicksKeyword_2_1_0_0());
@@ -3309,19 +3624,19 @@
 
             	    }
 
-            	    otherlv_6=(Token)match(input,45,FOLLOW_22); if (state.failed) return current;
+            	    otherlv_6=(Token)match(input,47,FOLLOW_27); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      									newLeafNode(otherlv_6, grammarAccess.getChartGaugeAccess().getMinimumKeyword_2_1_1());
             	      								
             	    }
-            	    // InternalChartDSL.g:1143:9: ( (lv_minValue_7_0= RULE_INT ) )
-            	    // InternalChartDSL.g:1144:10: (lv_minValue_7_0= RULE_INT )
+            	    // InternalChartDSL.g:1255:9: ( (lv_minValue_7_0= RULE_INT ) )
+            	    // InternalChartDSL.g:1256:10: (lv_minValue_7_0= RULE_INT )
             	    {
-            	    // InternalChartDSL.g:1144:10: (lv_minValue_7_0= RULE_INT )
-            	    // InternalChartDSL.g:1145:11: lv_minValue_7_0= RULE_INT
+            	    // InternalChartDSL.g:1256:10: (lv_minValue_7_0= RULE_INT )
+            	    // InternalChartDSL.g:1257:11: lv_minValue_7_0= RULE_INT
             	    {
-            	    lv_minValue_7_0=(Token)match(input,RULE_INT,FOLLOW_23); if (state.failed) return current;
+            	    lv_minValue_7_0=(Token)match(input,RULE_INT,FOLLOW_28); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      											newLeafNode(lv_minValue_7_0, grammarAccess.getChartGaugeAccess().getMinValueINTTerminalRuleCall_2_1_2_0());
@@ -3345,19 +3660,19 @@
 
             	    }
 
-            	    otherlv_8=(Token)match(input,46,FOLLOW_22); if (state.failed) return current;
+            	    otherlv_8=(Token)match(input,48,FOLLOW_27); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      									newLeafNode(otherlv_8, grammarAccess.getChartGaugeAccess().getMaximumKeyword_2_1_3());
             	      								
             	    }
-            	    // InternalChartDSL.g:1165:9: ( (lv_maxValue_9_0= RULE_INT ) )
-            	    // InternalChartDSL.g:1166:10: (lv_maxValue_9_0= RULE_INT )
+            	    // InternalChartDSL.g:1277:9: ( (lv_maxValue_9_0= RULE_INT ) )
+            	    // InternalChartDSL.g:1278:10: (lv_maxValue_9_0= RULE_INT )
             	    {
-            	    // InternalChartDSL.g:1166:10: (lv_maxValue_9_0= RULE_INT )
-            	    // InternalChartDSL.g:1167:11: lv_maxValue_9_0= RULE_INT
+            	    // InternalChartDSL.g:1278:10: (lv_maxValue_9_0= RULE_INT )
+            	    // InternalChartDSL.g:1279:11: lv_maxValue_9_0= RULE_INT
             	    {
-            	    lv_maxValue_9_0=(Token)match(input,RULE_INT,FOLLOW_20); if (state.failed) return current;
+            	    lv_maxValue_9_0=(Token)match(input,RULE_INT,FOLLOW_25); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      											newLeafNode(lv_maxValue_9_0, grammarAccess.getChartGaugeAccess().getMaxValueINTTerminalRuleCall_2_1_4_0());
@@ -3398,36 +3713,36 @@
             	    }
             	    break;
             	case 3 :
-            	    // InternalChartDSL.g:1189:4: ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) )
+            	    // InternalChartDSL.g:1301:4: ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) )
             	    {
-            	    // InternalChartDSL.g:1189:4: ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) )
-            	    // InternalChartDSL.g:1190:5: {...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) )
+            	    // InternalChartDSL.g:1301:4: ({...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) ) )
+            	    // InternalChartDSL.g:1302:5: {...}? => ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartGauge", "getUnorderedGroupHelper().canSelect(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2)");
             	    }
-            	    // InternalChartDSL.g:1190:107: ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) )
-            	    // InternalChartDSL.g:1191:6: ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) )
+            	    // InternalChartDSL.g:1302:107: ( ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) ) )
+            	    // InternalChartDSL.g:1303:6: ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getChartGaugeAccess().getUnorderedGroup_2(), 2);
-            	    // InternalChartDSL.g:1194:9: ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) )
-            	    // InternalChartDSL.g:1194:10: {...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' )
+            	    // InternalChartDSL.g:1306:9: ({...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' ) )
+            	    // InternalChartDSL.g:1306:10: {...}? => ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleChartGauge", "true");
             	    }
-            	    // InternalChartDSL.g:1194:19: ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' )
-            	    // InternalChartDSL.g:1194:20: ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}'
+            	    // InternalChartDSL.g:1306:19: ( ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}' )
+            	    // InternalChartDSL.g:1306:20: ( (lv_hasIntervals_10_0= 'intervals' ) ) otherlv_11= '{' ( (lv_intervals_12_0= ruleChartInterval ) )* otherlv_13= '}'
             	    {
-            	    // InternalChartDSL.g:1194:20: ( (lv_hasIntervals_10_0= 'intervals' ) )
-            	    // InternalChartDSL.g:1195:10: (lv_hasIntervals_10_0= 'intervals' )
+            	    // InternalChartDSL.g:1306:20: ( (lv_hasIntervals_10_0= 'intervals' ) )
+            	    // InternalChartDSL.g:1307:10: (lv_hasIntervals_10_0= 'intervals' )
             	    {
-            	    // InternalChartDSL.g:1195:10: (lv_hasIntervals_10_0= 'intervals' )
-            	    // InternalChartDSL.g:1196:11: lv_hasIntervals_10_0= 'intervals'
+            	    // InternalChartDSL.g:1307:10: (lv_hasIntervals_10_0= 'intervals' )
+            	    // InternalChartDSL.g:1308:11: lv_hasIntervals_10_0= 'intervals'
             	    {
-            	    lv_hasIntervals_10_0=(Token)match(input,47,FOLLOW_24); if (state.failed) return current;
+            	    lv_hasIntervals_10_0=(Token)match(input,49,FOLLOW_6); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      											newLeafNode(lv_hasIntervals_10_0, grammarAccess.getChartGaugeAccess().getHasIntervalsIntervalsKeyword_2_2_0_0());
@@ -3447,36 +3762,36 @@
 
             	    }
 
-            	    otherlv_11=(Token)match(input,14,FOLLOW_25); if (state.failed) return current;
+            	    otherlv_11=(Token)match(input,15,FOLLOW_29); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      									newLeafNode(otherlv_11, grammarAccess.getChartGaugeAccess().getLeftCurlyBracketKeyword_2_2_1());
             	      								
             	    }
-            	    // InternalChartDSL.g:1212:9: ( (lv_intervals_12_0= ruleChartInterval ) )*
-            	    loop17:
+            	    // InternalChartDSL.g:1324:9: ( (lv_intervals_12_0= ruleChartInterval ) )*
+            	    loop20:
             	    do {
-            	        int alt17=2;
-            	        int LA17_0 = input.LA(1);
+            	        int alt20=2;
+            	        int LA20_0 = input.LA(1);
 
-            	        if ( (LA17_0==51) ) {
-            	            alt17=1;
+            	        if ( (LA20_0==53) ) {
+            	            alt20=1;
             	        }
 
 
-            	        switch (alt17) {
+            	        switch (alt20) {
             	    	case 1 :
-            	    	    // InternalChartDSL.g:1213:10: (lv_intervals_12_0= ruleChartInterval )
+            	    	    // InternalChartDSL.g:1325:10: (lv_intervals_12_0= ruleChartInterval )
             	    	    {
-            	    	    // InternalChartDSL.g:1213:10: (lv_intervals_12_0= ruleChartInterval )
-            	    	    // InternalChartDSL.g:1214:11: lv_intervals_12_0= ruleChartInterval
+            	    	    // InternalChartDSL.g:1325:10: (lv_intervals_12_0= ruleChartInterval )
+            	    	    // InternalChartDSL.g:1326:11: lv_intervals_12_0= ruleChartInterval
             	    	    {
             	    	    if ( state.backtracking==0 ) {
 
             	    	      											newCompositeNode(grammarAccess.getChartGaugeAccess().getIntervalsChartIntervalParserRuleCall_2_2_2_0());
             	    	      										
             	    	    }
-            	    	    pushFollow(FOLLOW_25);
+            	    	    pushFollow(FOLLOW_29);
             	    	    lv_intervals_12_0=ruleChartInterval();
 
             	    	    state._fsp--;
@@ -3502,11 +3817,11 @@
             	    	    break;
 
             	    	default :
-            	    	    break loop17;
+            	    	    break loop20;
             	        }
             	    } while (true);
 
-            	    otherlv_13=(Token)match(input,15,FOLLOW_20); if (state.failed) return current;
+            	    otherlv_13=(Token)match(input,16,FOLLOW_25); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      									newLeafNode(otherlv_13, grammarAccess.getChartGaugeAccess().getRightCurlyBracketKeyword_2_2_3());
@@ -3530,7 +3845,7 @@
             	    break;
 
             	default :
-            	    break loop18;
+            	    break loop21;
                 }
             } while (true);
 
@@ -3569,7 +3884,7 @@
 
 
     // $ANTLR start "entryRuleChartTree"
-    // InternalChartDSL.g:1252:1: entryRuleChartTree returns [EObject current=null] : iv_ruleChartTree= ruleChartTree EOF ;
+    // InternalChartDSL.g:1364:1: entryRuleChartTree returns [EObject current=null] : iv_ruleChartTree= ruleChartTree EOF ;
     public final EObject entryRuleChartTree() throws RecognitionException {
         EObject current = null;
 
@@ -3577,8 +3892,8 @@
 
 
         try {
-            // InternalChartDSL.g:1252:50: (iv_ruleChartTree= ruleChartTree EOF )
-            // InternalChartDSL.g:1253:2: iv_ruleChartTree= ruleChartTree EOF
+            // InternalChartDSL.g:1364:50: (iv_ruleChartTree= ruleChartTree EOF )
+            // InternalChartDSL.g:1365:2: iv_ruleChartTree= ruleChartTree EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartTreeRule()); 
@@ -3609,7 +3924,7 @@
 
 
     // $ANTLR start "ruleChartTree"
-    // InternalChartDSL.g:1259:1: ruleChartTree returns [EObject current=null] : ( () otherlv_1= 'tree' ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) ) ) ;
+    // InternalChartDSL.g:1371:1: ruleChartTree returns [EObject current=null] : ( () otherlv_1= 'tree' ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) ) ) ;
     public final EObject ruleChartTree() throws RecognitionException {
         EObject current = null;
 
@@ -3621,14 +3936,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1265:2: ( ( () otherlv_1= 'tree' ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) ) ) )
-            // InternalChartDSL.g:1266:2: ( () otherlv_1= 'tree' ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) ) )
+            // InternalChartDSL.g:1377:2: ( ( () otherlv_1= 'tree' ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) ) ) )
+            // InternalChartDSL.g:1378:2: ( () otherlv_1= 'tree' ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) ) )
             {
-            // InternalChartDSL.g:1266:2: ( () otherlv_1= 'tree' ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) ) )
-            // InternalChartDSL.g:1267:3: () otherlv_1= 'tree' ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) )
+            // InternalChartDSL.g:1378:2: ( () otherlv_1= 'tree' ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) ) )
+            // InternalChartDSL.g:1379:3: () otherlv_1= 'tree' ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) )
             {
-            // InternalChartDSL.g:1267:3: ()
-            // InternalChartDSL.g:1268:4: 
+            // InternalChartDSL.g:1379:3: ()
+            // InternalChartDSL.g:1380:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -3640,40 +3955,40 @@
 
             }
 
-            otherlv_1=(Token)match(input,48,FOLLOW_26); if (state.failed) return current;
+            otherlv_1=(Token)match(input,50,FOLLOW_30); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getChartTreeAccess().getTreeKeyword_1());
               		
             }
-            // InternalChartDSL.g:1278:3: ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) )
-            int alt19=2;
-            int LA19_0 = input.LA(1);
+            // InternalChartDSL.g:1390:3: ( ( (lv_map_2_0= 'map' ) ) | ( (lv_collapsible_3_0= 'collapsible' ) ) )
+            int alt22=2;
+            int LA22_0 = input.LA(1);
 
-            if ( (LA19_0==49) ) {
-                alt19=1;
+            if ( (LA22_0==51) ) {
+                alt22=1;
             }
-            else if ( (LA19_0==50) ) {
-                alt19=2;
+            else if ( (LA22_0==52) ) {
+                alt22=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 19, 0, input);
+                    new NoViableAltException("", 22, 0, input);
 
                 throw nvae;
             }
-            switch (alt19) {
+            switch (alt22) {
                 case 1 :
-                    // InternalChartDSL.g:1279:4: ( (lv_map_2_0= 'map' ) )
+                    // InternalChartDSL.g:1391:4: ( (lv_map_2_0= 'map' ) )
                     {
-                    // InternalChartDSL.g:1279:4: ( (lv_map_2_0= 'map' ) )
-                    // InternalChartDSL.g:1280:5: (lv_map_2_0= 'map' )
+                    // InternalChartDSL.g:1391:4: ( (lv_map_2_0= 'map' ) )
+                    // InternalChartDSL.g:1392:5: (lv_map_2_0= 'map' )
                     {
-                    // InternalChartDSL.g:1280:5: (lv_map_2_0= 'map' )
-                    // InternalChartDSL.g:1281:6: lv_map_2_0= 'map'
+                    // InternalChartDSL.g:1392:5: (lv_map_2_0= 'map' )
+                    // InternalChartDSL.g:1393:6: lv_map_2_0= 'map'
                     {
-                    lv_map_2_0=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
+                    lv_map_2_0=(Token)match(input,51,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_map_2_0, grammarAccess.getChartTreeAccess().getMapMapKeyword_2_0_0());
@@ -3697,15 +4012,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:1294:4: ( (lv_collapsible_3_0= 'collapsible' ) )
+                    // InternalChartDSL.g:1406:4: ( (lv_collapsible_3_0= 'collapsible' ) )
                     {
-                    // InternalChartDSL.g:1294:4: ( (lv_collapsible_3_0= 'collapsible' ) )
-                    // InternalChartDSL.g:1295:5: (lv_collapsible_3_0= 'collapsible' )
+                    // InternalChartDSL.g:1406:4: ( (lv_collapsible_3_0= 'collapsible' ) )
+                    // InternalChartDSL.g:1407:5: (lv_collapsible_3_0= 'collapsible' )
                     {
-                    // InternalChartDSL.g:1295:5: (lv_collapsible_3_0= 'collapsible' )
-                    // InternalChartDSL.g:1296:6: lv_collapsible_3_0= 'collapsible'
+                    // InternalChartDSL.g:1407:5: (lv_collapsible_3_0= 'collapsible' )
+                    // InternalChartDSL.g:1408:6: lv_collapsible_3_0= 'collapsible'
                     {
-                    lv_collapsible_3_0=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
+                    lv_collapsible_3_0=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_collapsible_3_0, grammarAccess.getChartTreeAccess().getCollapsibleCollapsibleKeyword_2_1_0());
@@ -3756,7 +4071,7 @@
 
 
     // $ANTLR start "entryRuleChartInterval"
-    // InternalChartDSL.g:1313:1: entryRuleChartInterval returns [EObject current=null] : iv_ruleChartInterval= ruleChartInterval EOF ;
+    // InternalChartDSL.g:1425:1: entryRuleChartInterval returns [EObject current=null] : iv_ruleChartInterval= ruleChartInterval EOF ;
     public final EObject entryRuleChartInterval() throws RecognitionException {
         EObject current = null;
 
@@ -3764,8 +4079,8 @@
 
 
         try {
-            // InternalChartDSL.g:1313:54: (iv_ruleChartInterval= ruleChartInterval EOF )
-            // InternalChartDSL.g:1314:2: iv_ruleChartInterval= ruleChartInterval EOF
+            // InternalChartDSL.g:1425:54: (iv_ruleChartInterval= ruleChartInterval EOF )
+            // InternalChartDSL.g:1426:2: iv_ruleChartInterval= ruleChartInterval EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartIntervalRule()); 
@@ -3796,7 +4111,7 @@
 
 
     // $ANTLR start "ruleChartInterval"
-    // InternalChartDSL.g:1320:1: ruleChartInterval returns [EObject current=null] : this_ChartNumberInterval_0= ruleChartNumberInterval ;
+    // InternalChartDSL.g:1432:1: ruleChartInterval returns [EObject current=null] : this_ChartNumberInterval_0= ruleChartNumberInterval ;
     public final EObject ruleChartInterval() throws RecognitionException {
         EObject current = null;
 
@@ -3807,8 +4122,8 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1326:2: (this_ChartNumberInterval_0= ruleChartNumberInterval )
-            // InternalChartDSL.g:1327:2: this_ChartNumberInterval_0= ruleChartNumberInterval
+            // InternalChartDSL.g:1438:2: (this_ChartNumberInterval_0= ruleChartNumberInterval )
+            // InternalChartDSL.g:1439:2: this_ChartNumberInterval_0= ruleChartNumberInterval
             {
             if ( state.backtracking==0 ) {
 
@@ -3848,7 +4163,7 @@
 
 
     // $ANTLR start "entryRuleChartNumberInterval"
-    // InternalChartDSL.g:1338:1: entryRuleChartNumberInterval returns [EObject current=null] : iv_ruleChartNumberInterval= ruleChartNumberInterval EOF ;
+    // InternalChartDSL.g:1450:1: entryRuleChartNumberInterval returns [EObject current=null] : iv_ruleChartNumberInterval= ruleChartNumberInterval EOF ;
     public final EObject entryRuleChartNumberInterval() throws RecognitionException {
         EObject current = null;
 
@@ -3856,8 +4171,8 @@
 
 
         try {
-            // InternalChartDSL.g:1338:60: (iv_ruleChartNumberInterval= ruleChartNumberInterval EOF )
-            // InternalChartDSL.g:1339:2: iv_ruleChartNumberInterval= ruleChartNumberInterval EOF
+            // InternalChartDSL.g:1450:60: (iv_ruleChartNumberInterval= ruleChartNumberInterval EOF )
+            // InternalChartDSL.g:1451:2: iv_ruleChartNumberInterval= ruleChartNumberInterval EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartNumberIntervalRule()); 
@@ -3888,7 +4203,7 @@
 
 
     // $ANTLR start "ruleChartNumberInterval"
-    // InternalChartDSL.g:1345:1: ruleChartNumberInterval returns [EObject current=null] : ( () otherlv_1= 'upTo' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleChartRangeElement ) ) ) ;
+    // InternalChartDSL.g:1457:1: ruleChartNumberInterval returns [EObject current=null] : ( () otherlv_1= 'upTo' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleChartRangeElement ) ) ) ;
     public final EObject ruleChartNumberInterval() throws RecognitionException {
         EObject current = null;
 
@@ -3902,14 +4217,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1351:2: ( ( () otherlv_1= 'upTo' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleChartRangeElement ) ) ) )
-            // InternalChartDSL.g:1352:2: ( () otherlv_1= 'upTo' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleChartRangeElement ) ) )
+            // InternalChartDSL.g:1463:2: ( ( () otherlv_1= 'upTo' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleChartRangeElement ) ) ) )
+            // InternalChartDSL.g:1464:2: ( () otherlv_1= 'upTo' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleChartRangeElement ) ) )
             {
-            // InternalChartDSL.g:1352:2: ( () otherlv_1= 'upTo' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleChartRangeElement ) ) )
-            // InternalChartDSL.g:1353:3: () otherlv_1= 'upTo' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleChartRangeElement ) )
+            // InternalChartDSL.g:1464:2: ( () otherlv_1= 'upTo' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleChartRangeElement ) ) )
+            // InternalChartDSL.g:1465:3: () otherlv_1= 'upTo' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleChartRangeElement ) )
             {
-            // InternalChartDSL.g:1353:3: ()
-            // InternalChartDSL.g:1354:4: 
+            // InternalChartDSL.g:1465:3: ()
+            // InternalChartDSL.g:1466:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -3921,24 +4236,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,51,FOLLOW_27); if (state.failed) return current;
+            otherlv_1=(Token)match(input,53,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getChartNumberIntervalAccess().getUpToKeyword_1());
               		
             }
-            // InternalChartDSL.g:1364:3: ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) )
-            // InternalChartDSL.g:1365:4: (lv_numberIntervalValue_2_0= ruleSignedNumber )
+            // InternalChartDSL.g:1476:3: ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) )
+            // InternalChartDSL.g:1477:4: (lv_numberIntervalValue_2_0= ruleSignedNumber )
             {
-            // InternalChartDSL.g:1365:4: (lv_numberIntervalValue_2_0= ruleSignedNumber )
-            // InternalChartDSL.g:1366:5: lv_numberIntervalValue_2_0= ruleSignedNumber
+            // InternalChartDSL.g:1477:4: (lv_numberIntervalValue_2_0= ruleSignedNumber )
+            // InternalChartDSL.g:1478:5: lv_numberIntervalValue_2_0= ruleSignedNumber
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getChartNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_27);
+            pushFollow(FOLLOW_31);
             lv_numberIntervalValue_2_0=ruleSignedNumber();
 
             state._fsp--;
@@ -3962,11 +4277,11 @@
 
             }
 
-            // InternalChartDSL.g:1383:3: ( (lv_numberRange_3_0= ruleChartRangeElement ) )
-            // InternalChartDSL.g:1384:4: (lv_numberRange_3_0= ruleChartRangeElement )
+            // InternalChartDSL.g:1495:3: ( (lv_numberRange_3_0= ruleChartRangeElement ) )
+            // InternalChartDSL.g:1496:4: (lv_numberRange_3_0= ruleChartRangeElement )
             {
-            // InternalChartDSL.g:1384:4: (lv_numberRange_3_0= ruleChartRangeElement )
-            // InternalChartDSL.g:1385:5: lv_numberRange_3_0= ruleChartRangeElement
+            // InternalChartDSL.g:1496:4: (lv_numberRange_3_0= ruleChartRangeElement )
+            // InternalChartDSL.g:1497:5: lv_numberRange_3_0= ruleChartRangeElement
             {
             if ( state.backtracking==0 ) {
 
@@ -4022,7 +4337,7 @@
 
 
     // $ANTLR start "entryRuleChartDatamart"
-    // InternalChartDSL.g:1406:1: entryRuleChartDatamart returns [EObject current=null] : iv_ruleChartDatamart= ruleChartDatamart EOF ;
+    // InternalChartDSL.g:1518:1: entryRuleChartDatamart returns [EObject current=null] : iv_ruleChartDatamart= ruleChartDatamart EOF ;
     public final EObject entryRuleChartDatamart() throws RecognitionException {
         EObject current = null;
 
@@ -4030,8 +4345,8 @@
 
 
         try {
-            // InternalChartDSL.g:1406:54: (iv_ruleChartDatamart= ruleChartDatamart EOF )
-            // InternalChartDSL.g:1407:2: iv_ruleChartDatamart= ruleChartDatamart EOF
+            // InternalChartDSL.g:1518:54: (iv_ruleChartDatamart= ruleChartDatamart EOF )
+            // InternalChartDSL.g:1519:2: iv_ruleChartDatamart= ruleChartDatamart EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartDatamartRule()); 
@@ -4062,7 +4377,7 @@
 
 
     // $ANTLR start "ruleChartDatamart"
-    // InternalChartDSL.g:1413:1: ruleChartDatamart returns [EObject current=null] : (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_elements_3_0= ruleChartElement ) )* otherlv_4= '}' ) ;
+    // InternalChartDSL.g:1525:1: ruleChartDatamart returns [EObject current=null] : (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_elements_3_0= ruleChartElement ) )* otherlv_4= '}' ) ;
     public final EObject ruleChartDatamart() throws RecognitionException {
         EObject current = null;
 
@@ -4077,23 +4392,23 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1419:2: ( (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_elements_3_0= ruleChartElement ) )* otherlv_4= '}' ) )
-            // InternalChartDSL.g:1420:2: (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_elements_3_0= ruleChartElement ) )* otherlv_4= '}' )
+            // InternalChartDSL.g:1531:2: ( (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_elements_3_0= ruleChartElement ) )* otherlv_4= '}' ) )
+            // InternalChartDSL.g:1532:2: (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_elements_3_0= ruleChartElement ) )* otherlv_4= '}' )
             {
-            // InternalChartDSL.g:1420:2: (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_elements_3_0= ruleChartElement ) )* otherlv_4= '}' )
-            // InternalChartDSL.g:1421:3: otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_elements_3_0= ruleChartElement ) )* otherlv_4= '}'
+            // InternalChartDSL.g:1532:2: (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_elements_3_0= ruleChartElement ) )* otherlv_4= '}' )
+            // InternalChartDSL.g:1533:3: otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( (lv_elements_3_0= ruleChartElement ) )* otherlv_4= '}'
             {
-            otherlv_0=(Token)match(input,52,FOLLOW_4); if (state.failed) return current;
+            otherlv_0=(Token)match(input,54,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getChartDatamartAccess().getDatamartKeyword_0());
               		
             }
-            // InternalChartDSL.g:1425:3: ( (otherlv_1= RULE_ID ) )
-            // InternalChartDSL.g:1426:4: (otherlv_1= RULE_ID )
+            // InternalChartDSL.g:1537:3: ( (otherlv_1= RULE_ID ) )
+            // InternalChartDSL.g:1538:4: (otherlv_1= RULE_ID )
             {
-            // InternalChartDSL.g:1426:4: (otherlv_1= RULE_ID )
-            // InternalChartDSL.g:1427:5: otherlv_1= RULE_ID
+            // InternalChartDSL.g:1538:4: (otherlv_1= RULE_ID )
+            // InternalChartDSL.g:1539:5: otherlv_1= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -4102,7 +4417,7 @@
               					}
               				
             }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_24); if (state.failed) return current;
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_6); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getChartDatamartAccess().getDatamartRefDatamartDefinitionCrossReference_1_0());
@@ -4114,36 +4429,36 @@
 
             }
 
-            otherlv_2=(Token)match(input,14,FOLLOW_28); if (state.failed) return current;
+            otherlv_2=(Token)match(input,15,FOLLOW_32); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getChartDatamartAccess().getLeftCurlyBracketKeyword_2());
               		
             }
-            // InternalChartDSL.g:1442:3: ( (lv_elements_3_0= ruleChartElement ) )*
-            loop20:
+            // InternalChartDSL.g:1554:3: ( (lv_elements_3_0= ruleChartElement ) )*
+            loop23:
             do {
-                int alt20=2;
-                int LA20_0 = input.LA(1);
+                int alt23=2;
+                int LA23_0 = input.LA(1);
 
-                if ( (LA20_0==32||LA20_0==53||LA20_0==58) ) {
-                    alt20=1;
+                if ( (LA23_0==34||LA23_0==55||LA23_0==63) ) {
+                    alt23=1;
                 }
 
 
-                switch (alt20) {
+                switch (alt23) {
             	case 1 :
-            	    // InternalChartDSL.g:1443:4: (lv_elements_3_0= ruleChartElement )
+            	    // InternalChartDSL.g:1555:4: (lv_elements_3_0= ruleChartElement )
             	    {
-            	    // InternalChartDSL.g:1443:4: (lv_elements_3_0= ruleChartElement )
-            	    // InternalChartDSL.g:1444:5: lv_elements_3_0= ruleChartElement
+            	    // InternalChartDSL.g:1555:4: (lv_elements_3_0= ruleChartElement )
+            	    // InternalChartDSL.g:1556:5: lv_elements_3_0= ruleChartElement
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      					newCompositeNode(grammarAccess.getChartDatamartAccess().getElementsChartElementParserRuleCall_3_0());
             	      				
             	    }
-            	    pushFollow(FOLLOW_28);
+            	    pushFollow(FOLLOW_32);
             	    lv_elements_3_0=ruleChartElement();
 
             	    state._fsp--;
@@ -4169,11 +4484,11 @@
             	    break;
 
             	default :
-            	    break loop20;
+            	    break loop23;
                 }
             } while (true);
 
-            otherlv_4=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
+            otherlv_4=(Token)match(input,16,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getChartDatamartAccess().getRightCurlyBracketKeyword_4());
@@ -4204,7 +4519,7 @@
 
 
     // $ANTLR start "entryRuleChartElement"
-    // InternalChartDSL.g:1469:1: entryRuleChartElement returns [EObject current=null] : iv_ruleChartElement= ruleChartElement EOF ;
+    // InternalChartDSL.g:1581:1: entryRuleChartElement returns [EObject current=null] : iv_ruleChartElement= ruleChartElement EOF ;
     public final EObject entryRuleChartElement() throws RecognitionException {
         EObject current = null;
 
@@ -4212,8 +4527,8 @@
 
 
         try {
-            // InternalChartDSL.g:1469:53: (iv_ruleChartElement= ruleChartElement EOF )
-            // InternalChartDSL.g:1470:2: iv_ruleChartElement= ruleChartElement EOF
+            // InternalChartDSL.g:1581:53: (iv_ruleChartElement= ruleChartElement EOF )
+            // InternalChartDSL.g:1582:2: iv_ruleChartElement= ruleChartElement EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartElementRule()); 
@@ -4244,7 +4559,7 @@
 
 
     // $ANTLR start "ruleChartElement"
-    // InternalChartDSL.g:1476:1: ruleChartElement returns [EObject current=null] : (this_ChartAxis_0= ruleChartAxis | this_ChartLegend_1= ruleChartLegend | this_ChartHighlighter_2= ruleChartHighlighter ) ;
+    // InternalChartDSL.g:1588:1: ruleChartElement returns [EObject current=null] : (this_ChartAxis_0= ruleChartAxis | this_ChartLegend_1= ruleChartLegend | this_ChartHighlighter_2= ruleChartHighlighter ) ;
     public final EObject ruleChartElement() throws RecognitionException {
         EObject current = null;
 
@@ -4259,38 +4574,38 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1482:2: ( (this_ChartAxis_0= ruleChartAxis | this_ChartLegend_1= ruleChartLegend | this_ChartHighlighter_2= ruleChartHighlighter ) )
-            // InternalChartDSL.g:1483:2: (this_ChartAxis_0= ruleChartAxis | this_ChartLegend_1= ruleChartLegend | this_ChartHighlighter_2= ruleChartHighlighter )
+            // InternalChartDSL.g:1594:2: ( (this_ChartAxis_0= ruleChartAxis | this_ChartLegend_1= ruleChartLegend | this_ChartHighlighter_2= ruleChartHighlighter ) )
+            // InternalChartDSL.g:1595:2: (this_ChartAxis_0= ruleChartAxis | this_ChartLegend_1= ruleChartLegend | this_ChartHighlighter_2= ruleChartHighlighter )
             {
-            // InternalChartDSL.g:1483:2: (this_ChartAxis_0= ruleChartAxis | this_ChartLegend_1= ruleChartLegend | this_ChartHighlighter_2= ruleChartHighlighter )
-            int alt21=3;
+            // InternalChartDSL.g:1595:2: (this_ChartAxis_0= ruleChartAxis | this_ChartLegend_1= ruleChartLegend | this_ChartHighlighter_2= ruleChartHighlighter )
+            int alt24=3;
             switch ( input.LA(1) ) {
-            case 58:
+            case 63:
                 {
-                alt21=1;
+                alt24=1;
                 }
                 break;
-            case 53:
+            case 55:
                 {
-                alt21=2;
+                alt24=2;
                 }
                 break;
-            case 32:
+            case 34:
                 {
-                alt21=3;
+                alt24=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 21, 0, input);
+                    new NoViableAltException("", 24, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt21) {
+            switch (alt24) {
                 case 1 :
-                    // InternalChartDSL.g:1484:3: this_ChartAxis_0= ruleChartAxis
+                    // InternalChartDSL.g:1596:3: this_ChartAxis_0= ruleChartAxis
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4312,7 +4627,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:1493:3: this_ChartLegend_1= ruleChartLegend
+                    // InternalChartDSL.g:1605:3: this_ChartLegend_1= ruleChartLegend
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4334,7 +4649,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:1502:3: this_ChartHighlighter_2= ruleChartHighlighter
+                    // InternalChartDSL.g:1614:3: this_ChartHighlighter_2= ruleChartHighlighter
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4380,7 +4695,7 @@
 
 
     // $ANTLR start "entryRuleChartLegend"
-    // InternalChartDSL.g:1514:1: entryRuleChartLegend returns [EObject current=null] : iv_ruleChartLegend= ruleChartLegend EOF ;
+    // InternalChartDSL.g:1626:1: entryRuleChartLegend returns [EObject current=null] : iv_ruleChartLegend= ruleChartLegend EOF ;
     public final EObject entryRuleChartLegend() throws RecognitionException {
         EObject current = null;
 
@@ -4388,8 +4703,8 @@
 
 
         try {
-            // InternalChartDSL.g:1514:52: (iv_ruleChartLegend= ruleChartLegend EOF )
-            // InternalChartDSL.g:1515:2: iv_ruleChartLegend= ruleChartLegend EOF
+            // InternalChartDSL.g:1626:52: (iv_ruleChartLegend= ruleChartLegend EOF )
+            // InternalChartDSL.g:1627:2: iv_ruleChartLegend= ruleChartLegend EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartLegendRule()); 
@@ -4420,145 +4735,113 @@
 
 
     // $ANTLR start "ruleChartLegend"
-    // InternalChartDSL.g:1521:1: ruleChartLegend returns [EObject current=null] : (otherlv_0= 'legend' ( (lv_placement_1_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_2_0= 'toggle' ) ) ( (lv_replot_3_0= 'replot' ) ) ( (lv_toggleType_4_0= ruleToggleTypeEnum ) ) )? ) ;
+    // InternalChartDSL.g:1633:1: ruleChartLegend returns [EObject current=null] : ( () otherlv_1= 'legend' ( (lv_noLegend_2_0= 'noLegend' ) )? ( ( (lv_placement_3_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_4_0= 'toggle' ) ) ( (lv_replot_5_0= 'replot' ) ) ( (lv_toggleType_6_0= ruleToggleTypeEnum ) ) )? )? (otherlv_7= 'fontSize' ( (lv_fontSize_8_0= RULE_INT ) ) )? (otherlv_9= 'textColor' ( (lv_textColor_10_0= RULE_STRING ) ) )? ) ;
     public final EObject ruleChartLegend() throws RecognitionException {
         EObject current = null;
 
-        Token otherlv_0=null;
-        Token lv_toggle_2_0=null;
-        Token lv_replot_3_0=null;
-        Enumerator lv_placement_1_0 = null;
+        Token otherlv_1=null;
+        Token lv_noLegend_2_0=null;
+        Token lv_toggle_4_0=null;
+        Token lv_replot_5_0=null;
+        Token otherlv_7=null;
+        Token lv_fontSize_8_0=null;
+        Token otherlv_9=null;
+        Token lv_textColor_10_0=null;
+        Enumerator lv_placement_3_0 = null;
 
-        Enumerator lv_toggleType_4_0 = null;
+        Enumerator lv_toggleType_6_0 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1527:2: ( (otherlv_0= 'legend' ( (lv_placement_1_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_2_0= 'toggle' ) ) ( (lv_replot_3_0= 'replot' ) ) ( (lv_toggleType_4_0= ruleToggleTypeEnum ) ) )? ) )
-            // InternalChartDSL.g:1528:2: (otherlv_0= 'legend' ( (lv_placement_1_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_2_0= 'toggle' ) ) ( (lv_replot_3_0= 'replot' ) ) ( (lv_toggleType_4_0= ruleToggleTypeEnum ) ) )? )
+            // InternalChartDSL.g:1639:2: ( ( () otherlv_1= 'legend' ( (lv_noLegend_2_0= 'noLegend' ) )? ( ( (lv_placement_3_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_4_0= 'toggle' ) ) ( (lv_replot_5_0= 'replot' ) ) ( (lv_toggleType_6_0= ruleToggleTypeEnum ) ) )? )? (otherlv_7= 'fontSize' ( (lv_fontSize_8_0= RULE_INT ) ) )? (otherlv_9= 'textColor' ( (lv_textColor_10_0= RULE_STRING ) ) )? ) )
+            // InternalChartDSL.g:1640:2: ( () otherlv_1= 'legend' ( (lv_noLegend_2_0= 'noLegend' ) )? ( ( (lv_placement_3_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_4_0= 'toggle' ) ) ( (lv_replot_5_0= 'replot' ) ) ( (lv_toggleType_6_0= ruleToggleTypeEnum ) ) )? )? (otherlv_7= 'fontSize' ( (lv_fontSize_8_0= RULE_INT ) ) )? (otherlv_9= 'textColor' ( (lv_textColor_10_0= RULE_STRING ) ) )? )
             {
-            // InternalChartDSL.g:1528:2: (otherlv_0= 'legend' ( (lv_placement_1_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_2_0= 'toggle' ) ) ( (lv_replot_3_0= 'replot' ) ) ( (lv_toggleType_4_0= ruleToggleTypeEnum ) ) )? )
-            // InternalChartDSL.g:1529:3: otherlv_0= 'legend' ( (lv_placement_1_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_2_0= 'toggle' ) ) ( (lv_replot_3_0= 'replot' ) ) ( (lv_toggleType_4_0= ruleToggleTypeEnum ) ) )?
+            // InternalChartDSL.g:1640:2: ( () otherlv_1= 'legend' ( (lv_noLegend_2_0= 'noLegend' ) )? ( ( (lv_placement_3_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_4_0= 'toggle' ) ) ( (lv_replot_5_0= 'replot' ) ) ( (lv_toggleType_6_0= ruleToggleTypeEnum ) ) )? )? (otherlv_7= 'fontSize' ( (lv_fontSize_8_0= RULE_INT ) ) )? (otherlv_9= 'textColor' ( (lv_textColor_10_0= RULE_STRING ) ) )? )
+            // InternalChartDSL.g:1641:3: () otherlv_1= 'legend' ( (lv_noLegend_2_0= 'noLegend' ) )? ( ( (lv_placement_3_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_4_0= 'toggle' ) ) ( (lv_replot_5_0= 'replot' ) ) ( (lv_toggleType_6_0= ruleToggleTypeEnum ) ) )? )? (otherlv_7= 'fontSize' ( (lv_fontSize_8_0= RULE_INT ) ) )? (otherlv_9= 'textColor' ( (lv_textColor_10_0= RULE_STRING ) ) )?
             {
-            otherlv_0=(Token)match(input,53,FOLLOW_29); if (state.failed) return current;
+            // InternalChartDSL.g:1641:3: ()
+            // InternalChartDSL.g:1642:4: 
+            {
             if ( state.backtracking==0 ) {
 
-              			newLeafNode(otherlv_0, grammarAccess.getChartLegendAccess().getLegendKeyword_0());
+              				current = forceCreateModelElement(
+              					grammarAccess.getChartLegendAccess().getChartLegendAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,55,FOLLOW_33); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getChartLegendAccess().getLegendKeyword_1());
               		
             }
-            // InternalChartDSL.g:1533:3: ( (lv_placement_1_0= ruleLegendPlacementEnum ) )
-            // InternalChartDSL.g:1534:4: (lv_placement_1_0= ruleLegendPlacementEnum )
-            {
-            // InternalChartDSL.g:1534:4: (lv_placement_1_0= ruleLegendPlacementEnum )
-            // InternalChartDSL.g:1535:5: lv_placement_1_0= ruleLegendPlacementEnum
-            {
-            if ( state.backtracking==0 ) {
+            // InternalChartDSL.g:1652:3: ( (lv_noLegend_2_0= 'noLegend' ) )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
 
-              					newCompositeNode(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_1_0());
-              				
+            if ( (LA25_0==56) ) {
+                alt25=1;
             }
-            pushFollow(FOLLOW_30);
-            lv_placement_1_0=ruleLegendPlacementEnum();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					if (current==null) {
-              						current = createModelElementForParent(grammarAccess.getChartLegendRule());
-              					}
-              					set(
-              						current,
-              						"placement",
-              						lv_placement_1_0,
-              						"org.eclipse.osbp.xtext.chart.ChartDSL.LegendPlacementEnum");
-              					afterParserOrEnumRuleCall();
-              				
-            }
-
-            }
-
-
-            }
-
-            // InternalChartDSL.g:1552:3: ( ( (lv_toggle_2_0= 'toggle' ) ) ( (lv_replot_3_0= 'replot' ) ) ( (lv_toggleType_4_0= ruleToggleTypeEnum ) ) )?
-            int alt22=2;
-            int LA22_0 = input.LA(1);
-
-            if ( (LA22_0==54) ) {
-                alt22=1;
-            }
-            switch (alt22) {
+            switch (alt25) {
                 case 1 :
-                    // InternalChartDSL.g:1553:4: ( (lv_toggle_2_0= 'toggle' ) ) ( (lv_replot_3_0= 'replot' ) ) ( (lv_toggleType_4_0= ruleToggleTypeEnum ) )
+                    // InternalChartDSL.g:1653:4: (lv_noLegend_2_0= 'noLegend' )
                     {
-                    // InternalChartDSL.g:1553:4: ( (lv_toggle_2_0= 'toggle' ) )
-                    // InternalChartDSL.g:1554:5: (lv_toggle_2_0= 'toggle' )
+                    // InternalChartDSL.g:1653:4: (lv_noLegend_2_0= 'noLegend' )
+                    // InternalChartDSL.g:1654:5: lv_noLegend_2_0= 'noLegend'
                     {
-                    // InternalChartDSL.g:1554:5: (lv_toggle_2_0= 'toggle' )
-                    // InternalChartDSL.g:1555:6: lv_toggle_2_0= 'toggle'
-                    {
-                    lv_toggle_2_0=(Token)match(input,54,FOLLOW_31); if (state.failed) return current;
+                    lv_noLegend_2_0=(Token)match(input,56,FOLLOW_34); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      						newLeafNode(lv_toggle_2_0, grammarAccess.getChartLegendAccess().getToggleToggleKeyword_2_0_0());
-                      					
+                      					newLeafNode(lv_noLegend_2_0, grammarAccess.getChartLegendAccess().getNoLegendNoLegendKeyword_2_0());
+                      				
                     }
                     if ( state.backtracking==0 ) {
 
-                      						if (current==null) {
-                      							current = createModelElement(grammarAccess.getChartLegendRule());
-                      						}
-                      						setWithLastConsumed(current, "toggle", true, "toggle");
-                      					
+                      					if (current==null) {
+                      						current = createModelElement(grammarAccess.getChartLegendRule());
+                      					}
+                      					setWithLastConsumed(current, "noLegend", true, "noLegend");
+                      				
                     }
 
                     }
 
 
                     }
+                    break;
 
-                    // InternalChartDSL.g:1567:4: ( (lv_replot_3_0= 'replot' ) )
-                    // InternalChartDSL.g:1568:5: (lv_replot_3_0= 'replot' )
+            }
+
+            // InternalChartDSL.g:1666:3: ( ( (lv_placement_3_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_4_0= 'toggle' ) ) ( (lv_replot_5_0= 'replot' ) ) ( (lv_toggleType_6_0= ruleToggleTypeEnum ) ) )? )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
+
+            if ( (LA27_0==62||(LA27_0>=146 && LA27_0<=148)) ) {
+                alt27=1;
+            }
+            switch (alt27) {
+                case 1 :
+                    // InternalChartDSL.g:1667:4: ( (lv_placement_3_0= ruleLegendPlacementEnum ) ) ( ( (lv_toggle_4_0= 'toggle' ) ) ( (lv_replot_5_0= 'replot' ) ) ( (lv_toggleType_6_0= ruleToggleTypeEnum ) ) )?
                     {
-                    // InternalChartDSL.g:1568:5: (lv_replot_3_0= 'replot' )
-                    // InternalChartDSL.g:1569:6: lv_replot_3_0= 'replot'
+                    // InternalChartDSL.g:1667:4: ( (lv_placement_3_0= ruleLegendPlacementEnum ) )
+                    // InternalChartDSL.g:1668:5: (lv_placement_3_0= ruleLegendPlacementEnum )
                     {
-                    lv_replot_3_0=(Token)match(input,55,FOLLOW_32); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      						newLeafNode(lv_replot_3_0, grammarAccess.getChartLegendAccess().getReplotReplotKeyword_2_1_0());
-                      					
-                    }
-                    if ( state.backtracking==0 ) {
-
-                      						if (current==null) {
-                      							current = createModelElement(grammarAccess.getChartLegendRule());
-                      						}
-                      						setWithLastConsumed(current, "replot", true, "replot");
-                      					
-                    }
-
-                    }
-
-
-                    }
-
-                    // InternalChartDSL.g:1581:4: ( (lv_toggleType_4_0= ruleToggleTypeEnum ) )
-                    // InternalChartDSL.g:1582:5: (lv_toggleType_4_0= ruleToggleTypeEnum )
-                    {
-                    // InternalChartDSL.g:1582:5: (lv_toggleType_4_0= ruleToggleTypeEnum )
-                    // InternalChartDSL.g:1583:6: lv_toggleType_4_0= ruleToggleTypeEnum
+                    // InternalChartDSL.g:1668:5: (lv_placement_3_0= ruleLegendPlacementEnum )
+                    // InternalChartDSL.g:1669:6: lv_placement_3_0= ruleLegendPlacementEnum
                     {
                     if ( state.backtracking==0 ) {
 
-                      						newCompositeNode(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_2_2_0());
+                      						newCompositeNode(grammarAccess.getChartLegendAccess().getPlacementLegendPlacementEnumEnumRuleCall_3_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_2);
-                    lv_toggleType_4_0=ruleToggleTypeEnum();
+                    pushFollow(FOLLOW_35);
+                    lv_placement_3_0=ruleLegendPlacementEnum();
 
                     state._fsp--;
                     if (state.failed) return current;
@@ -4569,9 +4852,9 @@
                       						}
                       						set(
                       							current,
-                      							"toggleType",
-                      							lv_toggleType_4_0,
-                      							"org.eclipse.osbp.xtext.chart.ChartDSL.ToggleTypeEnum");
+                      							"placement",
+                      							lv_placement_3_0,
+                      							"org.eclipse.osbp.xtext.chart.ChartDSL.LegendPlacementEnum");
                       						afterParserOrEnumRuleCall();
                       					
                     }
@@ -4581,6 +4864,216 @@
 
                     }
 
+                    // InternalChartDSL.g:1686:4: ( ( (lv_toggle_4_0= 'toggle' ) ) ( (lv_replot_5_0= 'replot' ) ) ( (lv_toggleType_6_0= ruleToggleTypeEnum ) ) )?
+                    int alt26=2;
+                    int LA26_0 = input.LA(1);
+
+                    if ( (LA26_0==57) ) {
+                        alt26=1;
+                    }
+                    switch (alt26) {
+                        case 1 :
+                            // InternalChartDSL.g:1687:5: ( (lv_toggle_4_0= 'toggle' ) ) ( (lv_replot_5_0= 'replot' ) ) ( (lv_toggleType_6_0= ruleToggleTypeEnum ) )
+                            {
+                            // InternalChartDSL.g:1687:5: ( (lv_toggle_4_0= 'toggle' ) )
+                            // InternalChartDSL.g:1688:6: (lv_toggle_4_0= 'toggle' )
+                            {
+                            // InternalChartDSL.g:1688:6: (lv_toggle_4_0= 'toggle' )
+                            // InternalChartDSL.g:1689:7: lv_toggle_4_0= 'toggle'
+                            {
+                            lv_toggle_4_0=(Token)match(input,57,FOLLOW_36); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							newLeafNode(lv_toggle_4_0, grammarAccess.getChartLegendAccess().getToggleToggleKeyword_3_1_0_0());
+                              						
+                            }
+                            if ( state.backtracking==0 ) {
+
+                              							if (current==null) {
+                              								current = createModelElement(grammarAccess.getChartLegendRule());
+                              							}
+                              							setWithLastConsumed(current, "toggle", true, "toggle");
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+                            // InternalChartDSL.g:1701:5: ( (lv_replot_5_0= 'replot' ) )
+                            // InternalChartDSL.g:1702:6: (lv_replot_5_0= 'replot' )
+                            {
+                            // InternalChartDSL.g:1702:6: (lv_replot_5_0= 'replot' )
+                            // InternalChartDSL.g:1703:7: lv_replot_5_0= 'replot'
+                            {
+                            lv_replot_5_0=(Token)match(input,58,FOLLOW_37); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							newLeafNode(lv_replot_5_0, grammarAccess.getChartLegendAccess().getReplotReplotKeyword_3_1_1_0());
+                              						
+                            }
+                            if ( state.backtracking==0 ) {
+
+                              							if (current==null) {
+                              								current = createModelElement(grammarAccess.getChartLegendRule());
+                              							}
+                              							setWithLastConsumed(current, "replot", true, "replot");
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+                            // InternalChartDSL.g:1715:5: ( (lv_toggleType_6_0= ruleToggleTypeEnum ) )
+                            // InternalChartDSL.g:1716:6: (lv_toggleType_6_0= ruleToggleTypeEnum )
+                            {
+                            // InternalChartDSL.g:1716:6: (lv_toggleType_6_0= ruleToggleTypeEnum )
+                            // InternalChartDSL.g:1717:7: lv_toggleType_6_0= ruleToggleTypeEnum
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              							newCompositeNode(grammarAccess.getChartLegendAccess().getToggleTypeToggleTypeEnumEnumRuleCall_3_1_2_0());
+                              						
+                            }
+                            pushFollow(FOLLOW_38);
+                            lv_toggleType_6_0=ruleToggleTypeEnum();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							if (current==null) {
+                              								current = createModelElementForParent(grammarAccess.getChartLegendRule());
+                              							}
+                              							set(
+                              								current,
+                              								"toggleType",
+                              								lv_toggleType_6_0,
+                              								"org.eclipse.osbp.xtext.chart.ChartDSL.ToggleTypeEnum");
+                              							afterParserOrEnumRuleCall();
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalChartDSL.g:1736:3: (otherlv_7= 'fontSize' ( (lv_fontSize_8_0= RULE_INT ) ) )?
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( (LA28_0==59) ) {
+                alt28=1;
+            }
+            switch (alt28) {
+                case 1 :
+                    // InternalChartDSL.g:1737:4: otherlv_7= 'fontSize' ( (lv_fontSize_8_0= RULE_INT ) )
+                    {
+                    otherlv_7=(Token)match(input,59,FOLLOW_27); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_7, grammarAccess.getChartLegendAccess().getFontSizeKeyword_4_0());
+                      			
+                    }
+                    // InternalChartDSL.g:1741:4: ( (lv_fontSize_8_0= RULE_INT ) )
+                    // InternalChartDSL.g:1742:5: (lv_fontSize_8_0= RULE_INT )
+                    {
+                    // InternalChartDSL.g:1742:5: (lv_fontSize_8_0= RULE_INT )
+                    // InternalChartDSL.g:1743:6: lv_fontSize_8_0= RULE_INT
+                    {
+                    lv_fontSize_8_0=(Token)match(input,RULE_INT,FOLLOW_39); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_fontSize_8_0, grammarAccess.getChartLegendAccess().getFontSizeINTTerminalRuleCall_4_1_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getChartLegendRule());
+                      						}
+                      						setWithLastConsumed(
+                      							current,
+                      							"fontSize",
+                      							lv_fontSize_8_0,
+                      							"org.eclipse.xtext.xbase.Xbase.INT");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalChartDSL.g:1760:3: (otherlv_9= 'textColor' ( (lv_textColor_10_0= RULE_STRING ) ) )?
+            int alt29=2;
+            int LA29_0 = input.LA(1);
+
+            if ( (LA29_0==60) ) {
+                alt29=1;
+            }
+            switch (alt29) {
+                case 1 :
+                    // InternalChartDSL.g:1761:4: otherlv_9= 'textColor' ( (lv_textColor_10_0= RULE_STRING ) )
+                    {
+                    otherlv_9=(Token)match(input,60,FOLLOW_13); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_9, grammarAccess.getChartLegendAccess().getTextColorKeyword_5_0());
+                      			
+                    }
+                    // InternalChartDSL.g:1765:4: ( (lv_textColor_10_0= RULE_STRING ) )
+                    // InternalChartDSL.g:1766:5: (lv_textColor_10_0= RULE_STRING )
+                    {
+                    // InternalChartDSL.g:1766:5: (lv_textColor_10_0= RULE_STRING )
+                    // InternalChartDSL.g:1767:6: lv_textColor_10_0= RULE_STRING
+                    {
+                    lv_textColor_10_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_textColor_10_0, grammarAccess.getChartLegendAccess().getTextColorSTRINGTerminalRuleCall_5_1_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getChartLegendRule());
+                      						}
+                      						setWithLastConsumed(
+                      							current,
+                      							"textColor",
+                      							lv_textColor_10_0,
+                      							"org.eclipse.xtext.xbase.Xtype.STRING");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
 
                     }
                     break;
@@ -4612,7 +5105,7 @@
 
 
     // $ANTLR start "entryRuleChartHighlighter"
-    // InternalChartDSL.g:1605:1: entryRuleChartHighlighter returns [EObject current=null] : iv_ruleChartHighlighter= ruleChartHighlighter EOF ;
+    // InternalChartDSL.g:1788:1: entryRuleChartHighlighter returns [EObject current=null] : iv_ruleChartHighlighter= ruleChartHighlighter EOF ;
     public final EObject entryRuleChartHighlighter() throws RecognitionException {
         EObject current = null;
 
@@ -4620,8 +5113,8 @@
 
 
         try {
-            // InternalChartDSL.g:1605:57: (iv_ruleChartHighlighter= ruleChartHighlighter EOF )
-            // InternalChartDSL.g:1606:2: iv_ruleChartHighlighter= ruleChartHighlighter EOF
+            // InternalChartDSL.g:1788:57: (iv_ruleChartHighlighter= ruleChartHighlighter EOF )
+            // InternalChartDSL.g:1789:2: iv_ruleChartHighlighter= ruleChartHighlighter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartHighlighterRule()); 
@@ -4652,7 +5145,7 @@
 
 
     // $ANTLR start "ruleChartHighlighter"
-    // InternalChartDSL.g:1612:1: ruleChartHighlighter returns [EObject current=null] : (otherlv_0= 'tooltip' ( (lv_location_1_0= ruleTooltipLocationEnum ) ) ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? ) ) ;
+    // InternalChartDSL.g:1795:1: ruleChartHighlighter returns [EObject current=null] : (otherlv_0= 'tooltip' ( (lv_location_1_0= ruleTooltipLocationEnum ) ) ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? ) ) ;
     public final EObject ruleChartHighlighter() throws RecognitionException {
         EObject current = null;
 
@@ -4666,30 +5159,30 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1618:2: ( (otherlv_0= 'tooltip' ( (lv_location_1_0= ruleTooltipLocationEnum ) ) ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? ) ) )
-            // InternalChartDSL.g:1619:2: (otherlv_0= 'tooltip' ( (lv_location_1_0= ruleTooltipLocationEnum ) ) ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? ) )
+            // InternalChartDSL.g:1801:2: ( (otherlv_0= 'tooltip' ( (lv_location_1_0= ruleTooltipLocationEnum ) ) ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? ) ) )
+            // InternalChartDSL.g:1802:2: (otherlv_0= 'tooltip' ( (lv_location_1_0= ruleTooltipLocationEnum ) ) ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? ) )
             {
-            // InternalChartDSL.g:1619:2: (otherlv_0= 'tooltip' ( (lv_location_1_0= ruleTooltipLocationEnum ) ) ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? ) )
-            // InternalChartDSL.g:1620:3: otherlv_0= 'tooltip' ( (lv_location_1_0= ruleTooltipLocationEnum ) ) ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? )
+            // InternalChartDSL.g:1802:2: (otherlv_0= 'tooltip' ( (lv_location_1_0= ruleTooltipLocationEnum ) ) ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? ) )
+            // InternalChartDSL.g:1803:3: otherlv_0= 'tooltip' ( (lv_location_1_0= ruleTooltipLocationEnum ) ) ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? )
             {
-            otherlv_0=(Token)match(input,32,FOLLOW_33); if (state.failed) return current;
+            otherlv_0=(Token)match(input,34,FOLLOW_40); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getChartHighlighterAccess().getTooltipKeyword_0());
               		
             }
-            // InternalChartDSL.g:1624:3: ( (lv_location_1_0= ruleTooltipLocationEnum ) )
-            // InternalChartDSL.g:1625:4: (lv_location_1_0= ruleTooltipLocationEnum )
+            // InternalChartDSL.g:1807:3: ( (lv_location_1_0= ruleTooltipLocationEnum ) )
+            // InternalChartDSL.g:1808:4: (lv_location_1_0= ruleTooltipLocationEnum )
             {
-            // InternalChartDSL.g:1625:4: (lv_location_1_0= ruleTooltipLocationEnum )
-            // InternalChartDSL.g:1626:5: lv_location_1_0= ruleTooltipLocationEnum
+            // InternalChartDSL.g:1808:4: (lv_location_1_0= ruleTooltipLocationEnum )
+            // InternalChartDSL.g:1809:5: lv_location_1_0= ruleTooltipLocationEnum
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getChartHighlighterAccess().getLocationTooltipLocationEnumEnumRuleCall_1_0());
               				
             }
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_41);
             lv_location_1_0=ruleTooltipLocationEnum();
 
             state._fsp--;
@@ -4713,24 +5206,24 @@
 
             }
 
-            // InternalChartDSL.g:1643:3: ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? )
-            // InternalChartDSL.g:1644:4: ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )?
+            // InternalChartDSL.g:1826:3: ( ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )? )
+            // InternalChartDSL.g:1827:4: ( (lv_tooltipAlways_2_0= 'always' ) )? ( (lv_insideChart_3_0= 'inside' ) )?
             {
-            // InternalChartDSL.g:1644:4: ( (lv_tooltipAlways_2_0= 'always' ) )?
-            int alt23=2;
-            int LA23_0 = input.LA(1);
+            // InternalChartDSL.g:1827:4: ( (lv_tooltipAlways_2_0= 'always' ) )?
+            int alt30=2;
+            int LA30_0 = input.LA(1);
 
-            if ( (LA23_0==56) ) {
-                alt23=1;
+            if ( (LA30_0==61) ) {
+                alt30=1;
             }
-            switch (alt23) {
+            switch (alt30) {
                 case 1 :
-                    // InternalChartDSL.g:1645:5: (lv_tooltipAlways_2_0= 'always' )
+                    // InternalChartDSL.g:1828:5: (lv_tooltipAlways_2_0= 'always' )
                     {
-                    // InternalChartDSL.g:1645:5: (lv_tooltipAlways_2_0= 'always' )
-                    // InternalChartDSL.g:1646:6: lv_tooltipAlways_2_0= 'always'
+                    // InternalChartDSL.g:1828:5: (lv_tooltipAlways_2_0= 'always' )
+                    // InternalChartDSL.g:1829:6: lv_tooltipAlways_2_0= 'always'
                     {
-                    lv_tooltipAlways_2_0=(Token)match(input,56,FOLLOW_35); if (state.failed) return current;
+                    lv_tooltipAlways_2_0=(Token)match(input,61,FOLLOW_42); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_tooltipAlways_2_0, grammarAccess.getChartHighlighterAccess().getTooltipAlwaysAlwaysKeyword_2_0_0());
@@ -4753,21 +5246,21 @@
 
             }
 
-            // InternalChartDSL.g:1658:4: ( (lv_insideChart_3_0= 'inside' ) )?
-            int alt24=2;
-            int LA24_0 = input.LA(1);
+            // InternalChartDSL.g:1841:4: ( (lv_insideChart_3_0= 'inside' ) )?
+            int alt31=2;
+            int LA31_0 = input.LA(1);
 
-            if ( (LA24_0==57) ) {
-                alt24=1;
+            if ( (LA31_0==62) ) {
+                alt31=1;
             }
-            switch (alt24) {
+            switch (alt31) {
                 case 1 :
-                    // InternalChartDSL.g:1659:5: (lv_insideChart_3_0= 'inside' )
+                    // InternalChartDSL.g:1842:5: (lv_insideChart_3_0= 'inside' )
                     {
-                    // InternalChartDSL.g:1659:5: (lv_insideChart_3_0= 'inside' )
-                    // InternalChartDSL.g:1660:6: lv_insideChart_3_0= 'inside'
+                    // InternalChartDSL.g:1842:5: (lv_insideChart_3_0= 'inside' )
+                    // InternalChartDSL.g:1843:6: lv_insideChart_3_0= 'inside'
                     {
-                    lv_insideChart_3_0=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
+                    lv_insideChart_3_0=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_insideChart_3_0, grammarAccess.getChartHighlighterAccess().getInsideChartInsideKeyword_2_1_0());
@@ -4818,7 +5311,7 @@
 
 
     // $ANTLR start "entryRuleChartAxis"
-    // InternalChartDSL.g:1677:1: entryRuleChartAxis returns [EObject current=null] : iv_ruleChartAxis= ruleChartAxis EOF ;
+    // InternalChartDSL.g:1860:1: entryRuleChartAxis returns [EObject current=null] : iv_ruleChartAxis= ruleChartAxis EOF ;
     public final EObject entryRuleChartAxis() throws RecognitionException {
         EObject current = null;
 
@@ -4826,8 +5319,8 @@
 
 
         try {
-            // InternalChartDSL.g:1677:50: (iv_ruleChartAxis= ruleChartAxis EOF )
-            // InternalChartDSL.g:1678:2: iv_ruleChartAxis= ruleChartAxis EOF
+            // InternalChartDSL.g:1860:50: (iv_ruleChartAxis= ruleChartAxis EOF )
+            // InternalChartDSL.g:1861:2: iv_ruleChartAxis= ruleChartAxis EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartAxisRule()); 
@@ -4858,7 +5351,7 @@
 
 
     // $ANTLR start "ruleChartAxis"
-    // InternalChartDSL.g:1684:1: ruleChartAxis returns [EObject current=null] : (otherlv_0= 'axis' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'renders' ( (lv_renderType_3_0= ruleRenderTypeEnum ) ) ( (lv_shortLabel_4_0= 'shortLabel' ) )? (otherlv_5= 'angle' ( (lv_angle_6_0= ruleSignedNumber ) ) )? ) ;
+    // InternalChartDSL.g:1867:1: ruleChartAxis returns [EObject current=null] : (otherlv_0= 'axis' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'renders' ( (lv_renderType_3_0= ruleRenderTypeEnum ) ) ( (lv_shortLabel_4_0= 'shortLabel' ) )? (otherlv_5= 'labelAngle' ( (lv_labelAngle_6_0= ruleSignedNumber ) ) )? (otherlv_7= 'labelFontSize' ( (lv_labelFontSize_8_0= RULE_INT ) ) )? (otherlv_9= 'labelTextColor' ( (lv_labelTextColor_10_0= RULE_STRING ) ) )? (otherlv_11= 'tickAngle' ( (lv_tickAngle_12_0= ruleSignedNumber ) ) )? (otherlv_13= 'tickFontSize' ( (lv_tickFontSize_14_0= RULE_INT ) ) )? (otherlv_15= 'tickTextColor' ( (lv_tickTextColor_16_0= RULE_STRING ) ) )? ) ;
     public final EObject ruleChartAxis() throws RecognitionException {
         EObject current = null;
 
@@ -4867,32 +5360,43 @@
         Token otherlv_2=null;
         Token lv_shortLabel_4_0=null;
         Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token lv_labelFontSize_8_0=null;
+        Token otherlv_9=null;
+        Token lv_labelTextColor_10_0=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
+        Token lv_tickFontSize_14_0=null;
+        Token otherlv_15=null;
+        Token lv_tickTextColor_16_0=null;
         Enumerator lv_renderType_3_0 = null;
 
-        AntlrDatatypeRuleToken lv_angle_6_0 = null;
+        AntlrDatatypeRuleToken lv_labelAngle_6_0 = null;
+
+        AntlrDatatypeRuleToken lv_tickAngle_12_0 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1690:2: ( (otherlv_0= 'axis' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'renders' ( (lv_renderType_3_0= ruleRenderTypeEnum ) ) ( (lv_shortLabel_4_0= 'shortLabel' ) )? (otherlv_5= 'angle' ( (lv_angle_6_0= ruleSignedNumber ) ) )? ) )
-            // InternalChartDSL.g:1691:2: (otherlv_0= 'axis' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'renders' ( (lv_renderType_3_0= ruleRenderTypeEnum ) ) ( (lv_shortLabel_4_0= 'shortLabel' ) )? (otherlv_5= 'angle' ( (lv_angle_6_0= ruleSignedNumber ) ) )? )
+            // InternalChartDSL.g:1873:2: ( (otherlv_0= 'axis' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'renders' ( (lv_renderType_3_0= ruleRenderTypeEnum ) ) ( (lv_shortLabel_4_0= 'shortLabel' ) )? (otherlv_5= 'labelAngle' ( (lv_labelAngle_6_0= ruleSignedNumber ) ) )? (otherlv_7= 'labelFontSize' ( (lv_labelFontSize_8_0= RULE_INT ) ) )? (otherlv_9= 'labelTextColor' ( (lv_labelTextColor_10_0= RULE_STRING ) ) )? (otherlv_11= 'tickAngle' ( (lv_tickAngle_12_0= ruleSignedNumber ) ) )? (otherlv_13= 'tickFontSize' ( (lv_tickFontSize_14_0= RULE_INT ) ) )? (otherlv_15= 'tickTextColor' ( (lv_tickTextColor_16_0= RULE_STRING ) ) )? ) )
+            // InternalChartDSL.g:1874:2: (otherlv_0= 'axis' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'renders' ( (lv_renderType_3_0= ruleRenderTypeEnum ) ) ( (lv_shortLabel_4_0= 'shortLabel' ) )? (otherlv_5= 'labelAngle' ( (lv_labelAngle_6_0= ruleSignedNumber ) ) )? (otherlv_7= 'labelFontSize' ( (lv_labelFontSize_8_0= RULE_INT ) ) )? (otherlv_9= 'labelTextColor' ( (lv_labelTextColor_10_0= RULE_STRING ) ) )? (otherlv_11= 'tickAngle' ( (lv_tickAngle_12_0= ruleSignedNumber ) ) )? (otherlv_13= 'tickFontSize' ( (lv_tickFontSize_14_0= RULE_INT ) ) )? (otherlv_15= 'tickTextColor' ( (lv_tickTextColor_16_0= RULE_STRING ) ) )? )
             {
-            // InternalChartDSL.g:1691:2: (otherlv_0= 'axis' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'renders' ( (lv_renderType_3_0= ruleRenderTypeEnum ) ) ( (lv_shortLabel_4_0= 'shortLabel' ) )? (otherlv_5= 'angle' ( (lv_angle_6_0= ruleSignedNumber ) ) )? )
-            // InternalChartDSL.g:1692:3: otherlv_0= 'axis' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'renders' ( (lv_renderType_3_0= ruleRenderTypeEnum ) ) ( (lv_shortLabel_4_0= 'shortLabel' ) )? (otherlv_5= 'angle' ( (lv_angle_6_0= ruleSignedNumber ) ) )?
+            // InternalChartDSL.g:1874:2: (otherlv_0= 'axis' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'renders' ( (lv_renderType_3_0= ruleRenderTypeEnum ) ) ( (lv_shortLabel_4_0= 'shortLabel' ) )? (otherlv_5= 'labelAngle' ( (lv_labelAngle_6_0= ruleSignedNumber ) ) )? (otherlv_7= 'labelFontSize' ( (lv_labelFontSize_8_0= RULE_INT ) ) )? (otherlv_9= 'labelTextColor' ( (lv_labelTextColor_10_0= RULE_STRING ) ) )? (otherlv_11= 'tickAngle' ( (lv_tickAngle_12_0= ruleSignedNumber ) ) )? (otherlv_13= 'tickFontSize' ( (lv_tickFontSize_14_0= RULE_INT ) ) )? (otherlv_15= 'tickTextColor' ( (lv_tickTextColor_16_0= RULE_STRING ) ) )? )
+            // InternalChartDSL.g:1875:3: otherlv_0= 'axis' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'renders' ( (lv_renderType_3_0= ruleRenderTypeEnum ) ) ( (lv_shortLabel_4_0= 'shortLabel' ) )? (otherlv_5= 'labelAngle' ( (lv_labelAngle_6_0= ruleSignedNumber ) ) )? (otherlv_7= 'labelFontSize' ( (lv_labelFontSize_8_0= RULE_INT ) ) )? (otherlv_9= 'labelTextColor' ( (lv_labelTextColor_10_0= RULE_STRING ) ) )? (otherlv_11= 'tickAngle' ( (lv_tickAngle_12_0= ruleSignedNumber ) ) )? (otherlv_13= 'tickFontSize' ( (lv_tickFontSize_14_0= RULE_INT ) ) )? (otherlv_15= 'tickTextColor' ( (lv_tickTextColor_16_0= RULE_STRING ) ) )?
             {
-            otherlv_0=(Token)match(input,58,FOLLOW_4); if (state.failed) return current;
+            otherlv_0=(Token)match(input,63,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getChartAxisAccess().getAxisKeyword_0());
               		
             }
-            // InternalChartDSL.g:1696:3: ( (otherlv_1= RULE_ID ) )
-            // InternalChartDSL.g:1697:4: (otherlv_1= RULE_ID )
+            // InternalChartDSL.g:1879:3: ( (otherlv_1= RULE_ID ) )
+            // InternalChartDSL.g:1880:4: (otherlv_1= RULE_ID )
             {
-            // InternalChartDSL.g:1697:4: (otherlv_1= RULE_ID )
-            // InternalChartDSL.g:1698:5: otherlv_1= RULE_ID
+            // InternalChartDSL.g:1880:4: (otherlv_1= RULE_ID )
+            // InternalChartDSL.g:1881:5: otherlv_1= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -4901,7 +5405,7 @@
               					}
               				
             }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_36); if (state.failed) return current;
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_43); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getChartAxisAccess().getAxisDatamartAxisCrossReference_1_0());
@@ -4913,24 +5417,24 @@
 
             }
 
-            otherlv_2=(Token)match(input,59,FOLLOW_37); if (state.failed) return current;
+            otherlv_2=(Token)match(input,64,FOLLOW_44); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getChartAxisAccess().getRendersKeyword_2());
               		
             }
-            // InternalChartDSL.g:1713:3: ( (lv_renderType_3_0= ruleRenderTypeEnum ) )
-            // InternalChartDSL.g:1714:4: (lv_renderType_3_0= ruleRenderTypeEnum )
+            // InternalChartDSL.g:1896:3: ( (lv_renderType_3_0= ruleRenderTypeEnum ) )
+            // InternalChartDSL.g:1897:4: (lv_renderType_3_0= ruleRenderTypeEnum )
             {
-            // InternalChartDSL.g:1714:4: (lv_renderType_3_0= ruleRenderTypeEnum )
-            // InternalChartDSL.g:1715:5: lv_renderType_3_0= ruleRenderTypeEnum
+            // InternalChartDSL.g:1897:4: (lv_renderType_3_0= ruleRenderTypeEnum )
+            // InternalChartDSL.g:1898:5: lv_renderType_3_0= ruleRenderTypeEnum
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getChartAxisAccess().getRenderTypeRenderTypeEnumEnumRuleCall_3_0());
               				
             }
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_45);
             lv_renderType_3_0=ruleRenderTypeEnum();
 
             state._fsp--;
@@ -4954,21 +5458,21 @@
 
             }
 
-            // InternalChartDSL.g:1732:3: ( (lv_shortLabel_4_0= 'shortLabel' ) )?
-            int alt25=2;
-            int LA25_0 = input.LA(1);
+            // InternalChartDSL.g:1915:3: ( (lv_shortLabel_4_0= 'shortLabel' ) )?
+            int alt32=2;
+            int LA32_0 = input.LA(1);
 
-            if ( (LA25_0==60) ) {
-                alt25=1;
+            if ( (LA32_0==65) ) {
+                alt32=1;
             }
-            switch (alt25) {
+            switch (alt32) {
                 case 1 :
-                    // InternalChartDSL.g:1733:4: (lv_shortLabel_4_0= 'shortLabel' )
+                    // InternalChartDSL.g:1916:4: (lv_shortLabel_4_0= 'shortLabel' )
                     {
-                    // InternalChartDSL.g:1733:4: (lv_shortLabel_4_0= 'shortLabel' )
-                    // InternalChartDSL.g:1734:5: lv_shortLabel_4_0= 'shortLabel'
+                    // InternalChartDSL.g:1916:4: (lv_shortLabel_4_0= 'shortLabel' )
+                    // InternalChartDSL.g:1917:5: lv_shortLabel_4_0= 'shortLabel'
                     {
-                    lv_shortLabel_4_0=(Token)match(input,60,FOLLOW_39); if (state.failed) return current;
+                    lv_shortLabel_4_0=(Token)match(input,65,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(lv_shortLabel_4_0, grammarAccess.getChartAxisAccess().getShortLabelShortLabelKeyword_4_0());
@@ -4991,36 +5495,36 @@
 
             }
 
-            // InternalChartDSL.g:1746:3: (otherlv_5= 'angle' ( (lv_angle_6_0= ruleSignedNumber ) ) )?
-            int alt26=2;
-            int LA26_0 = input.LA(1);
+            // InternalChartDSL.g:1929:3: (otherlv_5= 'labelAngle' ( (lv_labelAngle_6_0= ruleSignedNumber ) ) )?
+            int alt33=2;
+            int LA33_0 = input.LA(1);
 
-            if ( (LA26_0==61) ) {
-                alt26=1;
+            if ( (LA33_0==66) ) {
+                alt33=1;
             }
-            switch (alt26) {
+            switch (alt33) {
                 case 1 :
-                    // InternalChartDSL.g:1747:4: otherlv_5= 'angle' ( (lv_angle_6_0= ruleSignedNumber ) )
+                    // InternalChartDSL.g:1930:4: otherlv_5= 'labelAngle' ( (lv_labelAngle_6_0= ruleSignedNumber ) )
                     {
-                    otherlv_5=(Token)match(input,61,FOLLOW_40); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,66,FOLLOW_47); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				newLeafNode(otherlv_5, grammarAccess.getChartAxisAccess().getAngleKeyword_5_0());
+                      				newLeafNode(otherlv_5, grammarAccess.getChartAxisAccess().getLabelAngleKeyword_5_0());
                       			
                     }
-                    // InternalChartDSL.g:1751:4: ( (lv_angle_6_0= ruleSignedNumber ) )
-                    // InternalChartDSL.g:1752:5: (lv_angle_6_0= ruleSignedNumber )
+                    // InternalChartDSL.g:1934:4: ( (lv_labelAngle_6_0= ruleSignedNumber ) )
+                    // InternalChartDSL.g:1935:5: (lv_labelAngle_6_0= ruleSignedNumber )
                     {
-                    // InternalChartDSL.g:1752:5: (lv_angle_6_0= ruleSignedNumber )
-                    // InternalChartDSL.g:1753:6: lv_angle_6_0= ruleSignedNumber
+                    // InternalChartDSL.g:1935:5: (lv_labelAngle_6_0= ruleSignedNumber )
+                    // InternalChartDSL.g:1936:6: lv_labelAngle_6_0= ruleSignedNumber
                     {
                     if ( state.backtracking==0 ) {
 
-                      						newCompositeNode(grammarAccess.getChartAxisAccess().getAngleSignedNumberParserRuleCall_5_1_0());
+                      						newCompositeNode(grammarAccess.getChartAxisAccess().getLabelAngleSignedNumberParserRuleCall_5_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_2);
-                    lv_angle_6_0=ruleSignedNumber();
+                    pushFollow(FOLLOW_48);
+                    lv_labelAngle_6_0=ruleSignedNumber();
 
                     state._fsp--;
                     if (state.failed) return current;
@@ -5031,8 +5535,8 @@
                       						}
                       						set(
                       							current,
-                      							"angle",
-                      							lv_angle_6_0,
+                      							"labelAngle",
+                      							lv_labelAngle_6_0,
                       							"org.eclipse.osbp.xtext.chart.ChartDSL.SignedNumber");
                       						afterParserOrEnumRuleCall();
                       					
@@ -5049,6 +5553,276 @@
 
             }
 
+            // InternalChartDSL.g:1954:3: (otherlv_7= 'labelFontSize' ( (lv_labelFontSize_8_0= RULE_INT ) ) )?
+            int alt34=2;
+            int LA34_0 = input.LA(1);
+
+            if ( (LA34_0==67) ) {
+                alt34=1;
+            }
+            switch (alt34) {
+                case 1 :
+                    // InternalChartDSL.g:1955:4: otherlv_7= 'labelFontSize' ( (lv_labelFontSize_8_0= RULE_INT ) )
+                    {
+                    otherlv_7=(Token)match(input,67,FOLLOW_27); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_7, grammarAccess.getChartAxisAccess().getLabelFontSizeKeyword_6_0());
+                      			
+                    }
+                    // InternalChartDSL.g:1959:4: ( (lv_labelFontSize_8_0= RULE_INT ) )
+                    // InternalChartDSL.g:1960:5: (lv_labelFontSize_8_0= RULE_INT )
+                    {
+                    // InternalChartDSL.g:1960:5: (lv_labelFontSize_8_0= RULE_INT )
+                    // InternalChartDSL.g:1961:6: lv_labelFontSize_8_0= RULE_INT
+                    {
+                    lv_labelFontSize_8_0=(Token)match(input,RULE_INT,FOLLOW_49); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_labelFontSize_8_0, grammarAccess.getChartAxisAccess().getLabelFontSizeINTTerminalRuleCall_6_1_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getChartAxisRule());
+                      						}
+                      						setWithLastConsumed(
+                      							current,
+                      							"labelFontSize",
+                      							lv_labelFontSize_8_0,
+                      							"org.eclipse.xtext.xbase.Xbase.INT");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalChartDSL.g:1978:3: (otherlv_9= 'labelTextColor' ( (lv_labelTextColor_10_0= RULE_STRING ) ) )?
+            int alt35=2;
+            int LA35_0 = input.LA(1);
+
+            if ( (LA35_0==68) ) {
+                alt35=1;
+            }
+            switch (alt35) {
+                case 1 :
+                    // InternalChartDSL.g:1979:4: otherlv_9= 'labelTextColor' ( (lv_labelTextColor_10_0= RULE_STRING ) )
+                    {
+                    otherlv_9=(Token)match(input,68,FOLLOW_13); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_9, grammarAccess.getChartAxisAccess().getLabelTextColorKeyword_7_0());
+                      			
+                    }
+                    // InternalChartDSL.g:1983:4: ( (lv_labelTextColor_10_0= RULE_STRING ) )
+                    // InternalChartDSL.g:1984:5: (lv_labelTextColor_10_0= RULE_STRING )
+                    {
+                    // InternalChartDSL.g:1984:5: (lv_labelTextColor_10_0= RULE_STRING )
+                    // InternalChartDSL.g:1985:6: lv_labelTextColor_10_0= RULE_STRING
+                    {
+                    lv_labelTextColor_10_0=(Token)match(input,RULE_STRING,FOLLOW_50); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_labelTextColor_10_0, grammarAccess.getChartAxisAccess().getLabelTextColorSTRINGTerminalRuleCall_7_1_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getChartAxisRule());
+                      						}
+                      						setWithLastConsumed(
+                      							current,
+                      							"labelTextColor",
+                      							lv_labelTextColor_10_0,
+                      							"org.eclipse.xtext.xbase.Xtype.STRING");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalChartDSL.g:2002:3: (otherlv_11= 'tickAngle' ( (lv_tickAngle_12_0= ruleSignedNumber ) ) )?
+            int alt36=2;
+            int LA36_0 = input.LA(1);
+
+            if ( (LA36_0==69) ) {
+                alt36=1;
+            }
+            switch (alt36) {
+                case 1 :
+                    // InternalChartDSL.g:2003:4: otherlv_11= 'tickAngle' ( (lv_tickAngle_12_0= ruleSignedNumber ) )
+                    {
+                    otherlv_11=(Token)match(input,69,FOLLOW_51); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_11, grammarAccess.getChartAxisAccess().getTickAngleKeyword_8_0());
+                      			
+                    }
+                    // InternalChartDSL.g:2007:4: ( (lv_tickAngle_12_0= ruleSignedNumber ) )
+                    // InternalChartDSL.g:2008:5: (lv_tickAngle_12_0= ruleSignedNumber )
+                    {
+                    // InternalChartDSL.g:2008:5: (lv_tickAngle_12_0= ruleSignedNumber )
+                    // InternalChartDSL.g:2009:6: lv_tickAngle_12_0= ruleSignedNumber
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getChartAxisAccess().getTickAngleSignedNumberParserRuleCall_8_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_52);
+                    lv_tickAngle_12_0=ruleSignedNumber();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getChartAxisRule());
+                      						}
+                      						set(
+                      							current,
+                      							"tickAngle",
+                      							lv_tickAngle_12_0,
+                      							"org.eclipse.osbp.xtext.chart.ChartDSL.SignedNumber");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalChartDSL.g:2027:3: (otherlv_13= 'tickFontSize' ( (lv_tickFontSize_14_0= RULE_INT ) ) )?
+            int alt37=2;
+            int LA37_0 = input.LA(1);
+
+            if ( (LA37_0==70) ) {
+                alt37=1;
+            }
+            switch (alt37) {
+                case 1 :
+                    // InternalChartDSL.g:2028:4: otherlv_13= 'tickFontSize' ( (lv_tickFontSize_14_0= RULE_INT ) )
+                    {
+                    otherlv_13=(Token)match(input,70,FOLLOW_27); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_13, grammarAccess.getChartAxisAccess().getTickFontSizeKeyword_9_0());
+                      			
+                    }
+                    // InternalChartDSL.g:2032:4: ( (lv_tickFontSize_14_0= RULE_INT ) )
+                    // InternalChartDSL.g:2033:5: (lv_tickFontSize_14_0= RULE_INT )
+                    {
+                    // InternalChartDSL.g:2033:5: (lv_tickFontSize_14_0= RULE_INT )
+                    // InternalChartDSL.g:2034:6: lv_tickFontSize_14_0= RULE_INT
+                    {
+                    lv_tickFontSize_14_0=(Token)match(input,RULE_INT,FOLLOW_53); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_tickFontSize_14_0, grammarAccess.getChartAxisAccess().getTickFontSizeINTTerminalRuleCall_9_1_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getChartAxisRule());
+                      						}
+                      						setWithLastConsumed(
+                      							current,
+                      							"tickFontSize",
+                      							lv_tickFontSize_14_0,
+                      							"org.eclipse.xtext.xbase.Xbase.INT");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalChartDSL.g:2051:3: (otherlv_15= 'tickTextColor' ( (lv_tickTextColor_16_0= RULE_STRING ) ) )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
+
+            if ( (LA38_0==71) ) {
+                alt38=1;
+            }
+            switch (alt38) {
+                case 1 :
+                    // InternalChartDSL.g:2052:4: otherlv_15= 'tickTextColor' ( (lv_tickTextColor_16_0= RULE_STRING ) )
+                    {
+                    otherlv_15=(Token)match(input,71,FOLLOW_13); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_15, grammarAccess.getChartAxisAccess().getTickTextColorKeyword_10_0());
+                      			
+                    }
+                    // InternalChartDSL.g:2056:4: ( (lv_tickTextColor_16_0= RULE_STRING ) )
+                    // InternalChartDSL.g:2057:5: (lv_tickTextColor_16_0= RULE_STRING )
+                    {
+                    // InternalChartDSL.g:2057:5: (lv_tickTextColor_16_0= RULE_STRING )
+                    // InternalChartDSL.g:2058:6: lv_tickTextColor_16_0= RULE_STRING
+                    {
+                    lv_tickTextColor_16_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_tickTextColor_16_0, grammarAccess.getChartAxisAccess().getTickTextColorSTRINGTerminalRuleCall_10_1_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getChartAxisRule());
+                      						}
+                      						setWithLastConsumed(
+                      							current,
+                      							"tickTextColor",
+                      							lv_tickTextColor_16_0,
+                      							"org.eclipse.xtext.xbase.Xtype.STRING");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
 
             }
 
@@ -5074,7 +5848,7 @@
 
 
     // $ANTLR start "entryRuleChartRangeElement"
-    // InternalChartDSL.g:1775:1: entryRuleChartRangeElement returns [EObject current=null] : iv_ruleChartRangeElement= ruleChartRangeElement EOF ;
+    // InternalChartDSL.g:2079:1: entryRuleChartRangeElement returns [EObject current=null] : iv_ruleChartRangeElement= ruleChartRangeElement EOF ;
     public final EObject entryRuleChartRangeElement() throws RecognitionException {
         EObject current = null;
 
@@ -5082,8 +5856,8 @@
 
 
         try {
-            // InternalChartDSL.g:1775:58: (iv_ruleChartRangeElement= ruleChartRangeElement EOF )
-            // InternalChartDSL.g:1776:2: iv_ruleChartRangeElement= ruleChartRangeElement EOF
+            // InternalChartDSL.g:2079:58: (iv_ruleChartRangeElement= ruleChartRangeElement EOF )
+            // InternalChartDSL.g:2080:2: iv_ruleChartRangeElement= ruleChartRangeElement EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartRangeElementRule()); 
@@ -5114,7 +5888,7 @@
 
 
     // $ANTLR start "ruleChartRangeElement"
-    // InternalChartDSL.g:1782:1: ruleChartRangeElement returns [EObject current=null] : this_ChartSegmentColor_0= ruleChartSegmentColor ;
+    // InternalChartDSL.g:2086:1: ruleChartRangeElement returns [EObject current=null] : this_ChartSegmentColor_0= ruleChartSegmentColor ;
     public final EObject ruleChartRangeElement() throws RecognitionException {
         EObject current = null;
 
@@ -5125,8 +5899,8 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1788:2: (this_ChartSegmentColor_0= ruleChartSegmentColor )
-            // InternalChartDSL.g:1789:2: this_ChartSegmentColor_0= ruleChartSegmentColor
+            // InternalChartDSL.g:2092:2: (this_ChartSegmentColor_0= ruleChartSegmentColor )
+            // InternalChartDSL.g:2093:2: this_ChartSegmentColor_0= ruleChartSegmentColor
             {
             if ( state.backtracking==0 ) {
 
@@ -5166,7 +5940,7 @@
 
 
     // $ANTLR start "entryRuleChartSegmentColor"
-    // InternalChartDSL.g:1800:1: entryRuleChartSegmentColor returns [EObject current=null] : iv_ruleChartSegmentColor= ruleChartSegmentColor EOF ;
+    // InternalChartDSL.g:2104:1: entryRuleChartSegmentColor returns [EObject current=null] : iv_ruleChartSegmentColor= ruleChartSegmentColor EOF ;
     public final EObject entryRuleChartSegmentColor() throws RecognitionException {
         EObject current = null;
 
@@ -5174,8 +5948,8 @@
 
 
         try {
-            // InternalChartDSL.g:1800:58: (iv_ruleChartSegmentColor= ruleChartSegmentColor EOF )
-            // InternalChartDSL.g:1801:2: iv_ruleChartSegmentColor= ruleChartSegmentColor EOF
+            // InternalChartDSL.g:2104:58: (iv_ruleChartSegmentColor= ruleChartSegmentColor EOF )
+            // InternalChartDSL.g:2105:2: iv_ruleChartSegmentColor= ruleChartSegmentColor EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getChartSegmentColorRule()); 
@@ -5206,7 +5980,7 @@
 
 
     // $ANTLR start "ruleChartSegmentColor"
-    // InternalChartDSL.g:1807:1: ruleChartSegmentColor returns [EObject current=null] : (otherlv_0= 'segmentcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) ;
+    // InternalChartDSL.g:2111:1: ruleChartSegmentColor returns [EObject current=null] : (otherlv_0= 'segmentcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) ;
     public final EObject ruleChartSegmentColor() throws RecognitionException {
         EObject current = null;
 
@@ -5217,23 +5991,23 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1813:2: ( (otherlv_0= 'segmentcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) )
-            // InternalChartDSL.g:1814:2: (otherlv_0= 'segmentcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
+            // InternalChartDSL.g:2117:2: ( (otherlv_0= 'segmentcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) )
+            // InternalChartDSL.g:2118:2: (otherlv_0= 'segmentcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
             {
-            // InternalChartDSL.g:1814:2: (otherlv_0= 'segmentcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
-            // InternalChartDSL.g:1815:3: otherlv_0= 'segmentcolor' ( (lv_rgb_1_0= RULE_STRING ) )
+            // InternalChartDSL.g:2118:2: (otherlv_0= 'segmentcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
+            // InternalChartDSL.g:2119:3: otherlv_0= 'segmentcolor' ( (lv_rgb_1_0= RULE_STRING ) )
             {
-            otherlv_0=(Token)match(input,62,FOLLOW_8); if (state.failed) return current;
+            otherlv_0=(Token)match(input,72,FOLLOW_13); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getChartSegmentColorAccess().getSegmentcolorKeyword_0());
               		
             }
-            // InternalChartDSL.g:1819:3: ( (lv_rgb_1_0= RULE_STRING ) )
-            // InternalChartDSL.g:1820:4: (lv_rgb_1_0= RULE_STRING )
+            // InternalChartDSL.g:2123:3: ( (lv_rgb_1_0= RULE_STRING ) )
+            // InternalChartDSL.g:2124:4: (lv_rgb_1_0= RULE_STRING )
             {
-            // InternalChartDSL.g:1820:4: (lv_rgb_1_0= RULE_STRING )
-            // InternalChartDSL.g:1821:5: lv_rgb_1_0= RULE_STRING
+            // InternalChartDSL.g:2124:4: (lv_rgb_1_0= RULE_STRING )
+            // InternalChartDSL.g:2125:5: lv_rgb_1_0= RULE_STRING
             {
             lv_rgb_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -5284,7 +6058,7 @@
 
 
     // $ANTLR start "entryRuleSignedNumber"
-    // InternalChartDSL.g:1841:1: entryRuleSignedNumber returns [String current=null] : iv_ruleSignedNumber= ruleSignedNumber EOF ;
+    // InternalChartDSL.g:2145:1: entryRuleSignedNumber returns [String current=null] : iv_ruleSignedNumber= ruleSignedNumber EOF ;
     public final String entryRuleSignedNumber() throws RecognitionException {
         String current = null;
 
@@ -5292,8 +6066,8 @@
 
 
         try {
-            // InternalChartDSL.g:1841:52: (iv_ruleSignedNumber= ruleSignedNumber EOF )
-            // InternalChartDSL.g:1842:2: iv_ruleSignedNumber= ruleSignedNumber EOF
+            // InternalChartDSL.g:2145:52: (iv_ruleSignedNumber= ruleSignedNumber EOF )
+            // InternalChartDSL.g:2146:2: iv_ruleSignedNumber= ruleSignedNumber EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSignedNumberRule()); 
@@ -5324,7 +6098,7 @@
 
 
     // $ANTLR start "ruleSignedNumber"
-    // InternalChartDSL.g:1848:1: ruleSignedNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT )? ;
+    // InternalChartDSL.g:2152:1: ruleSignedNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT )? ;
     public final AntlrDatatypeRuleToken ruleSignedNumber() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -5335,32 +6109,32 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1854:2: ( ( (kw= '-' )? this_INT_1= RULE_INT )? )
-            // InternalChartDSL.g:1855:2: ( (kw= '-' )? this_INT_1= RULE_INT )?
+            // InternalChartDSL.g:2158:2: ( ( (kw= '-' )? this_INT_1= RULE_INT )? )
+            // InternalChartDSL.g:2159:2: ( (kw= '-' )? this_INT_1= RULE_INT )?
             {
-            // InternalChartDSL.g:1855:2: ( (kw= '-' )? this_INT_1= RULE_INT )?
-            int alt28=2;
-            int LA28_0 = input.LA(1);
+            // InternalChartDSL.g:2159:2: ( (kw= '-' )? this_INT_1= RULE_INT )?
+            int alt40=2;
+            int LA40_0 = input.LA(1);
 
-            if ( (LA28_0==RULE_INT||LA28_0==63) ) {
-                alt28=1;
+            if ( (LA40_0==RULE_INT||LA40_0==73) ) {
+                alt40=1;
             }
-            switch (alt28) {
+            switch (alt40) {
                 case 1 :
-                    // InternalChartDSL.g:1856:3: (kw= '-' )? this_INT_1= RULE_INT
+                    // InternalChartDSL.g:2160:3: (kw= '-' )? this_INT_1= RULE_INT
                     {
-                    // InternalChartDSL.g:1856:3: (kw= '-' )?
-                    int alt27=2;
-                    int LA27_0 = input.LA(1);
+                    // InternalChartDSL.g:2160:3: (kw= '-' )?
+                    int alt39=2;
+                    int LA39_0 = input.LA(1);
 
-                    if ( (LA27_0==63) ) {
-                        alt27=1;
+                    if ( (LA39_0==73) ) {
+                        alt39=1;
                     }
-                    switch (alt27) {
+                    switch (alt39) {
                         case 1 :
-                            // InternalChartDSL.g:1857:4: kw= '-'
+                            // InternalChartDSL.g:2161:4: kw= '-'
                             {
-                            kw=(Token)match(input,63,FOLLOW_22); if (state.failed) return current;
+                            kw=(Token)match(input,73,FOLLOW_27); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               				current.merge(kw);
@@ -5412,7 +6186,7 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLESTRING"
-    // InternalChartDSL.g:1874:1: entryRuleTRANSLATABLESTRING returns [String current=null] : iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF ;
+    // InternalChartDSL.g:2178:1: entryRuleTRANSLATABLESTRING returns [String current=null] : iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF ;
     public final String entryRuleTRANSLATABLESTRING() throws RecognitionException {
         String current = null;
 
@@ -5420,8 +6194,8 @@
 
 
         try {
-            // InternalChartDSL.g:1874:58: (iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF )
-            // InternalChartDSL.g:1875:2: iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF
+            // InternalChartDSL.g:2178:58: (iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF )
+            // InternalChartDSL.g:2179:2: iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTRANSLATABLESTRINGRule()); 
@@ -5452,7 +6226,7 @@
 
 
     // $ANTLR start "ruleTRANSLATABLESTRING"
-    // InternalChartDSL.g:1881:1: ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
+    // InternalChartDSL.g:2185:1: ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
     public final AntlrDatatypeRuleToken ruleTRANSLATABLESTRING() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -5462,8 +6236,8 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1887:2: (this_STRING_0= RULE_STRING )
-            // InternalChartDSL.g:1888:2: this_STRING_0= RULE_STRING
+            // InternalChartDSL.g:2191:2: (this_STRING_0= RULE_STRING )
+            // InternalChartDSL.g:2192:2: this_STRING_0= RULE_STRING
             {
             this_STRING_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -5498,7 +6272,7 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLEID"
-    // InternalChartDSL.g:1898:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
+    // InternalChartDSL.g:2202:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
     public final String entryRuleTRANSLATABLEID() throws RecognitionException {
         String current = null;
 
@@ -5506,8 +6280,8 @@
 
 
         try {
-            // InternalChartDSL.g:1898:54: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
-            // InternalChartDSL.g:1899:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
+            // InternalChartDSL.g:2202:54: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
+            // InternalChartDSL.g:2203:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTRANSLATABLEIDRule()); 
@@ -5538,7 +6312,7 @@
 
 
     // $ANTLR start "ruleTRANSLATABLEID"
-    // InternalChartDSL.g:1905:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    // InternalChartDSL.g:2209:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
     public final AntlrDatatypeRuleToken ruleTRANSLATABLEID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -5548,8 +6322,8 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1911:2: (this_ID_0= RULE_ID )
-            // InternalChartDSL.g:1912:2: this_ID_0= RULE_ID
+            // InternalChartDSL.g:2215:2: (this_ID_0= RULE_ID )
+            // InternalChartDSL.g:2216:2: this_ID_0= RULE_ID
             {
             this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -5584,7 +6358,7 @@
 
 
     // $ANTLR start "entryRuleXImportDeclaration"
-    // InternalChartDSL.g:1922:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
+    // InternalChartDSL.g:2226:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
     public final EObject entryRuleXImportDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -5592,8 +6366,8 @@
 
 
         try {
-            // InternalChartDSL.g:1922:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
-            // InternalChartDSL.g:1923:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
+            // InternalChartDSL.g:2226:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
+            // InternalChartDSL.g:2227:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXImportDeclarationRule()); 
@@ -5624,7 +6398,7 @@
 
 
     // $ANTLR start "ruleXImportDeclaration"
-    // InternalChartDSL.g:1929:1: ruleXImportDeclaration returns [EObject current=null] : ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) ;
+    // InternalChartDSL.g:2233:1: ruleXImportDeclaration returns [EObject current=null] : ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) ;
     public final EObject ruleXImportDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -5645,14 +6419,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:1935:2: ( ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) )
-            // InternalChartDSL.g:1936:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
+            // InternalChartDSL.g:2239:2: ( ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) )
+            // InternalChartDSL.g:2240:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
             {
-            // InternalChartDSL.g:1936:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
-            // InternalChartDSL.g:1937:3: () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )?
+            // InternalChartDSL.g:2240:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
+            // InternalChartDSL.g:2241:3: () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )?
             {
-            // InternalChartDSL.g:1937:3: ()
-            // InternalChartDSL.g:1938:4: 
+            // InternalChartDSL.g:2241:3: ()
+            // InternalChartDSL.g:2242:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -5664,29 +6438,29 @@
 
             }
 
-            otherlv_1=(Token)match(input,64,FOLLOW_41); if (state.failed) return current;
+            otherlv_1=(Token)match(input,74,FOLLOW_54); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXImportDeclarationAccess().getImportKeyword_1());
               		
             }
-            // InternalChartDSL.g:1948:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )
-            int alt31=4;
-            alt31 = dfa31.predict(input);
-            switch (alt31) {
+            // InternalChartDSL.g:2252:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )
+            int alt43=4;
+            alt43 = dfa43.predict(input);
+            switch (alt43) {
                 case 1 :
-                    // InternalChartDSL.g:1949:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalChartDSL.g:2253:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
                     {
-                    // InternalChartDSL.g:1949:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
-                    // InternalChartDSL.g:1950:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    // InternalChartDSL.g:2253:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalChartDSL.g:2254:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
                     {
-                    // InternalChartDSL.g:1950:5: ( (lv_static_2_0= 'static' ) )
-                    // InternalChartDSL.g:1951:6: (lv_static_2_0= 'static' )
+                    // InternalChartDSL.g:2254:5: ( (lv_static_2_0= 'static' ) )
+                    // InternalChartDSL.g:2255:6: (lv_static_2_0= 'static' )
                     {
-                    // InternalChartDSL.g:1951:6: (lv_static_2_0= 'static' )
-                    // InternalChartDSL.g:1952:7: lv_static_2_0= 'static'
+                    // InternalChartDSL.g:2255:6: (lv_static_2_0= 'static' )
+                    // InternalChartDSL.g:2256:7: lv_static_2_0= 'static'
                     {
-                    lv_static_2_0=(Token)match(input,65,FOLLOW_42); if (state.failed) return current;
+                    lv_static_2_0=(Token)match(input,75,FOLLOW_55); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_static_2_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0());
@@ -5706,21 +6480,21 @@
 
                     }
 
-                    // InternalChartDSL.g:1964:5: ( (lv_extension_3_0= 'extension' ) )?
-                    int alt29=2;
-                    int LA29_0 = input.LA(1);
+                    // InternalChartDSL.g:2268:5: ( (lv_extension_3_0= 'extension' ) )?
+                    int alt41=2;
+                    int LA41_0 = input.LA(1);
 
-                    if ( (LA29_0==66) ) {
-                        alt29=1;
+                    if ( (LA41_0==76) ) {
+                        alt41=1;
                     }
-                    switch (alt29) {
+                    switch (alt41) {
                         case 1 :
-                            // InternalChartDSL.g:1965:6: (lv_extension_3_0= 'extension' )
+                            // InternalChartDSL.g:2269:6: (lv_extension_3_0= 'extension' )
                             {
-                            // InternalChartDSL.g:1965:6: (lv_extension_3_0= 'extension' )
-                            // InternalChartDSL.g:1966:7: lv_extension_3_0= 'extension'
+                            // InternalChartDSL.g:2269:6: (lv_extension_3_0= 'extension' )
+                            // InternalChartDSL.g:2270:7: lv_extension_3_0= 'extension'
                             {
-                            lv_extension_3_0=(Token)match(input,66,FOLLOW_42); if (state.failed) return current;
+                            lv_extension_3_0=(Token)match(input,76,FOLLOW_55); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(lv_extension_3_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0());
@@ -5743,11 +6517,11 @@
 
                     }
 
-                    // InternalChartDSL.g:1978:5: ( ( ruleQualifiedNameInStaticImport ) )
-                    // InternalChartDSL.g:1979:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalChartDSL.g:2282:5: ( ( ruleQualifiedNameInStaticImport ) )
+                    // InternalChartDSL.g:2283:6: ( ruleQualifiedNameInStaticImport )
                     {
-                    // InternalChartDSL.g:1979:6: ( ruleQualifiedNameInStaticImport )
-                    // InternalChartDSL.g:1980:7: ruleQualifiedNameInStaticImport
+                    // InternalChartDSL.g:2283:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalChartDSL.g:2284:7: ruleQualifiedNameInStaticImport
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5761,7 +6535,7 @@
                       							newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0());
                       						
                     }
-                    pushFollow(FOLLOW_43);
+                    pushFollow(FOLLOW_56);
                     ruleQualifiedNameInStaticImport();
 
                     state._fsp--;
@@ -5777,34 +6551,34 @@
 
                     }
 
-                    // InternalChartDSL.g:1994:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
-                    int alt30=2;
-                    int LA30_0 = input.LA(1);
+                    // InternalChartDSL.g:2298:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    int alt42=2;
+                    int LA42_0 = input.LA(1);
 
-                    if ( (LA30_0==67) ) {
-                        alt30=1;
+                    if ( (LA42_0==77) ) {
+                        alt42=1;
                     }
-                    else if ( (LA30_0==RULE_ID) ) {
-                        alt30=2;
+                    else if ( (LA42_0==RULE_ID) ) {
+                        alt42=2;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 30, 0, input);
+                            new NoViableAltException("", 42, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt30) {
+                    switch (alt42) {
                         case 1 :
-                            // InternalChartDSL.g:1995:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalChartDSL.g:2299:6: ( (lv_wildcard_5_0= '*' ) )
                             {
-                            // InternalChartDSL.g:1995:6: ( (lv_wildcard_5_0= '*' ) )
-                            // InternalChartDSL.g:1996:7: (lv_wildcard_5_0= '*' )
+                            // InternalChartDSL.g:2299:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalChartDSL.g:2300:7: (lv_wildcard_5_0= '*' )
                             {
-                            // InternalChartDSL.g:1996:7: (lv_wildcard_5_0= '*' )
-                            // InternalChartDSL.g:1997:8: lv_wildcard_5_0= '*'
+                            // InternalChartDSL.g:2300:7: (lv_wildcard_5_0= '*' )
+                            // InternalChartDSL.g:2301:8: lv_wildcard_5_0= '*'
                             {
-                            lv_wildcard_5_0=(Token)match(input,67,FOLLOW_44); if (state.failed) return current;
+                            lv_wildcard_5_0=(Token)match(input,77,FOLLOW_57); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               								newLeafNode(lv_wildcard_5_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0());
@@ -5828,20 +6602,20 @@
                             }
                             break;
                         case 2 :
-                            // InternalChartDSL.g:2010:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalChartDSL.g:2314:6: ( (lv_memberName_6_0= ruleValidID ) )
                             {
-                            // InternalChartDSL.g:2010:6: ( (lv_memberName_6_0= ruleValidID ) )
-                            // InternalChartDSL.g:2011:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalChartDSL.g:2314:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalChartDSL.g:2315:7: (lv_memberName_6_0= ruleValidID )
                             {
-                            // InternalChartDSL.g:2011:7: (lv_memberName_6_0= ruleValidID )
-                            // InternalChartDSL.g:2012:8: lv_memberName_6_0= ruleValidID
+                            // InternalChartDSL.g:2315:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalChartDSL.g:2316:8: lv_memberName_6_0= ruleValidID
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0());
                               							
                             }
-                            pushFollow(FOLLOW_44);
+                            pushFollow(FOLLOW_57);
                             lv_memberName_6_0=ruleValidID();
 
                             state._fsp--;
@@ -5878,13 +6652,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2032:4: ( ( ruleQualifiedName ) )
+                    // InternalChartDSL.g:2336:4: ( ( ruleQualifiedName ) )
                     {
-                    // InternalChartDSL.g:2032:4: ( ( ruleQualifiedName ) )
-                    // InternalChartDSL.g:2033:5: ( ruleQualifiedName )
+                    // InternalChartDSL.g:2336:4: ( ( ruleQualifiedName ) )
+                    // InternalChartDSL.g:2337:5: ( ruleQualifiedName )
                     {
-                    // InternalChartDSL.g:2033:5: ( ruleQualifiedName )
-                    // InternalChartDSL.g:2034:6: ruleQualifiedName
+                    // InternalChartDSL.g:2337:5: ( ruleQualifiedName )
+                    // InternalChartDSL.g:2338:6: ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5898,7 +6672,7 @@
                       						newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_44);
+                    pushFollow(FOLLOW_57);
                     ruleQualifiedName();
 
                     state._fsp--;
@@ -5918,20 +6692,20 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:2049:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalChartDSL.g:2353:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
                     {
-                    // InternalChartDSL.g:2049:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
-                    // InternalChartDSL.g:2050:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalChartDSL.g:2353:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalChartDSL.g:2354:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
                     {
-                    // InternalChartDSL.g:2050:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
-                    // InternalChartDSL.g:2051:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
+                    // InternalChartDSL.g:2354:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalChartDSL.g:2355:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0());
                       					
                     }
-                    pushFollow(FOLLOW_44);
+                    pushFollow(FOLLOW_57);
                     lv_importedNamespace_8_0=ruleQualifiedNameWithWildcard();
 
                     state._fsp--;
@@ -5959,18 +6733,18 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:2069:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalChartDSL.g:2373:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
                     {
-                    // InternalChartDSL.g:2069:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
-                    // InternalChartDSL.g:2070:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalChartDSL.g:2373:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalChartDSL.g:2374:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
                     {
-                    // InternalChartDSL.g:2070:5: ( (lv_fqnImport_9_0= 'ns' ) )
-                    // InternalChartDSL.g:2071:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalChartDSL.g:2374:5: ( (lv_fqnImport_9_0= 'ns' ) )
+                    // InternalChartDSL.g:2375:6: (lv_fqnImport_9_0= 'ns' )
                     {
-                    // InternalChartDSL.g:2071:6: (lv_fqnImport_9_0= 'ns' )
-                    // InternalChartDSL.g:2072:7: lv_fqnImport_9_0= 'ns'
+                    // InternalChartDSL.g:2375:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalChartDSL.g:2376:7: lv_fqnImport_9_0= 'ns'
                     {
-                    lv_fqnImport_9_0=(Token)match(input,68,FOLLOW_4); if (state.failed) return current;
+                    lv_fqnImport_9_0=(Token)match(input,78,FOLLOW_4); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_fqnImport_9_0, grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0());
@@ -5990,18 +6764,18 @@
 
                     }
 
-                    // InternalChartDSL.g:2084:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
-                    // InternalChartDSL.g:2085:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalChartDSL.g:2388:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalChartDSL.g:2389:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
                     {
-                    // InternalChartDSL.g:2085:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
-                    // InternalChartDSL.g:2086:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
+                    // InternalChartDSL.g:2389:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalChartDSL.g:2390:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0());
                       						
                     }
-                    pushFollow(FOLLOW_44);
+                    pushFollow(FOLLOW_57);
                     lv_importedFullyQualifiedName_10_0=ruleQualifiedName();
 
                     state._fsp--;
@@ -6034,18 +6808,18 @@
 
             }
 
-            // InternalChartDSL.g:2105:3: (otherlv_11= ';' )?
-            int alt32=2;
-            int LA32_0 = input.LA(1);
+            // InternalChartDSL.g:2409:3: (otherlv_11= ';' )?
+            int alt44=2;
+            int LA44_0 = input.LA(1);
 
-            if ( (LA32_0==69) ) {
-                alt32=1;
+            if ( (LA44_0==79) ) {
+                alt44=1;
             }
-            switch (alt32) {
+            switch (alt44) {
                 case 1 :
-                    // InternalChartDSL.g:2106:4: otherlv_11= ';'
+                    // InternalChartDSL.g:2410:4: otherlv_11= ';'
                     {
-                    otherlv_11=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
+                    otherlv_11=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_11, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3());
@@ -6082,7 +6856,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotation"
-    // InternalChartDSL.g:2115:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
+    // InternalChartDSL.g:2419:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
     public final EObject entryRuleXAnnotation() throws RecognitionException {
         EObject current = null;
 
@@ -6090,8 +6864,8 @@
 
 
         try {
-            // InternalChartDSL.g:2115:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
-            // InternalChartDSL.g:2116:2: iv_ruleXAnnotation= ruleXAnnotation EOF
+            // InternalChartDSL.g:2419:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
+            // InternalChartDSL.g:2420:2: iv_ruleXAnnotation= ruleXAnnotation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationRule()); 
@@ -6122,7 +6896,7 @@
 
 
     // $ANTLR start "ruleXAnnotation"
-    // InternalChartDSL.g:2122:1: ruleXAnnotation returns [EObject current=null] : ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) ;
+    // InternalChartDSL.g:2426:1: ruleXAnnotation returns [EObject current=null] : ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) ;
     public final EObject ruleXAnnotation() throws RecognitionException {
         EObject current = null;
 
@@ -6141,14 +6915,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:2128:2: ( ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) )
-            // InternalChartDSL.g:2129:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            // InternalChartDSL.g:2432:2: ( ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) )
+            // InternalChartDSL.g:2433:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
             {
-            // InternalChartDSL.g:2129:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
-            // InternalChartDSL.g:2130:3: () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            // InternalChartDSL.g:2433:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            // InternalChartDSL.g:2434:3: () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
             {
-            // InternalChartDSL.g:2130:3: ()
-            // InternalChartDSL.g:2131:4: 
+            // InternalChartDSL.g:2434:3: ()
+            // InternalChartDSL.g:2435:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -6160,17 +6934,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,70,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,80,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
               		
             }
-            // InternalChartDSL.g:2141:3: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:2142:4: ( ruleQualifiedName )
+            // InternalChartDSL.g:2445:3: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:2446:4: ( ruleQualifiedName )
             {
-            // InternalChartDSL.g:2142:4: ( ruleQualifiedName )
-            // InternalChartDSL.g:2143:5: ruleQualifiedName
+            // InternalChartDSL.g:2446:4: ( ruleQualifiedName )
+            // InternalChartDSL.g:2447:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -6184,7 +6958,7 @@
               					newCompositeNode(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_58);
             ruleQualifiedName();
 
             state._fsp--;
@@ -6200,21 +6974,21 @@
 
             }
 
-            // InternalChartDSL.g:2157:3: ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
-            int alt35=2;
-            int LA35_0 = input.LA(1);
+            // InternalChartDSL.g:2461:3: ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            int alt47=2;
+            int LA47_0 = input.LA(1);
 
-            if ( (LA35_0==71) && (synpred1_InternalChartDSL())) {
-                alt35=1;
+            if ( (LA47_0==81) && (synpred1_InternalChartDSL())) {
+                alt47=1;
             }
-            switch (alt35) {
+            switch (alt47) {
                 case 1 :
-                    // InternalChartDSL.g:2158:4: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
+                    // InternalChartDSL.g:2462:4: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
                     {
-                    // InternalChartDSL.g:2158:4: ( ( '(' )=>otherlv_3= '(' )
-                    // InternalChartDSL.g:2159:5: ( '(' )=>otherlv_3= '('
+                    // InternalChartDSL.g:2462:4: ( ( '(' )=>otherlv_3= '(' )
+                    // InternalChartDSL.g:2463:5: ( '(' )=>otherlv_3= '('
                     {
-                    otherlv_3=(Token)match(input,71,FOLLOW_46); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,81,FOLLOW_59); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
@@ -6223,28 +6997,28 @@
 
                     }
 
-                    // InternalChartDSL.g:2165:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
-                    int alt34=3;
-                    alt34 = dfa34.predict(input);
-                    switch (alt34) {
+                    // InternalChartDSL.g:2469:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
+                    int alt46=3;
+                    alt46 = dfa46.predict(input);
+                    switch (alt46) {
                         case 1 :
-                            // InternalChartDSL.g:2166:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalChartDSL.g:2470:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
                             {
-                            // InternalChartDSL.g:2166:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
-                            // InternalChartDSL.g:2167:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            // InternalChartDSL.g:2470:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalChartDSL.g:2471:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
                             {
-                            // InternalChartDSL.g:2167:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
-                            // InternalChartDSL.g:2168:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalChartDSL.g:2471:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
+                            // InternalChartDSL.g:2472:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
                             {
-                            // InternalChartDSL.g:2177:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
-                            // InternalChartDSL.g:2178:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
+                            // InternalChartDSL.g:2481:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalChartDSL.g:2482:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_47);
+                            pushFollow(FOLLOW_60);
                             lv_elementValuePairs_4_0=ruleXAnnotationElementValuePair();
 
                             state._fsp--;
@@ -6268,39 +7042,39 @@
 
                             }
 
-                            // InternalChartDSL.g:2195:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
-                            loop33:
+                            // InternalChartDSL.g:2499:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            loop45:
                             do {
-                                int alt33=2;
-                                int LA33_0 = input.LA(1);
+                                int alt45=2;
+                                int LA45_0 = input.LA(1);
 
-                                if ( (LA33_0==72) ) {
-                                    alt33=1;
+                                if ( (LA45_0==82) ) {
+                                    alt45=1;
                                 }
 
 
-                                switch (alt33) {
+                                switch (alt45) {
                             	case 1 :
-                            	    // InternalChartDSL.g:2196:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalChartDSL.g:2500:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
                             	    {
-                            	    otherlv_5=(Token)match(input,72,FOLLOW_4); if (state.failed) return current;
+                            	    otherlv_5=(Token)match(input,82,FOLLOW_4); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
                             	      						
                             	    }
-                            	    // InternalChartDSL.g:2200:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
-                            	    // InternalChartDSL.g:2201:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalChartDSL.g:2504:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalChartDSL.g:2505:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
                             	    {
-                            	    // InternalChartDSL.g:2210:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
-                            	    // InternalChartDSL.g:2211:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
+                            	    // InternalChartDSL.g:2514:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalChartDSL.g:2515:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_47);
+                            	    pushFollow(FOLLOW_60);
                             	    lv_elementValuePairs_6_0=ruleXAnnotationElementValuePair();
 
                             	    state._fsp--;
@@ -6329,7 +7103,7 @@
                             	    break;
 
                             	default :
-                            	    break loop33;
+                            	    break loop45;
                                 }
                             } while (true);
 
@@ -6340,20 +7114,20 @@
                             }
                             break;
                         case 2 :
-                            // InternalChartDSL.g:2231:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalChartDSL.g:2535:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
                             {
-                            // InternalChartDSL.g:2231:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
-                            // InternalChartDSL.g:2232:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalChartDSL.g:2535:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalChartDSL.g:2536:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
                             {
-                            // InternalChartDSL.g:2232:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
-                            // InternalChartDSL.g:2233:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
+                            // InternalChartDSL.g:2536:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalChartDSL.g:2537:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0());
                               						
                             }
-                            pushFollow(FOLLOW_48);
+                            pushFollow(FOLLOW_61);
                             lv_value_7_0=ruleXAnnotationElementValueOrCommaList();
 
                             state._fsp--;
@@ -6383,7 +7157,7 @@
 
                     }
 
-                    otherlv_8=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
+                    otherlv_8=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
@@ -6420,7 +7194,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // InternalChartDSL.g:2260:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
+    // InternalChartDSL.g:2564:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
     public final EObject entryRuleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -6428,8 +7202,8 @@
 
 
         try {
-            // InternalChartDSL.g:2260:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
-            // InternalChartDSL.g:2261:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
+            // InternalChartDSL.g:2564:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
+            // InternalChartDSL.g:2565:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); 
@@ -6460,7 +7234,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValuePair"
-    // InternalChartDSL.g:2267:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
+    // InternalChartDSL.g:2571:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
     public final EObject ruleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -6472,23 +7246,23 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:2273:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
-            // InternalChartDSL.g:2274:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalChartDSL.g:2577:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
+            // InternalChartDSL.g:2578:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
             {
-            // InternalChartDSL.g:2274:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
-            // InternalChartDSL.g:2275:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalChartDSL.g:2578:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalChartDSL.g:2579:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
             {
-            // InternalChartDSL.g:2275:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
-            // InternalChartDSL.g:2276:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalChartDSL.g:2579:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
+            // InternalChartDSL.g:2580:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
             {
-            // InternalChartDSL.g:2285:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
-            // InternalChartDSL.g:2286:5: ( ( ruleValidID ) ) otherlv_1= '='
+            // InternalChartDSL.g:2589:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalChartDSL.g:2590:5: ( ( ruleValidID ) ) otherlv_1= '='
             {
-            // InternalChartDSL.g:2286:5: ( ( ruleValidID ) )
-            // InternalChartDSL.g:2287:6: ( ruleValidID )
+            // InternalChartDSL.g:2590:5: ( ( ruleValidID ) )
+            // InternalChartDSL.g:2591:6: ( ruleValidID )
             {
-            // InternalChartDSL.g:2287:6: ( ruleValidID )
-            // InternalChartDSL.g:2288:7: ruleValidID
+            // InternalChartDSL.g:2591:6: ( ruleValidID )
+            // InternalChartDSL.g:2592:7: ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -6502,7 +7276,7 @@
               							newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0());
               						
             }
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_62);
             ruleValidID();
 
             state._fsp--;
@@ -6518,7 +7292,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,74,FOLLOW_50); if (state.failed) return current;
+            otherlv_1=(Token)match(input,84,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
@@ -6530,11 +7304,11 @@
 
             }
 
-            // InternalChartDSL.g:2308:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
-            // InternalChartDSL.g:2309:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalChartDSL.g:2612:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalChartDSL.g:2613:4: (lv_value_2_0= ruleXAnnotationElementValue )
             {
-            // InternalChartDSL.g:2309:4: (lv_value_2_0= ruleXAnnotationElementValue )
-            // InternalChartDSL.g:2310:5: lv_value_2_0= ruleXAnnotationElementValue
+            // InternalChartDSL.g:2613:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalChartDSL.g:2614:5: lv_value_2_0= ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
 
@@ -6590,7 +7364,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // InternalChartDSL.g:2331:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
+    // InternalChartDSL.g:2635:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
     public final EObject entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
         EObject current = null;
 
@@ -6598,8 +7372,8 @@
 
 
         try {
-            // InternalChartDSL.g:2331:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
-            // InternalChartDSL.g:2332:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
+            // InternalChartDSL.g:2635:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalChartDSL.g:2636:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
@@ -6630,7 +7404,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // InternalChartDSL.g:2338:1: ruleXAnnotationElementValueOrCommaList returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) ;
+    // InternalChartDSL.g:2642:1: ruleXAnnotationElementValueOrCommaList returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) ;
     public final EObject ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
         EObject current = null;
 
@@ -6652,27 +7426,27 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:2344:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) )
-            // InternalChartDSL.g:2345:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            // InternalChartDSL.g:2648:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) )
+            // InternalChartDSL.g:2649:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
             {
-            // InternalChartDSL.g:2345:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
-            int alt40=2;
-            alt40 = dfa40.predict(input);
-            switch (alt40) {
+            // InternalChartDSL.g:2649:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            int alt52=2;
+            alt52 = dfa52.predict(input);
+            switch (alt52) {
                 case 1 :
-                    // InternalChartDSL.g:2346:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalChartDSL.g:2650:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalChartDSL.g:2346:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalChartDSL.g:2347:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalChartDSL.g:2650:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalChartDSL.g:2651:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalChartDSL.g:2347:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalChartDSL.g:2348:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalChartDSL.g:2651:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalChartDSL.g:2652:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalChartDSL.g:2355:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalChartDSL.g:2356:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalChartDSL.g:2659:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalChartDSL.g:2660:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalChartDSL.g:2356:6: ()
-                    // InternalChartDSL.g:2357:7: 
+                    // InternalChartDSL.g:2660:6: ()
+                    // InternalChartDSL.g:2661:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6684,13 +7458,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,75,FOLLOW_51); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,85,FOLLOW_64); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,76,FOLLOW_52); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,86,FOLLOW_65); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -6702,29 +7476,29 @@
 
                     }
 
-                    // InternalChartDSL.g:2373:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
-                    int alt37=2;
-                    int LA37_0 = input.LA(1);
+                    // InternalChartDSL.g:2677:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt49=2;
+                    int LA49_0 = input.LA(1);
 
-                    if ( ((LA37_0>=RULE_ID && LA37_0<=RULE_DECIMAL)||LA37_0==14||(LA37_0>=63 && LA37_0<=66)||(LA37_0>=70 && LA37_0<=71)||(LA37_0>=75 && LA37_0<=76)||LA37_0==83||LA37_0==99||LA37_0==103||LA37_0==110||LA37_0==112||(LA37_0>=116 && LA37_0<=118)||(LA37_0>=121 && LA37_0<=130)||LA37_0==132) ) {
-                        alt37=1;
+                    if ( ((LA49_0>=RULE_STRING && LA49_0<=RULE_DECIMAL)||LA49_0==15||(LA49_0>=73 && LA49_0<=76)||(LA49_0>=80 && LA49_0<=81)||(LA49_0>=85 && LA49_0<=86)||LA49_0==93||LA49_0==109||LA49_0==113||LA49_0==120||LA49_0==122||(LA49_0>=126 && LA49_0<=128)||(LA49_0>=131 && LA49_0<=140)||LA49_0==142) ) {
+                        alt49=1;
                     }
-                    switch (alt37) {
+                    switch (alt49) {
                         case 1 :
-                            // InternalChartDSL.g:2374:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalChartDSL.g:2678:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalChartDSL.g:2374:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalChartDSL.g:2375:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalChartDSL.g:2678:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalChartDSL.g:2679:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalChartDSL.g:2375:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalChartDSL.g:2376:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalChartDSL.g:2679:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalChartDSL.g:2680:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_53);
+                            pushFollow(FOLLOW_66);
                             lv_elements_3_0=ruleXAnnotationOrExpression();
 
                             state._fsp--;
@@ -6748,39 +7522,39 @@
 
                             }
 
-                            // InternalChartDSL.g:2393:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
-                            loop36:
+                            // InternalChartDSL.g:2697:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop48:
                             do {
-                                int alt36=2;
-                                int LA36_0 = input.LA(1);
+                                int alt48=2;
+                                int LA48_0 = input.LA(1);
 
-                                if ( (LA36_0==72) ) {
-                                    alt36=1;
+                                if ( (LA48_0==82) ) {
+                                    alt48=1;
                                 }
 
 
-                                switch (alt36) {
+                                switch (alt48) {
                             	case 1 :
-                            	    // InternalChartDSL.g:2394:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalChartDSL.g:2698:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,72,FOLLOW_50); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,82,FOLLOW_63); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalChartDSL.g:2398:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalChartDSL.g:2399:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalChartDSL.g:2702:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalChartDSL.g:2703:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalChartDSL.g:2399:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalChartDSL.g:2400:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalChartDSL.g:2703:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalChartDSL.g:2704:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_53);
+                            	    pushFollow(FOLLOW_66);
                             	    lv_elements_5_0=ruleXAnnotationOrExpression();
 
                             	    state._fsp--;
@@ -6809,7 +7583,7 @@
                             	    break;
 
                             	default :
-                            	    break loop36;
+                            	    break loop48;
                                 }
                             } while (true);
 
@@ -6819,7 +7593,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
@@ -6832,17 +7606,17 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2425:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalChartDSL.g:2729:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
                     {
-                    // InternalChartDSL.g:2425:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
-                    // InternalChartDSL.g:2426:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    // InternalChartDSL.g:2729:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalChartDSL.g:2730:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
                     {
                     if ( state.backtracking==0 ) {
 
                       				newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0());
                       			
                     }
-                    pushFollow(FOLLOW_54);
+                    pushFollow(FOLLOW_67);
                     this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression();
 
                     state._fsp--;
@@ -6853,19 +7627,19 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalChartDSL.g:2434:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
-                    int alt39=2;
-                    int LA39_0 = input.LA(1);
+                    // InternalChartDSL.g:2738:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    int alt51=2;
+                    int LA51_0 = input.LA(1);
 
-                    if ( (LA39_0==72) ) {
-                        alt39=1;
+                    if ( (LA51_0==82) ) {
+                        alt51=1;
                     }
-                    switch (alt39) {
+                    switch (alt51) {
                         case 1 :
-                            // InternalChartDSL.g:2435:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            // InternalChartDSL.g:2739:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
                             {
-                            // InternalChartDSL.g:2435:5: ()
-                            // InternalChartDSL.g:2436:6: 
+                            // InternalChartDSL.g:2739:5: ()
+                            // InternalChartDSL.g:2740:6: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -6877,40 +7651,40 @@
 
                             }
 
-                            // InternalChartDSL.g:2442:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
-                            int cnt38=0;
-                            loop38:
+                            // InternalChartDSL.g:2746:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            int cnt50=0;
+                            loop50:
                             do {
-                                int alt38=2;
-                                int LA38_0 = input.LA(1);
+                                int alt50=2;
+                                int LA50_0 = input.LA(1);
 
-                                if ( (LA38_0==72) ) {
-                                    alt38=1;
+                                if ( (LA50_0==82) ) {
+                                    alt50=1;
                                 }
 
 
-                                switch (alt38) {
+                                switch (alt50) {
                             	case 1 :
-                            	    // InternalChartDSL.g:2443:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalChartDSL.g:2747:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_9=(Token)match(input,72,FOLLOW_50); if (state.failed) return current;
+                            	    otherlv_9=(Token)match(input,82,FOLLOW_63); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
                             	      					
                             	    }
-                            	    // InternalChartDSL.g:2447:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalChartDSL.g:2448:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalChartDSL.g:2751:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalChartDSL.g:2752:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalChartDSL.g:2448:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
-                            	    // InternalChartDSL.g:2449:8: lv_elements_10_0= ruleXAnnotationOrExpression
+                            	    // InternalChartDSL.g:2752:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalChartDSL.g:2753:8: lv_elements_10_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_54);
+                            	    pushFollow(FOLLOW_67);
                             	    lv_elements_10_0=ruleXAnnotationOrExpression();
 
                             	    state._fsp--;
@@ -6939,13 +7713,13 @@
                             	    break;
 
                             	default :
-                            	    if ( cnt38 >= 1 ) break loop38;
+                            	    if ( cnt50 >= 1 ) break loop50;
                             	    if (state.backtracking>0) {state.failed=true; return current;}
                                         EarlyExitException eee =
-                                            new EarlyExitException(38, input);
+                                            new EarlyExitException(50, input);
                                         throw eee;
                                 }
-                                cnt38++;
+                                cnt50++;
                             } while (true);
 
 
@@ -6985,7 +7759,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValue"
-    // InternalChartDSL.g:2473:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
+    // InternalChartDSL.g:2777:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
     public final EObject entryRuleXAnnotationElementValue() throws RecognitionException {
         EObject current = null;
 
@@ -6993,8 +7767,8 @@
 
 
         try {
-            // InternalChartDSL.g:2473:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
-            // InternalChartDSL.g:2474:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
+            // InternalChartDSL.g:2777:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
+            // InternalChartDSL.g:2778:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); 
@@ -7025,7 +7799,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValue"
-    // InternalChartDSL.g:2480:1: ruleXAnnotationElementValue returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) ;
+    // InternalChartDSL.g:2784:1: ruleXAnnotationElementValue returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) ;
     public final EObject ruleXAnnotationElementValue() throws RecognitionException {
         EObject current = null;
 
@@ -7044,27 +7818,27 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:2486:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
-            // InternalChartDSL.g:2487:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            // InternalChartDSL.g:2790:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
+            // InternalChartDSL.g:2791:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
             {
-            // InternalChartDSL.g:2487:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
-            int alt43=2;
-            alt43 = dfa43.predict(input);
-            switch (alt43) {
+            // InternalChartDSL.g:2791:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            int alt55=2;
+            alt55 = dfa55.predict(input);
+            switch (alt55) {
                 case 1 :
-                    // InternalChartDSL.g:2488:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalChartDSL.g:2792:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalChartDSL.g:2488:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalChartDSL.g:2489:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalChartDSL.g:2792:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalChartDSL.g:2793:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalChartDSL.g:2489:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalChartDSL.g:2490:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalChartDSL.g:2793:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalChartDSL.g:2794:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalChartDSL.g:2497:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalChartDSL.g:2498:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalChartDSL.g:2801:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalChartDSL.g:2802:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalChartDSL.g:2498:6: ()
-                    // InternalChartDSL.g:2499:7: 
+                    // InternalChartDSL.g:2802:6: ()
+                    // InternalChartDSL.g:2803:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7076,13 +7850,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,75,FOLLOW_51); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,85,FOLLOW_64); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,76,FOLLOW_52); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,86,FOLLOW_65); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -7094,29 +7868,29 @@
 
                     }
 
-                    // InternalChartDSL.g:2515:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
-                    int alt42=2;
-                    int LA42_0 = input.LA(1);
+                    // InternalChartDSL.g:2819:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt54=2;
+                    int LA54_0 = input.LA(1);
 
-                    if ( ((LA42_0>=RULE_ID && LA42_0<=RULE_DECIMAL)||LA42_0==14||(LA42_0>=63 && LA42_0<=66)||(LA42_0>=70 && LA42_0<=71)||(LA42_0>=75 && LA42_0<=76)||LA42_0==83||LA42_0==99||LA42_0==103||LA42_0==110||LA42_0==112||(LA42_0>=116 && LA42_0<=118)||(LA42_0>=121 && LA42_0<=130)||LA42_0==132) ) {
-                        alt42=1;
+                    if ( ((LA54_0>=RULE_STRING && LA54_0<=RULE_DECIMAL)||LA54_0==15||(LA54_0>=73 && LA54_0<=76)||(LA54_0>=80 && LA54_0<=81)||(LA54_0>=85 && LA54_0<=86)||LA54_0==93||LA54_0==109||LA54_0==113||LA54_0==120||LA54_0==122||(LA54_0>=126 && LA54_0<=128)||(LA54_0>=131 && LA54_0<=140)||LA54_0==142) ) {
+                        alt54=1;
                     }
-                    switch (alt42) {
+                    switch (alt54) {
                         case 1 :
-                            // InternalChartDSL.g:2516:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalChartDSL.g:2820:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalChartDSL.g:2516:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalChartDSL.g:2517:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalChartDSL.g:2820:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalChartDSL.g:2821:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalChartDSL.g:2517:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalChartDSL.g:2518:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalChartDSL.g:2821:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalChartDSL.g:2822:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_53);
+                            pushFollow(FOLLOW_66);
                             lv_elements_3_0=ruleXAnnotationOrExpression();
 
                             state._fsp--;
@@ -7140,39 +7914,39 @@
 
                             }
 
-                            // InternalChartDSL.g:2535:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
-                            loop41:
+                            // InternalChartDSL.g:2839:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop53:
                             do {
-                                int alt41=2;
-                                int LA41_0 = input.LA(1);
+                                int alt53=2;
+                                int LA53_0 = input.LA(1);
 
-                                if ( (LA41_0==72) ) {
-                                    alt41=1;
+                                if ( (LA53_0==82) ) {
+                                    alt53=1;
                                 }
 
 
-                                switch (alt41) {
+                                switch (alt53) {
                             	case 1 :
-                            	    // InternalChartDSL.g:2536:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalChartDSL.g:2840:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,72,FOLLOW_50); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,82,FOLLOW_63); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalChartDSL.g:2540:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalChartDSL.g:2541:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalChartDSL.g:2844:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalChartDSL.g:2845:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalChartDSL.g:2541:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalChartDSL.g:2542:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalChartDSL.g:2845:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalChartDSL.g:2846:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_53);
+                            	    pushFollow(FOLLOW_66);
                             	    lv_elements_5_0=ruleXAnnotationOrExpression();
 
                             	    state._fsp--;
@@ -7201,7 +7975,7 @@
                             	    break;
 
                             	default :
-                            	    break loop41;
+                            	    break loop53;
                                 }
                             } while (true);
 
@@ -7211,7 +7985,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
@@ -7224,7 +7998,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2567:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
+                    // InternalChartDSL.g:2871:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7270,7 +8044,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // InternalChartDSL.g:2579:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
+    // InternalChartDSL.g:2883:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
     public final EObject entryRuleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7278,8 +8052,8 @@
 
 
         try {
-            // InternalChartDSL.g:2579:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
-            // InternalChartDSL.g:2580:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
+            // InternalChartDSL.g:2883:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
+            // InternalChartDSL.g:2884:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); 
@@ -7310,7 +8084,7 @@
 
 
     // $ANTLR start "ruleXAnnotationOrExpression"
-    // InternalChartDSL.g:2586:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
+    // InternalChartDSL.g:2890:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
     public final EObject ruleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7323,29 +8097,29 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:2592:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
-            // InternalChartDSL.g:2593:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            // InternalChartDSL.g:2896:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
+            // InternalChartDSL.g:2897:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
             {
-            // InternalChartDSL.g:2593:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
-            int alt44=2;
-            int LA44_0 = input.LA(1);
+            // InternalChartDSL.g:2897:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            int alt56=2;
+            int LA56_0 = input.LA(1);
 
-            if ( (LA44_0==70) ) {
-                alt44=1;
+            if ( (LA56_0==80) ) {
+                alt56=1;
             }
-            else if ( ((LA44_0>=RULE_ID && LA44_0<=RULE_DECIMAL)||LA44_0==14||(LA44_0>=63 && LA44_0<=66)||LA44_0==71||(LA44_0>=75 && LA44_0<=76)||LA44_0==83||LA44_0==99||LA44_0==103||LA44_0==110||LA44_0==112||(LA44_0>=116 && LA44_0<=118)||(LA44_0>=121 && LA44_0<=130)||LA44_0==132) ) {
-                alt44=2;
+            else if ( ((LA56_0>=RULE_STRING && LA56_0<=RULE_DECIMAL)||LA56_0==15||(LA56_0>=73 && LA56_0<=76)||LA56_0==81||(LA56_0>=85 && LA56_0<=86)||LA56_0==93||LA56_0==109||LA56_0==113||LA56_0==120||LA56_0==122||(LA56_0>=126 && LA56_0<=128)||(LA56_0>=131 && LA56_0<=140)||LA56_0==142) ) {
+                alt56=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 44, 0, input);
+                    new NoViableAltException("", 56, 0, input);
 
                 throw nvae;
             }
-            switch (alt44) {
+            switch (alt56) {
                 case 1 :
-                    // InternalChartDSL.g:2594:3: this_XAnnotation_0= ruleXAnnotation
+                    // InternalChartDSL.g:2898:3: this_XAnnotation_0= ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7367,7 +8141,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2603:3: this_XExpression_1= ruleXExpression
+                    // InternalChartDSL.g:2907:3: this_XExpression_1= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7413,7 +8187,7 @@
 
 
     // $ANTLR start "entryRuleXExpression"
-    // InternalChartDSL.g:2615:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
+    // InternalChartDSL.g:2919:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
     public final EObject entryRuleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7421,8 +8195,8 @@
 
 
         try {
-            // InternalChartDSL.g:2615:52: (iv_ruleXExpression= ruleXExpression EOF )
-            // InternalChartDSL.g:2616:2: iv_ruleXExpression= ruleXExpression EOF
+            // InternalChartDSL.g:2919:52: (iv_ruleXExpression= ruleXExpression EOF )
+            // InternalChartDSL.g:2920:2: iv_ruleXExpression= ruleXExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionRule()); 
@@ -7453,7 +8227,7 @@
 
 
     // $ANTLR start "ruleXExpression"
-    // InternalChartDSL.g:2622:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
+    // InternalChartDSL.g:2926:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
     public final EObject ruleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7464,8 +8238,8 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:2628:2: (this_XAssignment_0= ruleXAssignment )
-            // InternalChartDSL.g:2629:2: this_XAssignment_0= ruleXAssignment
+            // InternalChartDSL.g:2932:2: (this_XAssignment_0= ruleXAssignment )
+            // InternalChartDSL.g:2933:2: this_XAssignment_0= ruleXAssignment
             {
             if ( state.backtracking==0 ) {
 
@@ -7505,7 +8279,7 @@
 
 
     // $ANTLR start "entryRuleXAssignment"
-    // InternalChartDSL.g:2640:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
+    // InternalChartDSL.g:2944:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
     public final EObject entryRuleXAssignment() throws RecognitionException {
         EObject current = null;
 
@@ -7513,8 +8287,8 @@
 
 
         try {
-            // InternalChartDSL.g:2640:52: (iv_ruleXAssignment= ruleXAssignment EOF )
-            // InternalChartDSL.g:2641:2: iv_ruleXAssignment= ruleXAssignment EOF
+            // InternalChartDSL.g:2944:52: (iv_ruleXAssignment= ruleXAssignment EOF )
+            // InternalChartDSL.g:2945:2: iv_ruleXAssignment= ruleXAssignment EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAssignmentRule()); 
@@ -7545,7 +8319,7 @@
 
 
     // $ANTLR start "ruleXAssignment"
-    // InternalChartDSL.g:2647:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
+    // InternalChartDSL.g:2951:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
     public final EObject ruleXAssignment() throws RecognitionException {
         EObject current = null;
 
@@ -7560,102 +8334,102 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:2653:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
-            // InternalChartDSL.g:2654:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            // InternalChartDSL.g:2957:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
+            // InternalChartDSL.g:2958:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
             {
-            // InternalChartDSL.g:2654:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
-            int alt46=2;
+            // InternalChartDSL.g:2958:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            int alt58=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                int LA46_1 = input.LA(2);
+                int LA58_1 = input.LA(2);
 
-                if ( (LA46_1==74) ) {
-                    alt46=1;
+                if ( (LA58_1==84) ) {
+                    alt58=1;
                 }
-                else if ( (LA46_1==EOF||(LA46_1>=RULE_ID && LA46_1<=RULE_DECIMAL)||(LA46_1>=14 && LA46_1<=15)||LA46_1==18||(LA46_1>=63 && LA46_1<=67)||LA46_1==69||(LA46_1>=71 && LA46_1<=73)||(LA46_1>=75 && LA46_1<=108)||(LA46_1>=110 && LA46_1<=133)) ) {
-                    alt46=2;
+                else if ( (LA58_1==EOF||(LA58_1>=RULE_STRING && LA58_1<=RULE_DECIMAL)||(LA58_1>=15 && LA58_1<=16)||LA58_1==20||(LA58_1>=73 && LA58_1<=77)||LA58_1==79||(LA58_1>=81 && LA58_1<=83)||(LA58_1>=85 && LA58_1<=118)||(LA58_1>=120 && LA58_1<=143)) ) {
+                    alt58=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 46, 1, input);
+                        new NoViableAltException("", 58, 1, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 121:
+            case 131:
                 {
-                int LA46_2 = input.LA(2);
+                int LA58_2 = input.LA(2);
 
-                if ( (LA46_2==EOF||(LA46_2>=RULE_ID && LA46_2<=RULE_DECIMAL)||(LA46_2>=14 && LA46_2<=15)||LA46_2==18||(LA46_2>=63 && LA46_2<=67)||LA46_2==69||(LA46_2>=71 && LA46_2<=73)||(LA46_2>=75 && LA46_2<=108)||(LA46_2>=110 && LA46_2<=133)) ) {
-                    alt46=2;
+                if ( (LA58_2==84) ) {
+                    alt58=1;
                 }
-                else if ( (LA46_2==74) ) {
-                    alt46=1;
+                else if ( (LA58_2==EOF||(LA58_2>=RULE_STRING && LA58_2<=RULE_DECIMAL)||(LA58_2>=15 && LA58_2<=16)||LA58_2==20||(LA58_2>=73 && LA58_2<=77)||LA58_2==79||(LA58_2>=81 && LA58_2<=83)||(LA58_2>=85 && LA58_2<=118)||(LA58_2>=120 && LA58_2<=143)) ) {
+                    alt58=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 46, 2, input);
+                        new NoViableAltException("", 58, 2, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 65:
+            case 75:
                 {
-                int LA46_3 = input.LA(2);
+                int LA58_3 = input.LA(2);
 
-                if ( (LA46_3==74) ) {
-                    alt46=1;
+                if ( (LA58_3==84) ) {
+                    alt58=1;
                 }
-                else if ( (LA46_3==EOF||(LA46_3>=RULE_ID && LA46_3<=RULE_DECIMAL)||(LA46_3>=14 && LA46_3<=15)||LA46_3==18||(LA46_3>=63 && LA46_3<=67)||LA46_3==69||(LA46_3>=71 && LA46_3<=73)||(LA46_3>=75 && LA46_3<=108)||(LA46_3>=110 && LA46_3<=133)) ) {
-                    alt46=2;
+                else if ( (LA58_3==EOF||(LA58_3>=RULE_STRING && LA58_3<=RULE_DECIMAL)||(LA58_3>=15 && LA58_3<=16)||LA58_3==20||(LA58_3>=73 && LA58_3<=77)||LA58_3==79||(LA58_3>=81 && LA58_3<=83)||(LA58_3>=85 && LA58_3<=118)||(LA58_3>=120 && LA58_3<=143)) ) {
+                    alt58=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 46, 3, input);
+                        new NoViableAltException("", 58, 3, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 64:
+            case 74:
                 {
-                int LA46_4 = input.LA(2);
+                int LA58_4 = input.LA(2);
 
-                if ( (LA46_4==74) ) {
-                    alt46=1;
+                if ( (LA58_4==84) ) {
+                    alt58=1;
                 }
-                else if ( (LA46_4==EOF||(LA46_4>=RULE_ID && LA46_4<=RULE_DECIMAL)||(LA46_4>=14 && LA46_4<=15)||LA46_4==18||(LA46_4>=63 && LA46_4<=67)||LA46_4==69||(LA46_4>=71 && LA46_4<=73)||(LA46_4>=75 && LA46_4<=108)||(LA46_4>=110 && LA46_4<=133)) ) {
-                    alt46=2;
+                else if ( (LA58_4==EOF||(LA58_4>=RULE_STRING && LA58_4<=RULE_DECIMAL)||(LA58_4>=15 && LA58_4<=16)||LA58_4==20||(LA58_4>=73 && LA58_4<=77)||LA58_4==79||(LA58_4>=81 && LA58_4<=83)||(LA58_4>=85 && LA58_4<=118)||(LA58_4>=120 && LA58_4<=143)) ) {
+                    alt58=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 46, 4, input);
+                        new NoViableAltException("", 58, 4, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 66:
+            case 76:
                 {
-                int LA46_5 = input.LA(2);
+                int LA58_5 = input.LA(2);
 
-                if ( (LA46_5==EOF||(LA46_5>=RULE_ID && LA46_5<=RULE_DECIMAL)||(LA46_5>=14 && LA46_5<=15)||LA46_5==18||(LA46_5>=63 && LA46_5<=67)||LA46_5==69||(LA46_5>=71 && LA46_5<=73)||(LA46_5>=75 && LA46_5<=108)||(LA46_5>=110 && LA46_5<=133)) ) {
-                    alt46=2;
+                if ( (LA58_5==84) ) {
+                    alt58=1;
                 }
-                else if ( (LA46_5==74) ) {
-                    alt46=1;
+                else if ( (LA58_5==EOF||(LA58_5>=RULE_STRING && LA58_5<=RULE_DECIMAL)||(LA58_5>=15 && LA58_5<=16)||LA58_5==20||(LA58_5>=73 && LA58_5<=77)||LA58_5==79||(LA58_5>=81 && LA58_5<=83)||(LA58_5>=85 && LA58_5<=118)||(LA58_5>=120 && LA58_5<=143)) ) {
+                    alt58=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 46, 5, input);
+                        new NoViableAltException("", 58, 5, input);
 
                     throw nvae;
                 }
@@ -7665,50 +8439,50 @@
             case RULE_INT:
             case RULE_HEX:
             case RULE_DECIMAL:
-            case 14:
-            case 63:
-            case 71:
-            case 75:
-            case 76:
-            case 83:
-            case 99:
-            case 103:
-            case 110:
-            case 112:
-            case 116:
-            case 117:
-            case 118:
+            case 15:
+            case 73:
+            case 81:
+            case 85:
+            case 86:
+            case 93:
+            case 109:
+            case 113:
+            case 120:
             case 122:
-            case 123:
-            case 124:
-            case 125:
             case 126:
             case 127:
             case 128:
-            case 129:
-            case 130:
             case 132:
+            case 133:
+            case 134:
+            case 135:
+            case 136:
+            case 137:
+            case 138:
+            case 139:
+            case 140:
+            case 142:
                 {
-                alt46=2;
+                alt58=2;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 46, 0, input);
+                    new NoViableAltException("", 58, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt46) {
+            switch (alt58) {
                 case 1 :
-                    // InternalChartDSL.g:2655:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalChartDSL.g:2959:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
                     {
-                    // InternalChartDSL.g:2655:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
-                    // InternalChartDSL.g:2656:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalChartDSL.g:2959:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalChartDSL.g:2960:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
                     {
-                    // InternalChartDSL.g:2656:4: ()
-                    // InternalChartDSL.g:2657:5: 
+                    // InternalChartDSL.g:2960:4: ()
+                    // InternalChartDSL.g:2961:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7720,11 +8494,11 @@
 
                     }
 
-                    // InternalChartDSL.g:2663:4: ( ( ruleFeatureCallID ) )
-                    // InternalChartDSL.g:2664:5: ( ruleFeatureCallID )
+                    // InternalChartDSL.g:2967:4: ( ( ruleFeatureCallID ) )
+                    // InternalChartDSL.g:2968:5: ( ruleFeatureCallID )
                     {
-                    // InternalChartDSL.g:2664:5: ( ruleFeatureCallID )
-                    // InternalChartDSL.g:2665:6: ruleFeatureCallID
+                    // InternalChartDSL.g:2968:5: ( ruleFeatureCallID )
+                    // InternalChartDSL.g:2969:6: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7738,7 +8512,7 @@
                       						newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_49);
+                    pushFollow(FOLLOW_62);
                     ruleFeatureCallID();
 
                     state._fsp--;
@@ -7759,7 +8533,7 @@
                       				newCompositeNode(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2());
                       			
                     }
-                    pushFollow(FOLLOW_50);
+                    pushFollow(FOLLOW_63);
                     ruleOpSingleAssign();
 
                     state._fsp--;
@@ -7769,11 +8543,11 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalChartDSL.g:2686:4: ( (lv_value_3_0= ruleXAssignment ) )
-                    // InternalChartDSL.g:2687:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalChartDSL.g:2990:4: ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalChartDSL.g:2991:5: (lv_value_3_0= ruleXAssignment )
                     {
-                    // InternalChartDSL.g:2687:5: (lv_value_3_0= ruleXAssignment )
-                    // InternalChartDSL.g:2688:6: lv_value_3_0= ruleXAssignment
+                    // InternalChartDSL.g:2991:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalChartDSL.g:2992:6: lv_value_3_0= ruleXAssignment
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7811,17 +8585,17 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2707:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalChartDSL.g:3011:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
                     {
-                    // InternalChartDSL.g:2707:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
-                    // InternalChartDSL.g:2708:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    // InternalChartDSL.g:3011:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalChartDSL.g:3012:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
                     {
                     if ( state.backtracking==0 ) {
 
                       				newCompositeNode(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0());
                       			
                     }
-                    pushFollow(FOLLOW_55);
+                    pushFollow(FOLLOW_68);
                     this_XOrExpression_4=ruleXOrExpression();
 
                     state._fsp--;
@@ -7832,21 +8606,21 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalChartDSL.g:2716:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
-                    int alt45=2;
-                    alt45 = dfa45.predict(input);
-                    switch (alt45) {
+                    // InternalChartDSL.g:3020:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    int alt57=2;
+                    alt57 = dfa57.predict(input);
+                    switch (alt57) {
                         case 1 :
-                            // InternalChartDSL.g:2717:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalChartDSL.g:3021:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
                             {
-                            // InternalChartDSL.g:2717:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
-                            // InternalChartDSL.g:2718:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalChartDSL.g:3021:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
+                            // InternalChartDSL.g:3022:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
                             {
-                            // InternalChartDSL.g:2728:6: ( () ( ( ruleOpMultiAssign ) ) )
-                            // InternalChartDSL.g:2729:7: () ( ( ruleOpMultiAssign ) )
+                            // InternalChartDSL.g:3032:6: ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalChartDSL.g:3033:7: () ( ( ruleOpMultiAssign ) )
                             {
-                            // InternalChartDSL.g:2729:7: ()
-                            // InternalChartDSL.g:2730:8: 
+                            // InternalChartDSL.g:3033:7: ()
+                            // InternalChartDSL.g:3034:8: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -7858,11 +8632,11 @@
 
                             }
 
-                            // InternalChartDSL.g:2736:7: ( ( ruleOpMultiAssign ) )
-                            // InternalChartDSL.g:2737:8: ( ruleOpMultiAssign )
+                            // InternalChartDSL.g:3040:7: ( ( ruleOpMultiAssign ) )
+                            // InternalChartDSL.g:3041:8: ( ruleOpMultiAssign )
                             {
-                            // InternalChartDSL.g:2737:8: ( ruleOpMultiAssign )
-                            // InternalChartDSL.g:2738:9: ruleOpMultiAssign
+                            // InternalChartDSL.g:3041:8: ( ruleOpMultiAssign )
+                            // InternalChartDSL.g:3042:9: ruleOpMultiAssign
                             {
                             if ( state.backtracking==0 ) {
 
@@ -7876,7 +8650,7 @@
                               									newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
                               								
                             }
-                            pushFollow(FOLLOW_50);
+                            pushFollow(FOLLOW_63);
                             ruleOpMultiAssign();
 
                             state._fsp--;
@@ -7898,11 +8672,11 @@
 
                             }
 
-                            // InternalChartDSL.g:2754:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
-                            // InternalChartDSL.g:2755:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalChartDSL.g:3058:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalChartDSL.g:3059:6: (lv_rightOperand_7_0= ruleXAssignment )
                             {
-                            // InternalChartDSL.g:2755:6: (lv_rightOperand_7_0= ruleXAssignment )
-                            // InternalChartDSL.g:2756:7: lv_rightOperand_7_0= ruleXAssignment
+                            // InternalChartDSL.g:3059:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalChartDSL.g:3060:7: lv_rightOperand_7_0= ruleXAssignment
                             {
                             if ( state.backtracking==0 ) {
 
@@ -7970,7 +8744,7 @@
 
 
     // $ANTLR start "entryRuleOpSingleAssign"
-    // InternalChartDSL.g:2779:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
+    // InternalChartDSL.g:3083:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
     public final String entryRuleOpSingleAssign() throws RecognitionException {
         String current = null;
 
@@ -7978,8 +8752,8 @@
 
 
         try {
-            // InternalChartDSL.g:2779:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
-            // InternalChartDSL.g:2780:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
+            // InternalChartDSL.g:3083:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
+            // InternalChartDSL.g:3084:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpSingleAssignRule()); 
@@ -8010,7 +8784,7 @@
 
 
     // $ANTLR start "ruleOpSingleAssign"
-    // InternalChartDSL.g:2786:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+    // InternalChartDSL.g:3090:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
     public final AntlrDatatypeRuleToken ruleOpSingleAssign() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8020,10 +8794,10 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:2792:2: (kw= '=' )
-            // InternalChartDSL.g:2793:2: kw= '='
+            // InternalChartDSL.g:3096:2: (kw= '=' )
+            // InternalChartDSL.g:3097:2: kw= '='
             {
-            kw=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               		current.merge(kw);
@@ -8052,7 +8826,7 @@
 
 
     // $ANTLR start "entryRuleOpMultiAssign"
-    // InternalChartDSL.g:2801:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
+    // InternalChartDSL.g:3105:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
     public final String entryRuleOpMultiAssign() throws RecognitionException {
         String current = null;
 
@@ -8060,8 +8834,8 @@
 
 
         try {
-            // InternalChartDSL.g:2801:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
-            // InternalChartDSL.g:2802:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
+            // InternalChartDSL.g:3105:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
+            // InternalChartDSL.g:3106:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiAssignRule()); 
@@ -8092,7 +8866,7 @@
 
 
     // $ANTLR start "ruleOpMultiAssign"
-    // InternalChartDSL.g:2808:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
+    // InternalChartDSL.g:3112:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
     public final AntlrDatatypeRuleToken ruleOpMultiAssign() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8102,60 +8876,60 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:2814:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
-            // InternalChartDSL.g:2815:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            // InternalChartDSL.g:3118:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
+            // InternalChartDSL.g:3119:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
             {
-            // InternalChartDSL.g:2815:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
-            int alt48=7;
+            // InternalChartDSL.g:3119:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            int alt60=7;
             switch ( input.LA(1) ) {
-            case 78:
+            case 88:
                 {
-                alt48=1;
+                alt60=1;
                 }
                 break;
-            case 79:
+            case 89:
                 {
-                alt48=2;
+                alt60=2;
                 }
                 break;
-            case 80:
+            case 90:
                 {
-                alt48=3;
+                alt60=3;
                 }
                 break;
-            case 81:
+            case 91:
                 {
-                alt48=4;
+                alt60=4;
                 }
                 break;
-            case 82:
+            case 92:
                 {
-                alt48=5;
+                alt60=5;
                 }
                 break;
-            case 83:
+            case 93:
                 {
-                alt48=6;
+                alt60=6;
                 }
                 break;
-            case 84:
+            case 94:
                 {
-                alt48=7;
+                alt60=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 48, 0, input);
+                    new NoViableAltException("", 60, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt48) {
+            switch (alt60) {
                 case 1 :
-                    // InternalChartDSL.g:2816:3: kw= '+='
+                    // InternalChartDSL.g:3120:3: kw= '+='
                     {
-                    kw=(Token)match(input,78,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8166,9 +8940,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:2822:3: kw= '-='
+                    // InternalChartDSL.g:3126:3: kw= '-='
                     {
-                    kw=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,89,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8179,9 +8953,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:2828:3: kw= '*='
+                    // InternalChartDSL.g:3132:3: kw= '*='
                     {
-                    kw=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,90,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8192,9 +8966,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:2834:3: kw= '/='
+                    // InternalChartDSL.g:3138:3: kw= '/='
                     {
-                    kw=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,91,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8205,9 +8979,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:2840:3: kw= '%='
+                    // InternalChartDSL.g:3144:3: kw= '%='
                     {
-                    kw=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8218,26 +8992,26 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:2846:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalChartDSL.g:3150:3: (kw= '<' kw= '<' kw= '=' )
                     {
-                    // InternalChartDSL.g:2846:3: (kw= '<' kw= '<' kw= '=' )
-                    // InternalChartDSL.g:2847:4: kw= '<' kw= '<' kw= '='
+                    // InternalChartDSL.g:3150:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalChartDSL.g:3151:4: kw= '<' kw= '<' kw= '='
                     {
-                    kw=(Token)match(input,83,FOLLOW_56); if (state.failed) return current;
+                    kw=(Token)match(input,93,FOLLOW_69); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0());
                       			
                     }
-                    kw=(Token)match(input,83,FOLLOW_49); if (state.failed) return current;
+                    kw=(Token)match(input,93,FOLLOW_62); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1());
                       			
                     }
-                    kw=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -8251,30 +9025,30 @@
                     }
                     break;
                 case 7 :
-                    // InternalChartDSL.g:2864:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalChartDSL.g:3168:3: (kw= '>' (kw= '>' )? kw= '>=' )
                     {
-                    // InternalChartDSL.g:2864:3: (kw= '>' (kw= '>' )? kw= '>=' )
-                    // InternalChartDSL.g:2865:4: kw= '>' (kw= '>' )? kw= '>='
+                    // InternalChartDSL.g:3168:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalChartDSL.g:3169:4: kw= '>' (kw= '>' )? kw= '>='
                     {
-                    kw=(Token)match(input,84,FOLLOW_57); if (state.failed) return current;
+                    kw=(Token)match(input,94,FOLLOW_70); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0());
                       			
                     }
-                    // InternalChartDSL.g:2870:4: (kw= '>' )?
-                    int alt47=2;
-                    int LA47_0 = input.LA(1);
+                    // InternalChartDSL.g:3174:4: (kw= '>' )?
+                    int alt59=2;
+                    int LA59_0 = input.LA(1);
 
-                    if ( (LA47_0==84) ) {
-                        alt47=1;
+                    if ( (LA59_0==94) ) {
+                        alt59=1;
                     }
-                    switch (alt47) {
+                    switch (alt59) {
                         case 1 :
-                            // InternalChartDSL.g:2871:5: kw= '>'
+                            // InternalChartDSL.g:3175:5: kw= '>'
                             {
-                            kw=(Token)match(input,84,FOLLOW_58); if (state.failed) return current;
+                            kw=(Token)match(input,94,FOLLOW_71); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -8287,7 +9061,7 @@
 
                     }
 
-                    kw=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -8325,7 +9099,7 @@
 
 
     // $ANTLR start "entryRuleXOrExpression"
-    // InternalChartDSL.g:2887:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
+    // InternalChartDSL.g:3191:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
     public final EObject entryRuleXOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8333,8 +9107,8 @@
 
 
         try {
-            // InternalChartDSL.g:2887:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
-            // InternalChartDSL.g:2888:2: iv_ruleXOrExpression= ruleXOrExpression EOF
+            // InternalChartDSL.g:3191:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
+            // InternalChartDSL.g:3192:2: iv_ruleXOrExpression= ruleXOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXOrExpressionRule()); 
@@ -8365,7 +9139,7 @@
 
 
     // $ANTLR start "ruleXOrExpression"
-    // InternalChartDSL.g:2894:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
+    // InternalChartDSL.g:3198:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
     public final EObject ruleXOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8378,18 +9152,18 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:2900:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
-            // InternalChartDSL.g:2901:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalChartDSL.g:3204:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
+            // InternalChartDSL.g:3205:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
             {
-            // InternalChartDSL.g:2901:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
-            // InternalChartDSL.g:2902:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            // InternalChartDSL.g:3205:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalChartDSL.g:3206:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_72);
             this_XAndExpression_0=ruleXAndExpression();
 
             state._fsp--;
@@ -8400,35 +9174,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalChartDSL.g:2910:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
-            loop49:
+            // InternalChartDSL.g:3214:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            loop61:
             do {
-                int alt49=2;
-                int LA49_0 = input.LA(1);
+                int alt61=2;
+                int LA61_0 = input.LA(1);
 
-                if ( (LA49_0==86) ) {
-                    int LA49_2 = input.LA(2);
+                if ( (LA61_0==96) ) {
+                    int LA61_2 = input.LA(2);
 
                     if ( (synpred8_InternalChartDSL()) ) {
-                        alt49=1;
+                        alt61=1;
                     }
 
 
                 }
 
 
-                switch (alt49) {
+                switch (alt61) {
             	case 1 :
-            	    // InternalChartDSL.g:2911:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalChartDSL.g:3215:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
             	    {
-            	    // InternalChartDSL.g:2911:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
-            	    // InternalChartDSL.g:2912:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
+            	    // InternalChartDSL.g:3215:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
+            	    // InternalChartDSL.g:3216:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
             	    {
-            	    // InternalChartDSL.g:2922:5: ( () ( ( ruleOpOr ) ) )
-            	    // InternalChartDSL.g:2923:6: () ( ( ruleOpOr ) )
+            	    // InternalChartDSL.g:3226:5: ( () ( ( ruleOpOr ) ) )
+            	    // InternalChartDSL.g:3227:6: () ( ( ruleOpOr ) )
             	    {
-            	    // InternalChartDSL.g:2923:6: ()
-            	    // InternalChartDSL.g:2924:7: 
+            	    // InternalChartDSL.g:3227:6: ()
+            	    // InternalChartDSL.g:3228:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8440,11 +9214,11 @@
 
             	    }
 
-            	    // InternalChartDSL.g:2930:6: ( ( ruleOpOr ) )
-            	    // InternalChartDSL.g:2931:7: ( ruleOpOr )
+            	    // InternalChartDSL.g:3234:6: ( ( ruleOpOr ) )
+            	    // InternalChartDSL.g:3235:7: ( ruleOpOr )
             	    {
-            	    // InternalChartDSL.g:2931:7: ( ruleOpOr )
-            	    // InternalChartDSL.g:2932:8: ruleOpOr
+            	    // InternalChartDSL.g:3235:7: ( ruleOpOr )
+            	    // InternalChartDSL.g:3236:8: ruleOpOr
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8458,7 +9232,7 @@
             	      								newCompositeNode(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
             	      							
             	    }
-            	    pushFollow(FOLLOW_50);
+            	    pushFollow(FOLLOW_63);
             	    ruleOpOr();
 
             	    state._fsp--;
@@ -8480,18 +9254,18 @@
 
             	    }
 
-            	    // InternalChartDSL.g:2948:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
-            	    // InternalChartDSL.g:2949:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalChartDSL.g:3252:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalChartDSL.g:3253:5: (lv_rightOperand_3_0= ruleXAndExpression )
             	    {
-            	    // InternalChartDSL.g:2949:5: (lv_rightOperand_3_0= ruleXAndExpression )
-            	    // InternalChartDSL.g:2950:6: lv_rightOperand_3_0= ruleXAndExpression
+            	    // InternalChartDSL.g:3253:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalChartDSL.g:3254:6: lv_rightOperand_3_0= ruleXAndExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_59);
+            	    pushFollow(FOLLOW_72);
             	    lv_rightOperand_3_0=ruleXAndExpression();
 
             	    state._fsp--;
@@ -8520,2565 +9294,6 @@
             	    break;
 
             	default :
-            	    break loop49;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXOrExpression"
-
-
-    // $ANTLR start "entryRuleOpOr"
-    // InternalChartDSL.g:2972:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
-    public final String entryRuleOpOr() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpOr = null;
-
-
-        try {
-            // InternalChartDSL.g:2972:44: (iv_ruleOpOr= ruleOpOr EOF )
-            // InternalChartDSL.g:2973:2: iv_ruleOpOr= ruleOpOr EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpOrRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpOr=ruleOpOr();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpOr.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpOr"
-
-
-    // $ANTLR start "ruleOpOr"
-    // InternalChartDSL.g:2979:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
-    public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:2985:2: (kw= '||' )
-            // InternalChartDSL.g:2986:2: kw= '||'
-            {
-            kw=(Token)match(input,86,FOLLOW_2); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              		current.merge(kw);
-              		newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
-              	
-            }
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpOr"
-
-
-    // $ANTLR start "entryRuleXAndExpression"
-    // InternalChartDSL.g:2994:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
-    public final EObject entryRuleXAndExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXAndExpression = null;
-
-
-        try {
-            // InternalChartDSL.g:2994:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
-            // InternalChartDSL.g:2995:2: iv_ruleXAndExpression= ruleXAndExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXAndExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXAndExpression=ruleXAndExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXAndExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXAndExpression"
-
-
-    // $ANTLR start "ruleXAndExpression"
-    // InternalChartDSL.g:3001:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
-    public final EObject ruleXAndExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject this_XEqualityExpression_0 = null;
-
-        EObject lv_rightOperand_3_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:3007:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
-            // InternalChartDSL.g:3008:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
-            {
-            // InternalChartDSL.g:3008:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
-            // InternalChartDSL.g:3009:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_60);
-            this_XEqualityExpression_0=ruleXEqualityExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XEqualityExpression_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalChartDSL.g:3017:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
-            loop50:
-            do {
-                int alt50=2;
-                int LA50_0 = input.LA(1);
-
-                if ( (LA50_0==87) ) {
-                    int LA50_2 = input.LA(2);
-
-                    if ( (synpred9_InternalChartDSL()) ) {
-                        alt50=1;
-                    }
-
-
-                }
-
-
-                switch (alt50) {
-            	case 1 :
-            	    // InternalChartDSL.g:3018:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
-            	    {
-            	    // InternalChartDSL.g:3018:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
-            	    // InternalChartDSL.g:3019:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
-            	    {
-            	    // InternalChartDSL.g:3029:5: ( () ( ( ruleOpAnd ) ) )
-            	    // InternalChartDSL.g:3030:6: () ( ( ruleOpAnd ) )
-            	    {
-            	    // InternalChartDSL.g:3030:6: ()
-            	    // InternalChartDSL.g:3031:7: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            	      								current);
-            	      						
-            	    }
-
-            	    }
-
-            	    // InternalChartDSL.g:3037:6: ( ( ruleOpAnd ) )
-            	    // InternalChartDSL.g:3038:7: ( ruleOpAnd )
-            	    {
-            	    // InternalChartDSL.g:3038:7: ( ruleOpAnd )
-            	    // InternalChartDSL.g:3039:8: ruleOpAnd
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXAndExpressionRule());
-            	      								}
-            	      							
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      								newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
-            	      							
-            	    }
-            	    pushFollow(FOLLOW_50);
-            	    ruleOpAnd();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      								afterParserOrEnumRuleCall();
-            	      							
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalChartDSL.g:3055:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
-            	    // InternalChartDSL.g:3056:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
-            	    {
-            	    // InternalChartDSL.g:3056:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
-            	    // InternalChartDSL.g:3057:6: lv_rightOperand_3_0= ruleXEqualityExpression
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      						newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
-            	      					
-            	    }
-            	    pushFollow(FOLLOW_60);
-            	    lv_rightOperand_3_0=ruleXEqualityExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
-            	      						}
-            	      						set(
-            	      							current,
-            	      							"rightOperand",
-            	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XEqualityExpression");
-            	      						afterParserOrEnumRuleCall();
-            	      					
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop50;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXAndExpression"
-
-
-    // $ANTLR start "entryRuleOpAnd"
-    // InternalChartDSL.g:3079:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
-    public final String entryRuleOpAnd() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpAnd = null;
-
-
-        try {
-            // InternalChartDSL.g:3079:45: (iv_ruleOpAnd= ruleOpAnd EOF )
-            // InternalChartDSL.g:3080:2: iv_ruleOpAnd= ruleOpAnd EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpAndRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpAnd=ruleOpAnd();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpAnd.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpAnd"
-
-
-    // $ANTLR start "ruleOpAnd"
-    // InternalChartDSL.g:3086:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
-    public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:3092:2: (kw= '&&' )
-            // InternalChartDSL.g:3093:2: kw= '&&'
-            {
-            kw=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              		current.merge(kw);
-              		newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
-              	
-            }
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpAnd"
-
-
-    // $ANTLR start "entryRuleXEqualityExpression"
-    // InternalChartDSL.g:3101:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
-    public final EObject entryRuleXEqualityExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXEqualityExpression = null;
-
-
-        try {
-            // InternalChartDSL.g:3101:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
-            // InternalChartDSL.g:3102:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXEqualityExpression=ruleXEqualityExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXEqualityExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXEqualityExpression"
-
-
-    // $ANTLR start "ruleXEqualityExpression"
-    // InternalChartDSL.g:3108:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
-    public final EObject ruleXEqualityExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject this_XRelationalExpression_0 = null;
-
-        EObject lv_rightOperand_3_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:3114:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
-            // InternalChartDSL.g:3115:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
-            {
-            // InternalChartDSL.g:3115:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
-            // InternalChartDSL.g:3116:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_61);
-            this_XRelationalExpression_0=ruleXRelationalExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XRelationalExpression_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalChartDSL.g:3124:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
-            loop51:
-            do {
-                int alt51=2;
-                switch ( input.LA(1) ) {
-                case 88:
-                    {
-                    int LA51_2 = input.LA(2);
-
-                    if ( (synpred10_InternalChartDSL()) ) {
-                        alt51=1;
-                    }
-
-
-                    }
-                    break;
-                case 89:
-                    {
-                    int LA51_3 = input.LA(2);
-
-                    if ( (synpred10_InternalChartDSL()) ) {
-                        alt51=1;
-                    }
-
-
-                    }
-                    break;
-                case 90:
-                    {
-                    int LA51_4 = input.LA(2);
-
-                    if ( (synpred10_InternalChartDSL()) ) {
-                        alt51=1;
-                    }
-
-
-                    }
-                    break;
-                case 91:
-                    {
-                    int LA51_5 = input.LA(2);
-
-                    if ( (synpred10_InternalChartDSL()) ) {
-                        alt51=1;
-                    }
-
-
-                    }
-                    break;
-
-                }
-
-                switch (alt51) {
-            	case 1 :
-            	    // InternalChartDSL.g:3125:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
-            	    {
-            	    // InternalChartDSL.g:3125:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
-            	    // InternalChartDSL.g:3126:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
-            	    {
-            	    // InternalChartDSL.g:3136:5: ( () ( ( ruleOpEquality ) ) )
-            	    // InternalChartDSL.g:3137:6: () ( ( ruleOpEquality ) )
-            	    {
-            	    // InternalChartDSL.g:3137:6: ()
-            	    // InternalChartDSL.g:3138:7: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            	      								current);
-            	      						
-            	    }
-
-            	    }
-
-            	    // InternalChartDSL.g:3144:6: ( ( ruleOpEquality ) )
-            	    // InternalChartDSL.g:3145:7: ( ruleOpEquality )
-            	    {
-            	    // InternalChartDSL.g:3145:7: ( ruleOpEquality )
-            	    // InternalChartDSL.g:3146:8: ruleOpEquality
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXEqualityExpressionRule());
-            	      								}
-            	      							
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      								newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
-            	      							
-            	    }
-            	    pushFollow(FOLLOW_50);
-            	    ruleOpEquality();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      								afterParserOrEnumRuleCall();
-            	      							
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalChartDSL.g:3162:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
-            	    // InternalChartDSL.g:3163:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
-            	    {
-            	    // InternalChartDSL.g:3163:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
-            	    // InternalChartDSL.g:3164:6: lv_rightOperand_3_0= ruleXRelationalExpression
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      						newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
-            	      					
-            	    }
-            	    pushFollow(FOLLOW_61);
-            	    lv_rightOperand_3_0=ruleXRelationalExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
-            	      						}
-            	      						set(
-            	      							current,
-            	      							"rightOperand",
-            	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XRelationalExpression");
-            	      						afterParserOrEnumRuleCall();
-            	      					
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop51;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXEqualityExpression"
-
-
-    // $ANTLR start "entryRuleOpEquality"
-    // InternalChartDSL.g:3186:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
-    public final String entryRuleOpEquality() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpEquality = null;
-
-
-        try {
-            // InternalChartDSL.g:3186:50: (iv_ruleOpEquality= ruleOpEquality EOF )
-            // InternalChartDSL.g:3187:2: iv_ruleOpEquality= ruleOpEquality EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpEqualityRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpEquality=ruleOpEquality();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpEquality.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpEquality"
-
-
-    // $ANTLR start "ruleOpEquality"
-    // InternalChartDSL.g:3193:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
-    public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:3199:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
-            // InternalChartDSL.g:3200:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
-            {
-            // InternalChartDSL.g:3200:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
-            int alt52=4;
-            switch ( input.LA(1) ) {
-            case 88:
-                {
-                alt52=1;
-                }
-                break;
-            case 89:
-                {
-                alt52=2;
-                }
-                break;
-            case 90:
-                {
-                alt52=3;
-                }
-                break;
-            case 91:
-                {
-                alt52=4;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return current;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 52, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt52) {
-                case 1 :
-                    // InternalChartDSL.g:3201:3: kw= '=='
-                    {
-                    kw=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
-                      		
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // InternalChartDSL.g:3207:3: kw= '!='
-                    {
-                    kw=(Token)match(input,89,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
-                      		
-                    }
-
-                    }
-                    break;
-                case 3 :
-                    // InternalChartDSL.g:3213:3: kw= '==='
-                    {
-                    kw=(Token)match(input,90,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
-                      		
-                    }
-
-                    }
-                    break;
-                case 4 :
-                    // InternalChartDSL.g:3219:3: kw= '!=='
-                    {
-                    kw=(Token)match(input,91,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
-                      		
-                    }
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpEquality"
-
-
-    // $ANTLR start "entryRuleXRelationalExpression"
-    // InternalChartDSL.g:3228:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
-    public final EObject entryRuleXRelationalExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXRelationalExpression = null;
-
-
-        try {
-            // InternalChartDSL.g:3228:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
-            // InternalChartDSL.g:3229:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXRelationalExpression=ruleXRelationalExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXRelationalExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXRelationalExpression"
-
-
-    // $ANTLR start "ruleXRelationalExpression"
-    // InternalChartDSL.g:3235:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
-    public final EObject ruleXRelationalExpression() throws RecognitionException {
-        EObject current = null;
-
-        Token otherlv_2=null;
-        EObject this_XOtherOperatorExpression_0 = null;
-
-        EObject lv_type_3_0 = null;
-
-        EObject lv_rightOperand_6_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:3241:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
-            // InternalChartDSL.g:3242:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
-            {
-            // InternalChartDSL.g:3242:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
-            // InternalChartDSL.g:3243:3: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_62);
-            this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XOtherOperatorExpression_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalChartDSL.g:3251:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
-            loop53:
-            do {
-                int alt53=3;
-                switch ( input.LA(1) ) {
-                case 83:
-                    {
-                    int LA53_2 = input.LA(2);
-
-                    if ( (synpred12_InternalChartDSL()) ) {
-                        alt53=2;
-                    }
-
-
-                    }
-                    break;
-                case 84:
-                    {
-                    int LA53_3 = input.LA(2);
-
-                    if ( (synpred12_InternalChartDSL()) ) {
-                        alt53=2;
-                    }
-
-
-                    }
-                    break;
-                case 92:
-                    {
-                    int LA53_4 = input.LA(2);
-
-                    if ( (synpred11_InternalChartDSL()) ) {
-                        alt53=1;
-                    }
-
-
-                    }
-                    break;
-                case 85:
-                    {
-                    int LA53_5 = input.LA(2);
-
-                    if ( (synpred12_InternalChartDSL()) ) {
-                        alt53=2;
-                    }
-
-
-                    }
-                    break;
-
-                }
-
-                switch (alt53) {
-            	case 1 :
-            	    // InternalChartDSL.g:3252:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
-            	    {
-            	    // InternalChartDSL.g:3252:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
-            	    // InternalChartDSL.g:3253:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    {
-            	    // InternalChartDSL.g:3253:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
-            	    // InternalChartDSL.g:3254:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
-            	    {
-            	    // InternalChartDSL.g:3260:6: ( () otherlv_2= 'instanceof' )
-            	    // InternalChartDSL.g:3261:7: () otherlv_2= 'instanceof'
-            	    {
-            	    // InternalChartDSL.g:3261:7: ()
-            	    // InternalChartDSL.g:3262:8: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								current = forceCreateModelElementAndSet(
-            	      									grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
-            	      									current);
-            	      							
-            	    }
-
-            	    }
-
-            	    otherlv_2=(Token)match(input,92,FOLLOW_63); if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      							newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
-            	      						
-            	    }
-
-            	    }
-
-
-            	    }
-
-            	    // InternalChartDSL.g:3274:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalChartDSL.g:3275:6: (lv_type_3_0= ruleJvmTypeReference )
-            	    {
-            	    // InternalChartDSL.g:3275:6: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalChartDSL.g:3276:7: lv_type_3_0= ruleJvmTypeReference
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
-            	      						
-            	    }
-            	    pushFollow(FOLLOW_62);
-            	    lv_type_3_0=ruleJvmTypeReference();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      							if (current==null) {
-            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
-            	      							}
-            	      							set(
-            	      								current,
-            	      								"type",
-            	      								lv_type_3_0,
-            	      								"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
-            	      							afterParserOrEnumRuleCall();
-            	      						
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-            	case 2 :
-            	    // InternalChartDSL.g:3295:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
-            	    {
-            	    // InternalChartDSL.g:3295:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
-            	    // InternalChartDSL.g:3296:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
-            	    {
-            	    // InternalChartDSL.g:3296:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
-            	    // InternalChartDSL.g:3297:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
-            	    {
-            	    // InternalChartDSL.g:3307:6: ( () ( ( ruleOpCompare ) ) )
-            	    // InternalChartDSL.g:3308:7: () ( ( ruleOpCompare ) )
-            	    {
-            	    // InternalChartDSL.g:3308:7: ()
-            	    // InternalChartDSL.g:3309:8: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								current = forceCreateModelElementAndSet(
-            	      									grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
-            	      									current);
-            	      							
-            	    }
-
-            	    }
-
-            	    // InternalChartDSL.g:3315:7: ( ( ruleOpCompare ) )
-            	    // InternalChartDSL.g:3316:8: ( ruleOpCompare )
-            	    {
-            	    // InternalChartDSL.g:3316:8: ( ruleOpCompare )
-            	    // InternalChartDSL.g:3317:9: ruleOpCompare
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      									if (current==null) {
-            	      										current = createModelElement(grammarAccess.getXRelationalExpressionRule());
-            	      									}
-            	      								
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      									newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
-            	      								
-            	    }
-            	    pushFollow(FOLLOW_50);
-            	    ruleOpCompare();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      									afterParserOrEnumRuleCall();
-            	      								
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalChartDSL.g:3333:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
-            	    // InternalChartDSL.g:3334:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
-            	    {
-            	    // InternalChartDSL.g:3334:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
-            	    // InternalChartDSL.g:3335:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
-            	      						
-            	    }
-            	    pushFollow(FOLLOW_62);
-            	    lv_rightOperand_6_0=ruleXOtherOperatorExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      							if (current==null) {
-            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
-            	      							}
-            	      							set(
-            	      								current,
-            	      								"rightOperand",
-            	      								lv_rightOperand_6_0,
-            	      								"org.eclipse.xtext.xbase.Xbase.XOtherOperatorExpression");
-            	      							afterParserOrEnumRuleCall();
-            	      						
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop53;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXRelationalExpression"
-
-
-    // $ANTLR start "entryRuleOpCompare"
-    // InternalChartDSL.g:3358:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
-    public final String entryRuleOpCompare() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpCompare = null;
-
-
-        try {
-            // InternalChartDSL.g:3358:49: (iv_ruleOpCompare= ruleOpCompare EOF )
-            // InternalChartDSL.g:3359:2: iv_ruleOpCompare= ruleOpCompare EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpCompareRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpCompare=ruleOpCompare();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpCompare.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpCompare"
-
-
-    // $ANTLR start "ruleOpCompare"
-    // InternalChartDSL.g:3365:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
-    public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:3371:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
-            // InternalChartDSL.g:3372:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
-            {
-            // InternalChartDSL.g:3372:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
-            int alt54=4;
-            switch ( input.LA(1) ) {
-            case 85:
-                {
-                alt54=1;
-                }
-                break;
-            case 83:
-                {
-                int LA54_2 = input.LA(2);
-
-                if ( (LA54_2==EOF||(LA54_2>=RULE_ID && LA54_2<=RULE_DECIMAL)||LA54_2==14||(LA54_2>=63 && LA54_2<=66)||LA54_2==71||(LA54_2>=75 && LA54_2<=76)||LA54_2==83||LA54_2==99||LA54_2==103||LA54_2==110||LA54_2==112||(LA54_2>=116 && LA54_2<=118)||(LA54_2>=121 && LA54_2<=130)||LA54_2==132) ) {
-                    alt54=4;
-                }
-                else if ( (LA54_2==74) ) {
-                    alt54=2;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return current;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 54, 2, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case 84:
-                {
-                alt54=3;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return current;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 54, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt54) {
-                case 1 :
-                    // InternalChartDSL.g:3373:3: kw= '>='
-                    {
-                    kw=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0());
-                      		
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // InternalChartDSL.g:3379:3: (kw= '<' kw= '=' )
-                    {
-                    // InternalChartDSL.g:3379:3: (kw= '<' kw= '=' )
-                    // InternalChartDSL.g:3380:4: kw= '<' kw= '='
-                    {
-                    kw=(Token)match(input,83,FOLLOW_49); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current.merge(kw);
-                      				newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0());
-                      			
-                    }
-                    kw=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current.merge(kw);
-                      				newLeafNode(kw, grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1());
-                      			
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // InternalChartDSL.g:3392:3: kw= '>'
-                    {
-                    kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2());
-                      		
-                    }
-
-                    }
-                    break;
-                case 4 :
-                    // InternalChartDSL.g:3398:3: kw= '<'
-                    {
-                    kw=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3());
-                      		
-                    }
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpCompare"
-
-
-    // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // InternalChartDSL.g:3407:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
-    public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXOtherOperatorExpression = null;
-
-
-        try {
-            // InternalChartDSL.g:3407:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
-            // InternalChartDSL.g:3408:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXOtherOperatorExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXOtherOperatorExpression"
-
-
-    // $ANTLR start "ruleXOtherOperatorExpression"
-    // InternalChartDSL.g:3414:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
-    public final EObject ruleXOtherOperatorExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject this_XAdditiveExpression_0 = null;
-
-        EObject lv_rightOperand_3_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:3420:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
-            // InternalChartDSL.g:3421:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
-            {
-            // InternalChartDSL.g:3421:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
-            // InternalChartDSL.g:3422:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_64);
-            this_XAdditiveExpression_0=ruleXAdditiveExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XAdditiveExpression_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalChartDSL.g:3430:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
-            loop55:
-            do {
-                int alt55=2;
-                alt55 = dfa55.predict(input);
-                switch (alt55) {
-            	case 1 :
-            	    // InternalChartDSL.g:3431:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
-            	    {
-            	    // InternalChartDSL.g:3431:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
-            	    // InternalChartDSL.g:3432:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
-            	    {
-            	    // InternalChartDSL.g:3442:5: ( () ( ( ruleOpOther ) ) )
-            	    // InternalChartDSL.g:3443:6: () ( ( ruleOpOther ) )
-            	    {
-            	    // InternalChartDSL.g:3443:6: ()
-            	    // InternalChartDSL.g:3444:7: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            	      								current);
-            	      						
-            	    }
-
-            	    }
-
-            	    // InternalChartDSL.g:3450:6: ( ( ruleOpOther ) )
-            	    // InternalChartDSL.g:3451:7: ( ruleOpOther )
-            	    {
-            	    // InternalChartDSL.g:3451:7: ( ruleOpOther )
-            	    // InternalChartDSL.g:3452:8: ruleOpOther
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
-            	      								}
-            	      							
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      								newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
-            	      							
-            	    }
-            	    pushFollow(FOLLOW_50);
-            	    ruleOpOther();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      								afterParserOrEnumRuleCall();
-            	      							
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalChartDSL.g:3468:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
-            	    // InternalChartDSL.g:3469:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
-            	    {
-            	    // InternalChartDSL.g:3469:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
-            	    // InternalChartDSL.g:3470:6: lv_rightOperand_3_0= ruleXAdditiveExpression
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      						newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0());
-            	      					
-            	    }
-            	    pushFollow(FOLLOW_64);
-            	    lv_rightOperand_3_0=ruleXAdditiveExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
-            	      						}
-            	      						set(
-            	      							current,
-            	      							"rightOperand",
-            	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XAdditiveExpression");
-            	      						afterParserOrEnumRuleCall();
-            	      					
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop55;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXOtherOperatorExpression"
-
-
-    // $ANTLR start "entryRuleOpOther"
-    // InternalChartDSL.g:3492:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
-    public final String entryRuleOpOther() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpOther = null;
-
-
-        try {
-            // InternalChartDSL.g:3492:47: (iv_ruleOpOther= ruleOpOther EOF )
-            // InternalChartDSL.g:3493:2: iv_ruleOpOther= ruleOpOther EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpOtherRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpOther=ruleOpOther();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpOther.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpOther"
-
-
-    // $ANTLR start "ruleOpOther"
-    // InternalChartDSL.g:3499:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
-    public final AntlrDatatypeRuleToken ruleOpOther() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:3505:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
-            // InternalChartDSL.g:3506:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
-            {
-            // InternalChartDSL.g:3506:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
-            int alt58=9;
-            alt58 = dfa58.predict(input);
-            switch (alt58) {
-                case 1 :
-                    // InternalChartDSL.g:3507:3: kw= '->'
-                    {
-                    kw=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0());
-                      		
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // InternalChartDSL.g:3513:3: kw= '..<'
-                    {
-                    kw=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1());
-                      		
-                    }
-
-                    }
-                    break;
-                case 3 :
-                    // InternalChartDSL.g:3519:3: (kw= '>' kw= '..' )
-                    {
-                    // InternalChartDSL.g:3519:3: (kw= '>' kw= '..' )
-                    // InternalChartDSL.g:3520:4: kw= '>' kw= '..'
-                    {
-                    kw=(Token)match(input,84,FOLLOW_65); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current.merge(kw);
-                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
-                      			
-                    }
-                    kw=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current.merge(kw);
-                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1());
-                      			
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // InternalChartDSL.g:3532:3: kw= '..'
-                    {
-                    kw=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3());
-                      		
-                    }
-
-                    }
-                    break;
-                case 5 :
-                    // InternalChartDSL.g:3538:3: kw= '=>'
-                    {
-                    kw=(Token)match(input,96,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4());
-                      		
-                    }
-
-                    }
-                    break;
-                case 6 :
-                    // InternalChartDSL.g:3544:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
-                    {
-                    // InternalChartDSL.g:3544:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
-                    // InternalChartDSL.g:3545:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
-                    {
-                    kw=(Token)match(input,84,FOLLOW_66); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current.merge(kw);
-                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
-                      			
-                    }
-                    // InternalChartDSL.g:3550:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
-                    int alt56=2;
-                    int LA56_0 = input.LA(1);
-
-                    if ( (LA56_0==84) ) {
-                        int LA56_1 = input.LA(2);
-
-                        if ( (LA56_1==84) && (synpred14_InternalChartDSL())) {
-                            alt56=1;
-                        }
-                        else if ( (LA56_1==EOF||(LA56_1>=RULE_ID && LA56_1<=RULE_DECIMAL)||LA56_1==14||(LA56_1>=63 && LA56_1<=66)||LA56_1==71||(LA56_1>=75 && LA56_1<=76)||LA56_1==83||LA56_1==99||LA56_1==103||LA56_1==110||LA56_1==112||(LA56_1>=116 && LA56_1<=118)||(LA56_1>=121 && LA56_1<=130)||LA56_1==132) ) {
-                            alt56=2;
-                        }
-                        else {
-                            if (state.backtracking>0) {state.failed=true; return current;}
-                            NoViableAltException nvae =
-                                new NoViableAltException("", 56, 1, input);
-
-                            throw nvae;
-                        }
-                    }
-                    else {
-                        if (state.backtracking>0) {state.failed=true; return current;}
-                        NoViableAltException nvae =
-                            new NoViableAltException("", 56, 0, input);
-
-                        throw nvae;
-                    }
-                    switch (alt56) {
-                        case 1 :
-                            // InternalChartDSL.g:3551:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
-                            {
-                            // InternalChartDSL.g:3551:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
-                            // InternalChartDSL.g:3552:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
-                            {
-                            // InternalChartDSL.g:3557:6: (kw= '>' kw= '>' )
-                            // InternalChartDSL.g:3558:7: kw= '>' kw= '>'
-                            {
-                            kw=(Token)match(input,84,FOLLOW_66); if (state.failed) return current;
-                            if ( state.backtracking==0 ) {
-
-                              							current.merge(kw);
-                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0());
-                              						
-                            }
-                            kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
-                            if ( state.backtracking==0 ) {
-
-                              							current.merge(kw);
-                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1());
-                              						
-                            }
-
-                            }
-
-
-                            }
-
-
-                            }
-                            break;
-                        case 2 :
-                            // InternalChartDSL.g:3571:5: kw= '>'
-                            {
-                            kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
-                            if ( state.backtracking==0 ) {
-
-                              					current.merge(kw);
-                              					newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1());
-                              				
-                            }
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-
-
-                    }
-                    break;
-                case 7 :
-                    // InternalChartDSL.g:3579:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
-                    {
-                    // InternalChartDSL.g:3579:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
-                    // InternalChartDSL.g:3580:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
-                    {
-                    kw=(Token)match(input,83,FOLLOW_67); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      				current.merge(kw);
-                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
-                      			
-                    }
-                    // InternalChartDSL.g:3585:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
-                    int alt57=3;
-                    int LA57_0 = input.LA(1);
-
-                    if ( (LA57_0==83) ) {
-                        int LA57_1 = input.LA(2);
-
-                        if ( (synpred15_InternalChartDSL()) ) {
-                            alt57=1;
-                        }
-                        else if ( (true) ) {
-                            alt57=2;
-                        }
-                        else {
-                            if (state.backtracking>0) {state.failed=true; return current;}
-                            NoViableAltException nvae =
-                                new NoViableAltException("", 57, 1, input);
-
-                            throw nvae;
-                        }
-                    }
-                    else if ( (LA57_0==96) ) {
-                        alt57=3;
-                    }
-                    else {
-                        if (state.backtracking>0) {state.failed=true; return current;}
-                        NoViableAltException nvae =
-                            new NoViableAltException("", 57, 0, input);
-
-                        throw nvae;
-                    }
-                    switch (alt57) {
-                        case 1 :
-                            // InternalChartDSL.g:3586:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
-                            {
-                            // InternalChartDSL.g:3586:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
-                            // InternalChartDSL.g:3587:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
-                            {
-                            // InternalChartDSL.g:3592:6: (kw= '<' kw= '<' )
-                            // InternalChartDSL.g:3593:7: kw= '<' kw= '<'
-                            {
-                            kw=(Token)match(input,83,FOLLOW_56); if (state.failed) return current;
-                            if ( state.backtracking==0 ) {
-
-                              							current.merge(kw);
-                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0());
-                              						
-                            }
-                            kw=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
-                            if ( state.backtracking==0 ) {
-
-                              							current.merge(kw);
-                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1());
-                              						
-                            }
-
-                            }
-
-
-                            }
-
-
-                            }
-                            break;
-                        case 2 :
-                            // InternalChartDSL.g:3606:5: kw= '<'
-                            {
-                            kw=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
-                            if ( state.backtracking==0 ) {
-
-                              					current.merge(kw);
-                              					newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1());
-                              				
-                            }
-
-                            }
-                            break;
-                        case 3 :
-                            // InternalChartDSL.g:3612:5: kw= '=>'
-                            {
-                            kw=(Token)match(input,96,FOLLOW_2); if (state.failed) return current;
-                            if ( state.backtracking==0 ) {
-
-                              					current.merge(kw);
-                              					newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2());
-                              				
-                            }
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-
-
-                    }
-                    break;
-                case 8 :
-                    // InternalChartDSL.g:3620:3: kw= '<>'
-                    {
-                    kw=(Token)match(input,97,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7());
-                      		
-                    }
-
-                    }
-                    break;
-                case 9 :
-                    // InternalChartDSL.g:3626:3: kw= '?:'
-                    {
-                    kw=(Token)match(input,98,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8());
-                      		
-                    }
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpOther"
-
-
-    // $ANTLR start "entryRuleXAdditiveExpression"
-    // InternalChartDSL.g:3635:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
-    public final EObject entryRuleXAdditiveExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXAdditiveExpression = null;
-
-
-        try {
-            // InternalChartDSL.g:3635:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
-            // InternalChartDSL.g:3636:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXAdditiveExpression=ruleXAdditiveExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXAdditiveExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXAdditiveExpression"
-
-
-    // $ANTLR start "ruleXAdditiveExpression"
-    // InternalChartDSL.g:3642:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
-    public final EObject ruleXAdditiveExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject this_XMultiplicativeExpression_0 = null;
-
-        EObject lv_rightOperand_3_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:3648:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
-            // InternalChartDSL.g:3649:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
-            {
-            // InternalChartDSL.g:3649:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
-            // InternalChartDSL.g:3650:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_68);
-            this_XMultiplicativeExpression_0=ruleXMultiplicativeExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XMultiplicativeExpression_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalChartDSL.g:3658:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
-            loop59:
-            do {
-                int alt59=2;
-                int LA59_0 = input.LA(1);
-
-                if ( (LA59_0==99) ) {
-                    int LA59_2 = input.LA(2);
-
-                    if ( (synpred16_InternalChartDSL()) ) {
-                        alt59=1;
-                    }
-
-
-                }
-                else if ( (LA59_0==63) ) {
-                    int LA59_3 = input.LA(2);
-
-                    if ( (synpred16_InternalChartDSL()) ) {
-                        alt59=1;
-                    }
-
-
-                }
-
-
-                switch (alt59) {
-            	case 1 :
-            	    // InternalChartDSL.g:3659:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
-            	    {
-            	    // InternalChartDSL.g:3659:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
-            	    // InternalChartDSL.g:3660:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
-            	    {
-            	    // InternalChartDSL.g:3670:5: ( () ( ( ruleOpAdd ) ) )
-            	    // InternalChartDSL.g:3671:6: () ( ( ruleOpAdd ) )
-            	    {
-            	    // InternalChartDSL.g:3671:6: ()
-            	    // InternalChartDSL.g:3672:7: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            	      								current);
-            	      						
-            	    }
-
-            	    }
-
-            	    // InternalChartDSL.g:3678:6: ( ( ruleOpAdd ) )
-            	    // InternalChartDSL.g:3679:7: ( ruleOpAdd )
-            	    {
-            	    // InternalChartDSL.g:3679:7: ( ruleOpAdd )
-            	    // InternalChartDSL.g:3680:8: ruleOpAdd
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXAdditiveExpressionRule());
-            	      								}
-            	      							
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      								newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
-            	      							
-            	    }
-            	    pushFollow(FOLLOW_50);
-            	    ruleOpAdd();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      								afterParserOrEnumRuleCall();
-            	      							
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalChartDSL.g:3696:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
-            	    // InternalChartDSL.g:3697:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
-            	    {
-            	    // InternalChartDSL.g:3697:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
-            	    // InternalChartDSL.g:3698:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      						newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0());
-            	      					
-            	    }
-            	    pushFollow(FOLLOW_68);
-            	    lv_rightOperand_3_0=ruleXMultiplicativeExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXAdditiveExpressionRule());
-            	      						}
-            	      						set(
-            	      							current,
-            	      							"rightOperand",
-            	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XMultiplicativeExpression");
-            	      						afterParserOrEnumRuleCall();
-            	      					
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop59;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXAdditiveExpression"
-
-
-    // $ANTLR start "entryRuleOpAdd"
-    // InternalChartDSL.g:3720:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
-    public final String entryRuleOpAdd() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpAdd = null;
-
-
-        try {
-            // InternalChartDSL.g:3720:45: (iv_ruleOpAdd= ruleOpAdd EOF )
-            // InternalChartDSL.g:3721:2: iv_ruleOpAdd= ruleOpAdd EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpAddRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpAdd=ruleOpAdd();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpAdd.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpAdd"
-
-
-    // $ANTLR start "ruleOpAdd"
-    // InternalChartDSL.g:3727:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
-    public final AntlrDatatypeRuleToken ruleOpAdd() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:3733:2: ( (kw= '+' | kw= '-' ) )
-            // InternalChartDSL.g:3734:2: (kw= '+' | kw= '-' )
-            {
-            // InternalChartDSL.g:3734:2: (kw= '+' | kw= '-' )
-            int alt60=2;
-            int LA60_0 = input.LA(1);
-
-            if ( (LA60_0==99) ) {
-                alt60=1;
-            }
-            else if ( (LA60_0==63) ) {
-                alt60=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return current;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 60, 0, input);
-
-                throw nvae;
-            }
-            switch (alt60) {
-                case 1 :
-                    // InternalChartDSL.g:3735:3: kw= '+'
-                    {
-                    kw=(Token)match(input,99,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpAddAccess().getPlusSignKeyword_0());
-                      		
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // InternalChartDSL.g:3741:3: kw= '-'
-                    {
-                    kw=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1());
-                      		
-                    }
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpAdd"
-
-
-    // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // InternalChartDSL.g:3750:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
-    public final EObject entryRuleXMultiplicativeExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXMultiplicativeExpression = null;
-
-
-        try {
-            // InternalChartDSL.g:3750:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
-            // InternalChartDSL.g:3751:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXMultiplicativeExpression=ruleXMultiplicativeExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXMultiplicativeExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXMultiplicativeExpression"
-
-
-    // $ANTLR start "ruleXMultiplicativeExpression"
-    // InternalChartDSL.g:3757:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
-    public final EObject ruleXMultiplicativeExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject this_XUnaryOperation_0 = null;
-
-        EObject lv_rightOperand_3_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalChartDSL.g:3763:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
-            // InternalChartDSL.g:3764:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
-            {
-            // InternalChartDSL.g:3764:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
-            // InternalChartDSL.g:3765:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_69);
-            this_XUnaryOperation_0=ruleXUnaryOperation();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XUnaryOperation_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalChartDSL.g:3773:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
-            loop61:
-            do {
-                int alt61=2;
-                switch ( input.LA(1) ) {
-                case 67:
-                    {
-                    int LA61_2 = input.LA(2);
-
-                    if ( (synpred17_InternalChartDSL()) ) {
-                        alt61=1;
-                    }
-
-
-                    }
-                    break;
-                case 100:
-                    {
-                    int LA61_3 = input.LA(2);
-
-                    if ( (synpred17_InternalChartDSL()) ) {
-                        alt61=1;
-                    }
-
-
-                    }
-                    break;
-                case 101:
-                    {
-                    int LA61_4 = input.LA(2);
-
-                    if ( (synpred17_InternalChartDSL()) ) {
-                        alt61=1;
-                    }
-
-
-                    }
-                    break;
-                case 102:
-                    {
-                    int LA61_5 = input.LA(2);
-
-                    if ( (synpred17_InternalChartDSL()) ) {
-                        alt61=1;
-                    }
-
-
-                    }
-                    break;
-
-                }
-
-                switch (alt61) {
-            	case 1 :
-            	    // InternalChartDSL.g:3774:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
-            	    {
-            	    // InternalChartDSL.g:3774:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
-            	    // InternalChartDSL.g:3775:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
-            	    {
-            	    // InternalChartDSL.g:3785:5: ( () ( ( ruleOpMulti ) ) )
-            	    // InternalChartDSL.g:3786:6: () ( ( ruleOpMulti ) )
-            	    {
-            	    // InternalChartDSL.g:3786:6: ()
-            	    // InternalChartDSL.g:3787:7: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            	      								current);
-            	      						
-            	    }
-
-            	    }
-
-            	    // InternalChartDSL.g:3793:6: ( ( ruleOpMulti ) )
-            	    // InternalChartDSL.g:3794:7: ( ruleOpMulti )
-            	    {
-            	    // InternalChartDSL.g:3794:7: ( ruleOpMulti )
-            	    // InternalChartDSL.g:3795:8: ruleOpMulti
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXMultiplicativeExpressionRule());
-            	      								}
-            	      							
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      								newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
-            	      							
-            	    }
-            	    pushFollow(FOLLOW_50);
-            	    ruleOpMulti();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      								afterParserOrEnumRuleCall();
-            	      							
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalChartDSL.g:3811:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
-            	    // InternalChartDSL.g:3812:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
-            	    {
-            	    // InternalChartDSL.g:3812:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
-            	    // InternalChartDSL.g:3813:6: lv_rightOperand_3_0= ruleXUnaryOperation
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      						newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0());
-            	      					
-            	    }
-            	    pushFollow(FOLLOW_69);
-            	    lv_rightOperand_3_0=ruleXUnaryOperation();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXMultiplicativeExpressionRule());
-            	      						}
-            	      						set(
-            	      							current,
-            	      							"rightOperand",
-            	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XUnaryOperation");
-            	      						afterParserOrEnumRuleCall();
-            	      					
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
             	    break loop61;
                 }
             } while (true);
@@ -11104,11 +9319,2570 @@
         }
         return current;
     }
+    // $ANTLR end "ruleXOrExpression"
+
+
+    // $ANTLR start "entryRuleOpOr"
+    // InternalChartDSL.g:3276:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
+    public final String entryRuleOpOr() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpOr = null;
+
+
+        try {
+            // InternalChartDSL.g:3276:44: (iv_ruleOpOr= ruleOpOr EOF )
+            // InternalChartDSL.g:3277:2: iv_ruleOpOr= ruleOpOr EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpOrRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpOr=ruleOpOr();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpOr.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpOr"
+
+
+    // $ANTLR start "ruleOpOr"
+    // InternalChartDSL.g:3283:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
+    public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:3289:2: (kw= '||' )
+            // InternalChartDSL.g:3290:2: kw= '||'
+            {
+            kw=(Token)match(input,96,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(kw);
+              		newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
+              	
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpOr"
+
+
+    // $ANTLR start "entryRuleXAndExpression"
+    // InternalChartDSL.g:3298:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
+    public final EObject entryRuleXAndExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAndExpression = null;
+
+
+        try {
+            // InternalChartDSL.g:3298:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
+            // InternalChartDSL.g:3299:2: iv_ruleXAndExpression= ruleXAndExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAndExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXAndExpression=ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAndExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAndExpression"
+
+
+    // $ANTLR start "ruleXAndExpression"
+    // InternalChartDSL.g:3305:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
+    public final EObject ruleXAndExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XEqualityExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:3311:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
+            // InternalChartDSL.g:3312:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            {
+            // InternalChartDSL.g:3312:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // InternalChartDSL.g:3313:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_73);
+            this_XEqualityExpression_0=ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XEqualityExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalChartDSL.g:3321:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            loop62:
+            do {
+                int alt62=2;
+                int LA62_0 = input.LA(1);
+
+                if ( (LA62_0==97) ) {
+                    int LA62_2 = input.LA(2);
+
+                    if ( (synpred9_InternalChartDSL()) ) {
+                        alt62=1;
+                    }
+
+
+                }
+
+
+                switch (alt62) {
+            	case 1 :
+            	    // InternalChartDSL.g:3322:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    {
+            	    // InternalChartDSL.g:3322:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
+            	    // InternalChartDSL.g:3323:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
+            	    {
+            	    // InternalChartDSL.g:3333:5: ( () ( ( ruleOpAnd ) ) )
+            	    // InternalChartDSL.g:3334:6: () ( ( ruleOpAnd ) )
+            	    {
+            	    // InternalChartDSL.g:3334:6: ()
+            	    // InternalChartDSL.g:3335:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalChartDSL.g:3341:6: ( ( ruleOpAnd ) )
+            	    // InternalChartDSL.g:3342:7: ( ruleOpAnd )
+            	    {
+            	    // InternalChartDSL.g:3342:7: ( ruleOpAnd )
+            	    // InternalChartDSL.g:3343:8: ruleOpAnd
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXAndExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_63);
+            	    ruleOpAnd();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalChartDSL.g:3359:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // InternalChartDSL.g:3360:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    {
+            	    // InternalChartDSL.g:3360:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // InternalChartDSL.g:3361:6: lv_rightOperand_3_0= ruleXEqualityExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_73);
+            	    lv_rightOperand_3_0=ruleXEqualityExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XEqualityExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop62;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAndExpression"
+
+
+    // $ANTLR start "entryRuleOpAnd"
+    // InternalChartDSL.g:3383:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
+    public final String entryRuleOpAnd() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpAnd = null;
+
+
+        try {
+            // InternalChartDSL.g:3383:45: (iv_ruleOpAnd= ruleOpAnd EOF )
+            // InternalChartDSL.g:3384:2: iv_ruleOpAnd= ruleOpAnd EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpAndRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpAnd=ruleOpAnd();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpAnd.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpAnd"
+
+
+    // $ANTLR start "ruleOpAnd"
+    // InternalChartDSL.g:3390:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
+    public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:3396:2: (kw= '&&' )
+            // InternalChartDSL.g:3397:2: kw= '&&'
+            {
+            kw=(Token)match(input,97,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(kw);
+              		newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
+              	
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpAnd"
+
+
+    // $ANTLR start "entryRuleXEqualityExpression"
+    // InternalChartDSL.g:3405:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
+    public final EObject entryRuleXEqualityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXEqualityExpression = null;
+
+
+        try {
+            // InternalChartDSL.g:3405:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
+            // InternalChartDSL.g:3406:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXEqualityExpression=ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXEqualityExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXEqualityExpression"
+
+
+    // $ANTLR start "ruleXEqualityExpression"
+    // InternalChartDSL.g:3412:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
+    public final EObject ruleXEqualityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XRelationalExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:3418:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
+            // InternalChartDSL.g:3419:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            {
+            // InternalChartDSL.g:3419:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // InternalChartDSL.g:3420:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_74);
+            this_XRelationalExpression_0=ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XRelationalExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalChartDSL.g:3428:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            loop63:
+            do {
+                int alt63=2;
+                switch ( input.LA(1) ) {
+                case 98:
+                    {
+                    int LA63_2 = input.LA(2);
+
+                    if ( (synpred10_InternalChartDSL()) ) {
+                        alt63=1;
+                    }
+
+
+                    }
+                    break;
+                case 99:
+                    {
+                    int LA63_3 = input.LA(2);
+
+                    if ( (synpred10_InternalChartDSL()) ) {
+                        alt63=1;
+                    }
+
+
+                    }
+                    break;
+                case 100:
+                    {
+                    int LA63_4 = input.LA(2);
+
+                    if ( (synpred10_InternalChartDSL()) ) {
+                        alt63=1;
+                    }
+
+
+                    }
+                    break;
+                case 101:
+                    {
+                    int LA63_5 = input.LA(2);
+
+                    if ( (synpred10_InternalChartDSL()) ) {
+                        alt63=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt63) {
+            	case 1 :
+            	    // InternalChartDSL.g:3429:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    {
+            	    // InternalChartDSL.g:3429:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
+            	    // InternalChartDSL.g:3430:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
+            	    {
+            	    // InternalChartDSL.g:3440:5: ( () ( ( ruleOpEquality ) ) )
+            	    // InternalChartDSL.g:3441:6: () ( ( ruleOpEquality ) )
+            	    {
+            	    // InternalChartDSL.g:3441:6: ()
+            	    // InternalChartDSL.g:3442:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalChartDSL.g:3448:6: ( ( ruleOpEquality ) )
+            	    // InternalChartDSL.g:3449:7: ( ruleOpEquality )
+            	    {
+            	    // InternalChartDSL.g:3449:7: ( ruleOpEquality )
+            	    // InternalChartDSL.g:3450:8: ruleOpEquality
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXEqualityExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_63);
+            	    ruleOpEquality();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalChartDSL.g:3466:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // InternalChartDSL.g:3467:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    {
+            	    // InternalChartDSL.g:3467:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // InternalChartDSL.g:3468:6: lv_rightOperand_3_0= ruleXRelationalExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_74);
+            	    lv_rightOperand_3_0=ruleXRelationalExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XRelationalExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop63;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXEqualityExpression"
+
+
+    // $ANTLR start "entryRuleOpEquality"
+    // InternalChartDSL.g:3490:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
+    public final String entryRuleOpEquality() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpEquality = null;
+
+
+        try {
+            // InternalChartDSL.g:3490:50: (iv_ruleOpEquality= ruleOpEquality EOF )
+            // InternalChartDSL.g:3491:2: iv_ruleOpEquality= ruleOpEquality EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpEqualityRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpEquality=ruleOpEquality();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpEquality.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpEquality"
+
+
+    // $ANTLR start "ruleOpEquality"
+    // InternalChartDSL.g:3497:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
+    public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:3503:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
+            // InternalChartDSL.g:3504:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            {
+            // InternalChartDSL.g:3504:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            int alt64=4;
+            switch ( input.LA(1) ) {
+            case 98:
+                {
+                alt64=1;
+                }
+                break;
+            case 99:
+                {
+                alt64=2;
+                }
+                break;
+            case 100:
+                {
+                alt64=3;
+                }
+                break;
+            case 101:
+                {
+                alt64=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 64, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt64) {
+                case 1 :
+                    // InternalChartDSL.g:3505:3: kw= '=='
+                    {
+                    kw=(Token)match(input,98,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalChartDSL.g:3511:3: kw= '!='
+                    {
+                    kw=(Token)match(input,99,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalChartDSL.g:3517:3: kw= '==='
+                    {
+                    kw=(Token)match(input,100,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalChartDSL.g:3523:3: kw= '!=='
+                    {
+                    kw=(Token)match(input,101,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpEquality"
+
+
+    // $ANTLR start "entryRuleXRelationalExpression"
+    // InternalChartDSL.g:3532:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
+    public final EObject entryRuleXRelationalExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXRelationalExpression = null;
+
+
+        try {
+            // InternalChartDSL.g:3532:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
+            // InternalChartDSL.g:3533:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXRelationalExpression=ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXRelationalExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXRelationalExpression"
+
+
+    // $ANTLR start "ruleXRelationalExpression"
+    // InternalChartDSL.g:3539:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
+    public final EObject ruleXRelationalExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        EObject this_XOtherOperatorExpression_0 = null;
+
+        EObject lv_type_3_0 = null;
+
+        EObject lv_rightOperand_6_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:3545:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
+            // InternalChartDSL.g:3546:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            {
+            // InternalChartDSL.g:3546:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // InternalChartDSL.g:3547:3: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_75);
+            this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XOtherOperatorExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalChartDSL.g:3555:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            loop65:
+            do {
+                int alt65=3;
+                switch ( input.LA(1) ) {
+                case 93:
+                    {
+                    int LA65_2 = input.LA(2);
+
+                    if ( (synpred12_InternalChartDSL()) ) {
+                        alt65=2;
+                    }
+
+
+                    }
+                    break;
+                case 94:
+                    {
+                    int LA65_3 = input.LA(2);
+
+                    if ( (synpred12_InternalChartDSL()) ) {
+                        alt65=2;
+                    }
+
+
+                    }
+                    break;
+                case 102:
+                    {
+                    int LA65_4 = input.LA(2);
+
+                    if ( (synpred11_InternalChartDSL()) ) {
+                        alt65=1;
+                    }
+
+
+                    }
+                    break;
+                case 95:
+                    {
+                    int LA65_5 = input.LA(2);
+
+                    if ( (synpred12_InternalChartDSL()) ) {
+                        alt65=2;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt65) {
+            	case 1 :
+            	    // InternalChartDSL.g:3556:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    {
+            	    // InternalChartDSL.g:3556:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // InternalChartDSL.g:3557:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    {
+            	    // InternalChartDSL.g:3557:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
+            	    // InternalChartDSL.g:3558:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
+            	    {
+            	    // InternalChartDSL.g:3564:6: ( () otherlv_2= 'instanceof' )
+            	    // InternalChartDSL.g:3565:7: () otherlv_2= 'instanceof'
+            	    {
+            	    // InternalChartDSL.g:3565:7: ()
+            	    // InternalChartDSL.g:3566:8: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								current = forceCreateModelElementAndSet(
+            	      									grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
+            	      									current);
+            	      							
+            	    }
+
+            	    }
+
+            	    otherlv_2=(Token)match(input,102,FOLLOW_76); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // InternalChartDSL.g:3578:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalChartDSL.g:3579:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    {
+            	    // InternalChartDSL.g:3579:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalChartDSL.g:3580:7: lv_type_3_0= ruleJvmTypeReference
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
+            	      						
+            	    }
+            	    pushFollow(FOLLOW_75);
+            	    lv_type_3_0=ruleJvmTypeReference();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							if (current==null) {
+            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      							}
+            	      							set(
+            	      								current,
+            	      								"type",
+            	      								lv_type_3_0,
+            	      								"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+            	      							afterParserOrEnumRuleCall();
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // InternalChartDSL.g:3599:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    {
+            	    // InternalChartDSL.g:3599:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // InternalChartDSL.g:3600:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    {
+            	    // InternalChartDSL.g:3600:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
+            	    // InternalChartDSL.g:3601:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
+            	    {
+            	    // InternalChartDSL.g:3611:6: ( () ( ( ruleOpCompare ) ) )
+            	    // InternalChartDSL.g:3612:7: () ( ( ruleOpCompare ) )
+            	    {
+            	    // InternalChartDSL.g:3612:7: ()
+            	    // InternalChartDSL.g:3613:8: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								current = forceCreateModelElementAndSet(
+            	      									grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+            	      									current);
+            	      							
+            	    }
+
+            	    }
+
+            	    // InternalChartDSL.g:3619:7: ( ( ruleOpCompare ) )
+            	    // InternalChartDSL.g:3620:8: ( ruleOpCompare )
+            	    {
+            	    // InternalChartDSL.g:3620:8: ( ruleOpCompare )
+            	    // InternalChartDSL.g:3621:9: ruleOpCompare
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      									if (current==null) {
+            	      										current = createModelElement(grammarAccess.getXRelationalExpressionRule());
+            	      									}
+            	      								
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      									newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+            	      								
+            	    }
+            	    pushFollow(FOLLOW_63);
+            	    ruleOpCompare();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      									afterParserOrEnumRuleCall();
+            	      								
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalChartDSL.g:3637:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // InternalChartDSL.g:3638:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    {
+            	    // InternalChartDSL.g:3638:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // InternalChartDSL.g:3639:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
+            	      						
+            	    }
+            	    pushFollow(FOLLOW_75);
+            	    lv_rightOperand_6_0=ruleXOtherOperatorExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							if (current==null) {
+            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      							}
+            	      							set(
+            	      								current,
+            	      								"rightOperand",
+            	      								lv_rightOperand_6_0,
+            	      								"org.eclipse.xtext.xbase.Xbase.XOtherOperatorExpression");
+            	      							afterParserOrEnumRuleCall();
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop65;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXRelationalExpression"
+
+
+    // $ANTLR start "entryRuleOpCompare"
+    // InternalChartDSL.g:3662:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
+    public final String entryRuleOpCompare() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpCompare = null;
+
+
+        try {
+            // InternalChartDSL.g:3662:49: (iv_ruleOpCompare= ruleOpCompare EOF )
+            // InternalChartDSL.g:3663:2: iv_ruleOpCompare= ruleOpCompare EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpCompareRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpCompare=ruleOpCompare();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpCompare.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpCompare"
+
+
+    // $ANTLR start "ruleOpCompare"
+    // InternalChartDSL.g:3669:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
+    public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:3675:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
+            // InternalChartDSL.g:3676:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            {
+            // InternalChartDSL.g:3676:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            int alt66=4;
+            switch ( input.LA(1) ) {
+            case 95:
+                {
+                alt66=1;
+                }
+                break;
+            case 93:
+                {
+                int LA66_2 = input.LA(2);
+
+                if ( (LA66_2==EOF||(LA66_2>=RULE_STRING && LA66_2<=RULE_DECIMAL)||LA66_2==15||(LA66_2>=73 && LA66_2<=76)||LA66_2==81||(LA66_2>=85 && LA66_2<=86)||LA66_2==93||LA66_2==109||LA66_2==113||LA66_2==120||LA66_2==122||(LA66_2>=126 && LA66_2<=128)||(LA66_2>=131 && LA66_2<=140)||LA66_2==142) ) {
+                    alt66=4;
+                }
+                else if ( (LA66_2==84) ) {
+                    alt66=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 66, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 94:
+                {
+                alt66=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 66, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt66) {
+                case 1 :
+                    // InternalChartDSL.g:3677:3: kw= '>='
+                    {
+                    kw=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalChartDSL.g:3683:3: (kw= '<' kw= '=' )
+                    {
+                    // InternalChartDSL.g:3683:3: (kw= '<' kw= '=' )
+                    // InternalChartDSL.g:3684:4: kw= '<' kw= '='
+                    {
+                    kw=(Token)match(input,93,FOLLOW_62); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0());
+                      			
+                    }
+                    kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalChartDSL.g:3696:3: kw= '>'
+                    {
+                    kw=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2());
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalChartDSL.g:3702:3: kw= '<'
+                    {
+                    kw=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpCompare"
+
+
+    // $ANTLR start "entryRuleXOtherOperatorExpression"
+    // InternalChartDSL.g:3711:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
+    public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXOtherOperatorExpression = null;
+
+
+        try {
+            // InternalChartDSL.g:3711:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
+            // InternalChartDSL.g:3712:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXOtherOperatorExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXOtherOperatorExpression"
+
+
+    // $ANTLR start "ruleXOtherOperatorExpression"
+    // InternalChartDSL.g:3718:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
+    public final EObject ruleXOtherOperatorExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAdditiveExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:3724:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
+            // InternalChartDSL.g:3725:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            {
+            // InternalChartDSL.g:3725:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalChartDSL.g:3726:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_77);
+            this_XAdditiveExpression_0=ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XAdditiveExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalChartDSL.g:3734:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            loop67:
+            do {
+                int alt67=2;
+                alt67 = dfa67.predict(input);
+                switch (alt67) {
+            	case 1 :
+            	    // InternalChartDSL.g:3735:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    {
+            	    // InternalChartDSL.g:3735:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
+            	    // InternalChartDSL.g:3736:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
+            	    {
+            	    // InternalChartDSL.g:3746:5: ( () ( ( ruleOpOther ) ) )
+            	    // InternalChartDSL.g:3747:6: () ( ( ruleOpOther ) )
+            	    {
+            	    // InternalChartDSL.g:3747:6: ()
+            	    // InternalChartDSL.g:3748:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalChartDSL.g:3754:6: ( ( ruleOpOther ) )
+            	    // InternalChartDSL.g:3755:7: ( ruleOpOther )
+            	    {
+            	    // InternalChartDSL.g:3755:7: ( ruleOpOther )
+            	    // InternalChartDSL.g:3756:8: ruleOpOther
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_63);
+            	    ruleOpOther();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalChartDSL.g:3772:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalChartDSL.g:3773:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    {
+            	    // InternalChartDSL.g:3773:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalChartDSL.g:3774:6: lv_rightOperand_3_0= ruleXAdditiveExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_77);
+            	    lv_rightOperand_3_0=ruleXAdditiveExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XAdditiveExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop67;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXOtherOperatorExpression"
+
+
+    // $ANTLR start "entryRuleOpOther"
+    // InternalChartDSL.g:3796:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
+    public final String entryRuleOpOther() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpOther = null;
+
+
+        try {
+            // InternalChartDSL.g:3796:47: (iv_ruleOpOther= ruleOpOther EOF )
+            // InternalChartDSL.g:3797:2: iv_ruleOpOther= ruleOpOther EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpOtherRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpOther=ruleOpOther();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpOther.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpOther"
+
+
+    // $ANTLR start "ruleOpOther"
+    // InternalChartDSL.g:3803:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
+    public final AntlrDatatypeRuleToken ruleOpOther() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:3809:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
+            // InternalChartDSL.g:3810:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            {
+            // InternalChartDSL.g:3810:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            int alt70=9;
+            alt70 = dfa70.predict(input);
+            switch (alt70) {
+                case 1 :
+                    // InternalChartDSL.g:3811:3: kw= '->'
+                    {
+                    kw=(Token)match(input,103,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalChartDSL.g:3817:3: kw= '..<'
+                    {
+                    kw=(Token)match(input,104,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalChartDSL.g:3823:3: (kw= '>' kw= '..' )
+                    {
+                    // InternalChartDSL.g:3823:3: (kw= '>' kw= '..' )
+                    // InternalChartDSL.g:3824:4: kw= '>' kw= '..'
+                    {
+                    kw=(Token)match(input,94,FOLLOW_78); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
+                      			
+                    }
+                    kw=(Token)match(input,105,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalChartDSL.g:3836:3: kw= '..'
+                    {
+                    kw=(Token)match(input,105,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3());
+                      		
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // InternalChartDSL.g:3842:3: kw= '=>'
+                    {
+                    kw=(Token)match(input,106,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4());
+                      		
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // InternalChartDSL.g:3848:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    {
+                    // InternalChartDSL.g:3848:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalChartDSL.g:3849:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    {
+                    kw=(Token)match(input,94,FOLLOW_79); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
+                      			
+                    }
+                    // InternalChartDSL.g:3854:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    int alt68=2;
+                    int LA68_0 = input.LA(1);
+
+                    if ( (LA68_0==94) ) {
+                        int LA68_1 = input.LA(2);
+
+                        if ( (LA68_1==EOF||(LA68_1>=RULE_STRING && LA68_1<=RULE_DECIMAL)||LA68_1==15||(LA68_1>=73 && LA68_1<=76)||LA68_1==81||(LA68_1>=85 && LA68_1<=86)||LA68_1==93||LA68_1==109||LA68_1==113||LA68_1==120||LA68_1==122||(LA68_1>=126 && LA68_1<=128)||(LA68_1>=131 && LA68_1<=140)||LA68_1==142) ) {
+                            alt68=2;
+                        }
+                        else if ( (LA68_1==94) && (synpred14_InternalChartDSL())) {
+                            alt68=1;
+                        }
+                        else {
+                            if (state.backtracking>0) {state.failed=true; return current;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("", 68, 1, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else {
+                        if (state.backtracking>0) {state.failed=true; return current;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 68, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt68) {
+                        case 1 :
+                            // InternalChartDSL.g:3855:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            {
+                            // InternalChartDSL.g:3855:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalChartDSL.g:3856:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
+                            {
+                            // InternalChartDSL.g:3861:6: (kw= '>' kw= '>' )
+                            // InternalChartDSL.g:3862:7: kw= '>' kw= '>'
+                            {
+                            kw=(Token)match(input,94,FOLLOW_79); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							current.merge(kw);
+                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0());
+                              						
+                            }
+                            kw=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							current.merge(kw);
+                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1());
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // InternalChartDSL.g:3875:5: kw= '>'
+                            {
+                            kw=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              					current.merge(kw);
+                              					newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1());
+                              				
+                            }
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalChartDSL.g:3883:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    {
+                    // InternalChartDSL.g:3883:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalChartDSL.g:3884:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    {
+                    kw=(Token)match(input,93,FOLLOW_80); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
+                      			
+                    }
+                    // InternalChartDSL.g:3889:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    int alt69=3;
+                    int LA69_0 = input.LA(1);
+
+                    if ( (LA69_0==93) ) {
+                        int LA69_1 = input.LA(2);
+
+                        if ( (synpred15_InternalChartDSL()) ) {
+                            alt69=1;
+                        }
+                        else if ( (true) ) {
+                            alt69=2;
+                        }
+                        else {
+                            if (state.backtracking>0) {state.failed=true; return current;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("", 69, 1, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else if ( (LA69_0==106) ) {
+                        alt69=3;
+                    }
+                    else {
+                        if (state.backtracking>0) {state.failed=true; return current;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 69, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt69) {
+                        case 1 :
+                            // InternalChartDSL.g:3890:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            {
+                            // InternalChartDSL.g:3890:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalChartDSL.g:3891:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
+                            {
+                            // InternalChartDSL.g:3896:6: (kw= '<' kw= '<' )
+                            // InternalChartDSL.g:3897:7: kw= '<' kw= '<'
+                            {
+                            kw=(Token)match(input,93,FOLLOW_69); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							current.merge(kw);
+                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0());
+                              						
+                            }
+                            kw=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							current.merge(kw);
+                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1());
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // InternalChartDSL.g:3910:5: kw= '<'
+                            {
+                            kw=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              					current.merge(kw);
+                              					newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1());
+                              				
+                            }
+
+                            }
+                            break;
+                        case 3 :
+                            // InternalChartDSL.g:3916:5: kw= '=>'
+                            {
+                            kw=(Token)match(input,106,FOLLOW_2); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              					current.merge(kw);
+                              					newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2());
+                              				
+                            }
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // InternalChartDSL.g:3924:3: kw= '<>'
+                    {
+                    kw=(Token)match(input,107,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7());
+                      		
+                    }
+
+                    }
+                    break;
+                case 9 :
+                    // InternalChartDSL.g:3930:3: kw= '?:'
+                    {
+                    kw=(Token)match(input,108,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpOther"
+
+
+    // $ANTLR start "entryRuleXAdditiveExpression"
+    // InternalChartDSL.g:3939:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
+    public final EObject entryRuleXAdditiveExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAdditiveExpression = null;
+
+
+        try {
+            // InternalChartDSL.g:3939:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
+            // InternalChartDSL.g:3940:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXAdditiveExpression=ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAdditiveExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAdditiveExpression"
+
+
+    // $ANTLR start "ruleXAdditiveExpression"
+    // InternalChartDSL.g:3946:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
+    public final EObject ruleXAdditiveExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XMultiplicativeExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:3952:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
+            // InternalChartDSL.g:3953:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            {
+            // InternalChartDSL.g:3953:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalChartDSL.g:3954:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_81);
+            this_XMultiplicativeExpression_0=ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XMultiplicativeExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalChartDSL.g:3962:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            loop71:
+            do {
+                int alt71=2;
+                int LA71_0 = input.LA(1);
+
+                if ( (LA71_0==109) ) {
+                    int LA71_2 = input.LA(2);
+
+                    if ( (synpred16_InternalChartDSL()) ) {
+                        alt71=1;
+                    }
+
+
+                }
+                else if ( (LA71_0==73) ) {
+                    int LA71_3 = input.LA(2);
+
+                    if ( (synpred16_InternalChartDSL()) ) {
+                        alt71=1;
+                    }
+
+
+                }
+
+
+                switch (alt71) {
+            	case 1 :
+            	    // InternalChartDSL.g:3963:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    {
+            	    // InternalChartDSL.g:3963:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
+            	    // InternalChartDSL.g:3964:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
+            	    {
+            	    // InternalChartDSL.g:3974:5: ( () ( ( ruleOpAdd ) ) )
+            	    // InternalChartDSL.g:3975:6: () ( ( ruleOpAdd ) )
+            	    {
+            	    // InternalChartDSL.g:3975:6: ()
+            	    // InternalChartDSL.g:3976:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalChartDSL.g:3982:6: ( ( ruleOpAdd ) )
+            	    // InternalChartDSL.g:3983:7: ( ruleOpAdd )
+            	    {
+            	    // InternalChartDSL.g:3983:7: ( ruleOpAdd )
+            	    // InternalChartDSL.g:3984:8: ruleOpAdd
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXAdditiveExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_63);
+            	    ruleOpAdd();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalChartDSL.g:4000:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalChartDSL.g:4001:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    {
+            	    // InternalChartDSL.g:4001:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalChartDSL.g:4002:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_81);
+            	    lv_rightOperand_3_0=ruleXMultiplicativeExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXAdditiveExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XMultiplicativeExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop71;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAdditiveExpression"
+
+
+    // $ANTLR start "entryRuleOpAdd"
+    // InternalChartDSL.g:4024:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
+    public final String entryRuleOpAdd() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpAdd = null;
+
+
+        try {
+            // InternalChartDSL.g:4024:45: (iv_ruleOpAdd= ruleOpAdd EOF )
+            // InternalChartDSL.g:4025:2: iv_ruleOpAdd= ruleOpAdd EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpAddRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpAdd=ruleOpAdd();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpAdd.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpAdd"
+
+
+    // $ANTLR start "ruleOpAdd"
+    // InternalChartDSL.g:4031:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
+    public final AntlrDatatypeRuleToken ruleOpAdd() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:4037:2: ( (kw= '+' | kw= '-' ) )
+            // InternalChartDSL.g:4038:2: (kw= '+' | kw= '-' )
+            {
+            // InternalChartDSL.g:4038:2: (kw= '+' | kw= '-' )
+            int alt72=2;
+            int LA72_0 = input.LA(1);
+
+            if ( (LA72_0==109) ) {
+                alt72=1;
+            }
+            else if ( (LA72_0==73) ) {
+                alt72=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 72, 0, input);
+
+                throw nvae;
+            }
+            switch (alt72) {
+                case 1 :
+                    // InternalChartDSL.g:4039:3: kw= '+'
+                    {
+                    kw=(Token)match(input,109,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpAddAccess().getPlusSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalChartDSL.g:4045:3: kw= '-'
+                    {
+                    kw=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpAdd"
+
+
+    // $ANTLR start "entryRuleXMultiplicativeExpression"
+    // InternalChartDSL.g:4054:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
+    public final EObject entryRuleXMultiplicativeExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXMultiplicativeExpression = null;
+
+
+        try {
+            // InternalChartDSL.g:4054:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
+            // InternalChartDSL.g:4055:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXMultiplicativeExpression=ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXMultiplicativeExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXMultiplicativeExpression"
+
+
+    // $ANTLR start "ruleXMultiplicativeExpression"
+    // InternalChartDSL.g:4061:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
+    public final EObject ruleXMultiplicativeExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XUnaryOperation_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:4067:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
+            // InternalChartDSL.g:4068:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            {
+            // InternalChartDSL.g:4068:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // InternalChartDSL.g:4069:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_82);
+            this_XUnaryOperation_0=ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XUnaryOperation_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalChartDSL.g:4077:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            loop73:
+            do {
+                int alt73=2;
+                switch ( input.LA(1) ) {
+                case 77:
+                    {
+                    int LA73_2 = input.LA(2);
+
+                    if ( (synpred17_InternalChartDSL()) ) {
+                        alt73=1;
+                    }
+
+
+                    }
+                    break;
+                case 110:
+                    {
+                    int LA73_3 = input.LA(2);
+
+                    if ( (synpred17_InternalChartDSL()) ) {
+                        alt73=1;
+                    }
+
+
+                    }
+                    break;
+                case 111:
+                    {
+                    int LA73_4 = input.LA(2);
+
+                    if ( (synpred17_InternalChartDSL()) ) {
+                        alt73=1;
+                    }
+
+
+                    }
+                    break;
+                case 112:
+                    {
+                    int LA73_5 = input.LA(2);
+
+                    if ( (synpred17_InternalChartDSL()) ) {
+                        alt73=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt73) {
+            	case 1 :
+            	    // InternalChartDSL.g:4078:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    {
+            	    // InternalChartDSL.g:4078:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
+            	    // InternalChartDSL.g:4079:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
+            	    {
+            	    // InternalChartDSL.g:4089:5: ( () ( ( ruleOpMulti ) ) )
+            	    // InternalChartDSL.g:4090:6: () ( ( ruleOpMulti ) )
+            	    {
+            	    // InternalChartDSL.g:4090:6: ()
+            	    // InternalChartDSL.g:4091:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalChartDSL.g:4097:6: ( ( ruleOpMulti ) )
+            	    // InternalChartDSL.g:4098:7: ( ruleOpMulti )
+            	    {
+            	    // InternalChartDSL.g:4098:7: ( ruleOpMulti )
+            	    // InternalChartDSL.g:4099:8: ruleOpMulti
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXMultiplicativeExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_63);
+            	    ruleOpMulti();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalChartDSL.g:4115:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // InternalChartDSL.g:4116:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    {
+            	    // InternalChartDSL.g:4116:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // InternalChartDSL.g:4117:6: lv_rightOperand_3_0= ruleXUnaryOperation
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_82);
+            	    lv_rightOperand_3_0=ruleXUnaryOperation();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXMultiplicativeExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XUnaryOperation");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop73;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
     // $ANTLR end "ruleXMultiplicativeExpression"
 
 
     // $ANTLR start "entryRuleOpMulti"
-    // InternalChartDSL.g:3835:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
+    // InternalChartDSL.g:4139:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
     public final String entryRuleOpMulti() throws RecognitionException {
         String current = null;
 
@@ -11116,8 +11890,8 @@
 
 
         try {
-            // InternalChartDSL.g:3835:47: (iv_ruleOpMulti= ruleOpMulti EOF )
-            // InternalChartDSL.g:3836:2: iv_ruleOpMulti= ruleOpMulti EOF
+            // InternalChartDSL.g:4139:47: (iv_ruleOpMulti= ruleOpMulti EOF )
+            // InternalChartDSL.g:4140:2: iv_ruleOpMulti= ruleOpMulti EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiRule()); 
@@ -11148,7 +11922,7 @@
 
 
     // $ANTLR start "ruleOpMulti"
-    // InternalChartDSL.g:3842:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
+    // InternalChartDSL.g:4146:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
     public final AntlrDatatypeRuleToken ruleOpMulti() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -11158,45 +11932,45 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:3848:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
-            // InternalChartDSL.g:3849:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            // InternalChartDSL.g:4152:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
+            // InternalChartDSL.g:4153:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
             {
-            // InternalChartDSL.g:3849:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
-            int alt62=4;
+            // InternalChartDSL.g:4153:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            int alt74=4;
             switch ( input.LA(1) ) {
-            case 67:
+            case 77:
                 {
-                alt62=1;
+                alt74=1;
                 }
                 break;
-            case 100:
+            case 110:
                 {
-                alt62=2;
+                alt74=2;
                 }
                 break;
-            case 101:
+            case 111:
                 {
-                alt62=3;
+                alt74=3;
                 }
                 break;
-            case 102:
+            case 112:
                 {
-                alt62=4;
+                alt74=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 62, 0, input);
+                    new NoViableAltException("", 74, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt62) {
+            switch (alt74) {
                 case 1 :
-                    // InternalChartDSL.g:3850:3: kw= '*'
+                    // InternalChartDSL.g:4154:3: kw= '*'
                     {
-                    kw=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11207,9 +11981,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3856:3: kw= '**'
+                    // InternalChartDSL.g:4160:3: kw= '**'
                     {
-                    kw=(Token)match(input,100,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,110,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11220,9 +11994,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3862:3: kw= '/'
+                    // InternalChartDSL.g:4166:3: kw= '/'
                     {
-                    kw=(Token)match(input,101,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,111,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11233,9 +12007,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:3868:3: kw= '%'
+                    // InternalChartDSL.g:4172:3: kw= '%'
                     {
-                    kw=(Token)match(input,102,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,112,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11270,7 +12044,7 @@
 
 
     // $ANTLR start "entryRuleXUnaryOperation"
-    // InternalChartDSL.g:3877:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
+    // InternalChartDSL.g:4181:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
     public final EObject entryRuleXUnaryOperation() throws RecognitionException {
         EObject current = null;
 
@@ -11278,8 +12052,8 @@
 
 
         try {
-            // InternalChartDSL.g:3877:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
-            // InternalChartDSL.g:3878:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
+            // InternalChartDSL.g:4181:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
+            // InternalChartDSL.g:4182:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXUnaryOperationRule()); 
@@ -11310,7 +12084,7 @@
 
 
     // $ANTLR start "ruleXUnaryOperation"
-    // InternalChartDSL.g:3884:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
+    // InternalChartDSL.g:4188:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
     public final EObject ruleXUnaryOperation() throws RecognitionException {
         EObject current = null;
 
@@ -11323,35 +12097,35 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:3890:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
-            // InternalChartDSL.g:3891:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            // InternalChartDSL.g:4194:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
+            // InternalChartDSL.g:4195:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
             {
-            // InternalChartDSL.g:3891:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
-            int alt63=2;
-            int LA63_0 = input.LA(1);
+            // InternalChartDSL.g:4195:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            int alt75=2;
+            int LA75_0 = input.LA(1);
 
-            if ( (LA63_0==63||LA63_0==99||LA63_0==103) ) {
-                alt63=1;
+            if ( (LA75_0==73||LA75_0==109||LA75_0==113) ) {
+                alt75=1;
             }
-            else if ( ((LA63_0>=RULE_ID && LA63_0<=RULE_DECIMAL)||LA63_0==14||(LA63_0>=64 && LA63_0<=66)||LA63_0==71||(LA63_0>=75 && LA63_0<=76)||LA63_0==83||LA63_0==110||LA63_0==112||(LA63_0>=116 && LA63_0<=118)||(LA63_0>=121 && LA63_0<=130)||LA63_0==132) ) {
-                alt63=2;
+            else if ( ((LA75_0>=RULE_STRING && LA75_0<=RULE_DECIMAL)||LA75_0==15||(LA75_0>=74 && LA75_0<=76)||LA75_0==81||(LA75_0>=85 && LA75_0<=86)||LA75_0==93||LA75_0==120||LA75_0==122||(LA75_0>=126 && LA75_0<=128)||(LA75_0>=131 && LA75_0<=140)||LA75_0==142) ) {
+                alt75=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 63, 0, input);
+                    new NoViableAltException("", 75, 0, input);
 
                 throw nvae;
             }
-            switch (alt63) {
+            switch (alt75) {
                 case 1 :
-                    // InternalChartDSL.g:3892:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalChartDSL.g:4196:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
                     {
-                    // InternalChartDSL.g:3892:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
-                    // InternalChartDSL.g:3893:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalChartDSL.g:4196:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalChartDSL.g:4197:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
                     {
-                    // InternalChartDSL.g:3893:4: ()
-                    // InternalChartDSL.g:3894:5: 
+                    // InternalChartDSL.g:4197:4: ()
+                    // InternalChartDSL.g:4198:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11363,11 +12137,11 @@
 
                     }
 
-                    // InternalChartDSL.g:3900:4: ( ( ruleOpUnary ) )
-                    // InternalChartDSL.g:3901:5: ( ruleOpUnary )
+                    // InternalChartDSL.g:4204:4: ( ( ruleOpUnary ) )
+                    // InternalChartDSL.g:4205:5: ( ruleOpUnary )
                     {
-                    // InternalChartDSL.g:3901:5: ( ruleOpUnary )
-                    // InternalChartDSL.g:3902:6: ruleOpUnary
+                    // InternalChartDSL.g:4205:5: ( ruleOpUnary )
+                    // InternalChartDSL.g:4206:6: ruleOpUnary
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11381,7 +12155,7 @@
                       						newCompositeNode(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_50);
+                    pushFollow(FOLLOW_63);
                     ruleOpUnary();
 
                     state._fsp--;
@@ -11397,11 +12171,11 @@
 
                     }
 
-                    // InternalChartDSL.g:3916:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
-                    // InternalChartDSL.g:3917:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalChartDSL.g:4220:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalChartDSL.g:4221:5: (lv_operand_2_0= ruleXUnaryOperation )
                     {
-                    // InternalChartDSL.g:3917:5: (lv_operand_2_0= ruleXUnaryOperation )
-                    // InternalChartDSL.g:3918:6: lv_operand_2_0= ruleXUnaryOperation
+                    // InternalChartDSL.g:4221:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalChartDSL.g:4222:6: lv_operand_2_0= ruleXUnaryOperation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11439,7 +12213,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3937:3: this_XCastedExpression_3= ruleXCastedExpression
+                    // InternalChartDSL.g:4241:3: this_XCastedExpression_3= ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11485,7 +12259,7 @@
 
 
     // $ANTLR start "entryRuleOpUnary"
-    // InternalChartDSL.g:3949:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
+    // InternalChartDSL.g:4253:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
     public final String entryRuleOpUnary() throws RecognitionException {
         String current = null;
 
@@ -11493,8 +12267,8 @@
 
 
         try {
-            // InternalChartDSL.g:3949:47: (iv_ruleOpUnary= ruleOpUnary EOF )
-            // InternalChartDSL.g:3950:2: iv_ruleOpUnary= ruleOpUnary EOF
+            // InternalChartDSL.g:4253:47: (iv_ruleOpUnary= ruleOpUnary EOF )
+            // InternalChartDSL.g:4254:2: iv_ruleOpUnary= ruleOpUnary EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpUnaryRule()); 
@@ -11525,7 +12299,7 @@
 
 
     // $ANTLR start "ruleOpUnary"
-    // InternalChartDSL.g:3956:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
+    // InternalChartDSL.g:4260:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
     public final AntlrDatatypeRuleToken ruleOpUnary() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -11535,40 +12309,40 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:3962:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
-            // InternalChartDSL.g:3963:2: (kw= '!' | kw= '-' | kw= '+' )
+            // InternalChartDSL.g:4266:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
+            // InternalChartDSL.g:4267:2: (kw= '!' | kw= '-' | kw= '+' )
             {
-            // InternalChartDSL.g:3963:2: (kw= '!' | kw= '-' | kw= '+' )
-            int alt64=3;
+            // InternalChartDSL.g:4267:2: (kw= '!' | kw= '-' | kw= '+' )
+            int alt76=3;
             switch ( input.LA(1) ) {
-            case 103:
+            case 113:
                 {
-                alt64=1;
+                alt76=1;
                 }
                 break;
-            case 63:
+            case 73:
                 {
-                alt64=2;
+                alt76=2;
                 }
                 break;
-            case 99:
+            case 109:
                 {
-                alt64=3;
+                alt76=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 64, 0, input);
+                    new NoViableAltException("", 76, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt64) {
+            switch (alt76) {
                 case 1 :
-                    // InternalChartDSL.g:3964:3: kw= '!'
+                    // InternalChartDSL.g:4268:3: kw= '!'
                     {
-                    kw=(Token)match(input,103,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11579,9 +12353,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:3970:3: kw= '-'
+                    // InternalChartDSL.g:4274:3: kw= '-'
                     {
-                    kw=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11592,9 +12366,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:3976:3: kw= '+'
+                    // InternalChartDSL.g:4280:3: kw= '+'
                     {
-                    kw=(Token)match(input,99,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,109,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -11629,7 +12403,7 @@
 
 
     // $ANTLR start "entryRuleXCastedExpression"
-    // InternalChartDSL.g:3985:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
+    // InternalChartDSL.g:4289:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
     public final EObject entryRuleXCastedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11637,8 +12411,8 @@
 
 
         try {
-            // InternalChartDSL.g:3985:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
-            // InternalChartDSL.g:3986:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
+            // InternalChartDSL.g:4289:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
+            // InternalChartDSL.g:4290:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCastedExpressionRule()); 
@@ -11669,7 +12443,7 @@
 
 
     // $ANTLR start "ruleXCastedExpression"
-    // InternalChartDSL.g:3992:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
+    // InternalChartDSL.g:4296:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
     public final EObject ruleXCastedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11683,18 +12457,18 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:3998:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
-            // InternalChartDSL.g:3999:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalChartDSL.g:4302:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
+            // InternalChartDSL.g:4303:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
             {
-            // InternalChartDSL.g:3999:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
-            // InternalChartDSL.g:4000:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            // InternalChartDSL.g:4303:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalChartDSL.g:4304:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_83);
             this_XPostfixOperation_0=ruleXPostfixOperation();
 
             state._fsp--;
@@ -11705,35 +12479,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalChartDSL.g:4008:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
-            loop65:
+            // InternalChartDSL.g:4312:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            loop77:
             do {
-                int alt65=2;
-                int LA65_0 = input.LA(1);
+                int alt77=2;
+                int LA77_0 = input.LA(1);
 
-                if ( (LA65_0==18) ) {
-                    int LA65_2 = input.LA(2);
+                if ( (LA77_0==20) ) {
+                    int LA77_2 = input.LA(2);
 
                     if ( (synpred18_InternalChartDSL()) ) {
-                        alt65=1;
+                        alt77=1;
                     }
 
 
                 }
 
 
-                switch (alt65) {
+                switch (alt77) {
             	case 1 :
-            	    // InternalChartDSL.g:4009:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalChartDSL.g:4313:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
             	    {
-            	    // InternalChartDSL.g:4009:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
-            	    // InternalChartDSL.g:4010:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
+            	    // InternalChartDSL.g:4313:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
+            	    // InternalChartDSL.g:4314:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
             	    {
-            	    // InternalChartDSL.g:4016:5: ( () otherlv_2= 'as' )
-            	    // InternalChartDSL.g:4017:6: () otherlv_2= 'as'
+            	    // InternalChartDSL.g:4320:5: ( () otherlv_2= 'as' )
+            	    // InternalChartDSL.g:4321:6: () otherlv_2= 'as'
             	    {
-            	    // InternalChartDSL.g:4017:6: ()
-            	    // InternalChartDSL.g:4018:7: 
+            	    // InternalChartDSL.g:4321:6: ()
+            	    // InternalChartDSL.g:4322:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -11745,7 +12519,7 @@
 
             	    }
 
-            	    otherlv_2=(Token)match(input,18,FOLLOW_63); if (state.failed) return current;
+            	    otherlv_2=(Token)match(input,20,FOLLOW_76); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      						newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
@@ -11757,18 +12531,18 @@
 
             	    }
 
-            	    // InternalChartDSL.g:4030:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalChartDSL.g:4031:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalChartDSL.g:4334:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalChartDSL.g:4335:5: (lv_type_3_0= ruleJvmTypeReference )
             	    {
-            	    // InternalChartDSL.g:4031:5: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalChartDSL.g:4032:6: lv_type_3_0= ruleJvmTypeReference
+            	    // InternalChartDSL.g:4335:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalChartDSL.g:4336:6: lv_type_3_0= ruleJvmTypeReference
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_70);
+            	    pushFollow(FOLLOW_83);
             	    lv_type_3_0=ruleJvmTypeReference();
 
             	    state._fsp--;
@@ -11797,7 +12571,7 @@
             	    break;
 
             	default :
-            	    break loop65;
+            	    break loop77;
                 }
             } while (true);
 
@@ -11826,7 +12600,7 @@
 
 
     // $ANTLR start "entryRuleXPostfixOperation"
-    // InternalChartDSL.g:4054:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
+    // InternalChartDSL.g:4358:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
     public final EObject entryRuleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -11834,8 +12608,8 @@
 
 
         try {
-            // InternalChartDSL.g:4054:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
-            // InternalChartDSL.g:4055:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
+            // InternalChartDSL.g:4358:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
+            // InternalChartDSL.g:4359:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXPostfixOperationRule()); 
@@ -11866,7 +12640,7 @@
 
 
     // $ANTLR start "ruleXPostfixOperation"
-    // InternalChartDSL.g:4061:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
+    // InternalChartDSL.g:4365:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
     public final EObject ruleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -11877,18 +12651,18 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:4067:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
-            // InternalChartDSL.g:4068:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalChartDSL.g:4371:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
+            // InternalChartDSL.g:4372:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
             {
-            // InternalChartDSL.g:4068:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
-            // InternalChartDSL.g:4069:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            // InternalChartDSL.g:4372:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalChartDSL.g:4373:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_71);
+            pushFollow(FOLLOW_84);
             this_XMemberFeatureCall_0=ruleXMemberFeatureCall();
 
             state._fsp--;
@@ -11899,33 +12673,33 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalChartDSL.g:4077:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
-            int alt66=2;
-            int LA66_0 = input.LA(1);
+            // InternalChartDSL.g:4381:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            int alt78=2;
+            int LA78_0 = input.LA(1);
 
-            if ( (LA66_0==104) ) {
-                int LA66_1 = input.LA(2);
+            if ( (LA78_0==114) ) {
+                int LA78_1 = input.LA(2);
 
                 if ( (synpred19_InternalChartDSL()) ) {
-                    alt66=1;
+                    alt78=1;
                 }
             }
-            else if ( (LA66_0==105) ) {
-                int LA66_2 = input.LA(2);
+            else if ( (LA78_0==115) ) {
+                int LA78_2 = input.LA(2);
 
                 if ( (synpred19_InternalChartDSL()) ) {
-                    alt66=1;
+                    alt78=1;
                 }
             }
-            switch (alt66) {
+            switch (alt78) {
                 case 1 :
-                    // InternalChartDSL.g:4078:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
+                    // InternalChartDSL.g:4382:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
                     {
-                    // InternalChartDSL.g:4088:4: ( () ( ( ruleOpPostfix ) ) )
-                    // InternalChartDSL.g:4089:5: () ( ( ruleOpPostfix ) )
+                    // InternalChartDSL.g:4392:4: ( () ( ( ruleOpPostfix ) ) )
+                    // InternalChartDSL.g:4393:5: () ( ( ruleOpPostfix ) )
                     {
-                    // InternalChartDSL.g:4089:5: ()
-                    // InternalChartDSL.g:4090:6: 
+                    // InternalChartDSL.g:4393:5: ()
+                    // InternalChartDSL.g:4394:6: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11937,11 +12711,11 @@
 
                     }
 
-                    // InternalChartDSL.g:4096:5: ( ( ruleOpPostfix ) )
-                    // InternalChartDSL.g:4097:6: ( ruleOpPostfix )
+                    // InternalChartDSL.g:4400:5: ( ( ruleOpPostfix ) )
+                    // InternalChartDSL.g:4401:6: ( ruleOpPostfix )
                     {
-                    // InternalChartDSL.g:4097:6: ( ruleOpPostfix )
-                    // InternalChartDSL.g:4098:7: ruleOpPostfix
+                    // InternalChartDSL.g:4401:6: ( ruleOpPostfix )
+                    // InternalChartDSL.g:4402:7: ruleOpPostfix
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12005,7 +12779,7 @@
 
 
     // $ANTLR start "entryRuleOpPostfix"
-    // InternalChartDSL.g:4118:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
+    // InternalChartDSL.g:4422:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
     public final String entryRuleOpPostfix() throws RecognitionException {
         String current = null;
 
@@ -12013,8 +12787,8 @@
 
 
         try {
-            // InternalChartDSL.g:4118:49: (iv_ruleOpPostfix= ruleOpPostfix EOF )
-            // InternalChartDSL.g:4119:2: iv_ruleOpPostfix= ruleOpPostfix EOF
+            // InternalChartDSL.g:4422:49: (iv_ruleOpPostfix= ruleOpPostfix EOF )
+            // InternalChartDSL.g:4423:2: iv_ruleOpPostfix= ruleOpPostfix EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpPostfixRule()); 
@@ -12045,7 +12819,7 @@
 
 
     // $ANTLR start "ruleOpPostfix"
-    // InternalChartDSL.g:4125:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
+    // InternalChartDSL.g:4429:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
     public final AntlrDatatypeRuleToken ruleOpPostfix() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -12055,31 +12829,31 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:4131:2: ( (kw= '++' | kw= '--' ) )
-            // InternalChartDSL.g:4132:2: (kw= '++' | kw= '--' )
+            // InternalChartDSL.g:4435:2: ( (kw= '++' | kw= '--' ) )
+            // InternalChartDSL.g:4436:2: (kw= '++' | kw= '--' )
             {
-            // InternalChartDSL.g:4132:2: (kw= '++' | kw= '--' )
-            int alt67=2;
-            int LA67_0 = input.LA(1);
+            // InternalChartDSL.g:4436:2: (kw= '++' | kw= '--' )
+            int alt79=2;
+            int LA79_0 = input.LA(1);
 
-            if ( (LA67_0==104) ) {
-                alt67=1;
+            if ( (LA79_0==114) ) {
+                alt79=1;
             }
-            else if ( (LA67_0==105) ) {
-                alt67=2;
+            else if ( (LA79_0==115) ) {
+                alt79=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 67, 0, input);
+                    new NoViableAltException("", 79, 0, input);
 
                 throw nvae;
             }
-            switch (alt67) {
+            switch (alt79) {
                 case 1 :
-                    // InternalChartDSL.g:4133:3: kw= '++'
+                    // InternalChartDSL.g:4437:3: kw= '++'
                     {
-                    kw=(Token)match(input,104,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,114,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -12090,9 +12864,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:4139:3: kw= '--'
+                    // InternalChartDSL.g:4443:3: kw= '--'
                     {
-                    kw=(Token)match(input,105,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,115,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -12127,7 +12901,7 @@
 
 
     // $ANTLR start "entryRuleXMemberFeatureCall"
-    // InternalChartDSL.g:4148:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
+    // InternalChartDSL.g:4452:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
     public final EObject entryRuleXMemberFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -12135,8 +12909,8 @@
 
 
         try {
-            // InternalChartDSL.g:4148:59: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
-            // InternalChartDSL.g:4149:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
+            // InternalChartDSL.g:4452:59: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
+            // InternalChartDSL.g:4453:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXMemberFeatureCallRule()); 
@@ -12167,7 +12941,7 @@
 
 
     // $ANTLR start "ruleXMemberFeatureCall"
-    // InternalChartDSL.g:4155:1: ruleXMemberFeatureCall returns [EObject current=null] : (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) ;
+    // InternalChartDSL.g:4459:1: ruleXMemberFeatureCall returns [EObject current=null] : (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) ;
     public final EObject ruleXMemberFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -12203,18 +12977,18 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:4161:2: ( (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) )
-            // InternalChartDSL.g:4162:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            // InternalChartDSL.g:4465:2: ( (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) )
+            // InternalChartDSL.g:4466:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
             {
-            // InternalChartDSL.g:4162:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
-            // InternalChartDSL.g:4163:3: this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            // InternalChartDSL.g:4466:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            // InternalChartDSL.g:4467:3: this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_72);
+            pushFollow(FOLLOW_85);
             this_XPrimaryExpression_0=ruleXPrimaryExpression();
 
             state._fsp--;
@@ -12225,45 +12999,45 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalChartDSL.g:4171:3: ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
-            loop76:
+            // InternalChartDSL.g:4475:3: ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            loop88:
             do {
-                int alt76=3;
+                int alt88=3;
                 switch ( input.LA(1) ) {
-                case 106:
+                case 116:
                     {
-                    int LA76_2 = input.LA(2);
+                    int LA88_2 = input.LA(2);
 
                     if ( (synpred20_InternalChartDSL()) ) {
-                        alt76=1;
+                        alt88=1;
                     }
                     else if ( (synpred21_InternalChartDSL()) ) {
-                        alt76=2;
+                        alt88=2;
                     }
 
 
                     }
                     break;
-                case 107:
+                case 117:
                     {
-                    int LA76_3 = input.LA(2);
+                    int LA88_3 = input.LA(2);
 
                     if ( (synpred20_InternalChartDSL()) ) {
-                        alt76=1;
+                        alt88=1;
                     }
                     else if ( (synpred21_InternalChartDSL()) ) {
-                        alt76=2;
+                        alt88=2;
                     }
 
 
                     }
                     break;
-                case 108:
+                case 118:
                     {
-                    int LA76_4 = input.LA(2);
+                    int LA88_4 = input.LA(2);
 
                     if ( (synpred21_InternalChartDSL()) ) {
-                        alt76=2;
+                        alt88=2;
                     }
 
 
@@ -12272,21 +13046,21 @@
 
                 }
 
-                switch (alt76) {
+                switch (alt88) {
             	case 1 :
-            	    // InternalChartDSL.g:4172:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // InternalChartDSL.g:4476:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
             	    {
-            	    // InternalChartDSL.g:4172:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
-            	    // InternalChartDSL.g:4173:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
+            	    // InternalChartDSL.g:4476:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // InternalChartDSL.g:4477:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
             	    {
-            	    // InternalChartDSL.g:4173:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
-            	    // InternalChartDSL.g:4174:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // InternalChartDSL.g:4477:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+            	    // InternalChartDSL.g:4478:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
             	    {
-            	    // InternalChartDSL.g:4194:6: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
-            	    // InternalChartDSL.g:4195:7: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+            	    // InternalChartDSL.g:4498:6: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // InternalChartDSL.g:4499:7: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
             	    {
-            	    // InternalChartDSL.g:4195:7: ()
-            	    // InternalChartDSL.g:4196:8: 
+            	    // InternalChartDSL.g:4499:7: ()
+            	    // InternalChartDSL.g:4500:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12298,28 +13072,28 @@
 
             	    }
 
-            	    // InternalChartDSL.g:4202:7: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
-            	    int alt68=2;
-            	    int LA68_0 = input.LA(1);
+            	    // InternalChartDSL.g:4506:7: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
+            	    int alt80=2;
+            	    int LA80_0 = input.LA(1);
 
-            	    if ( (LA68_0==106) ) {
-            	        alt68=1;
+            	    if ( (LA80_0==116) ) {
+            	        alt80=1;
             	    }
-            	    else if ( (LA68_0==107) ) {
-            	        alt68=2;
+            	    else if ( (LA80_0==117) ) {
+            	        alt80=2;
             	    }
             	    else {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        NoViableAltException nvae =
-            	            new NoViableAltException("", 68, 0, input);
+            	            new NoViableAltException("", 80, 0, input);
 
             	        throw nvae;
             	    }
-            	    switch (alt68) {
+            	    switch (alt80) {
             	        case 1 :
-            	            // InternalChartDSL.g:4203:8: otherlv_2= '.'
+            	            // InternalChartDSL.g:4507:8: otherlv_2= '.'
             	            {
-            	            otherlv_2=(Token)match(input,106,FOLLOW_73); if (state.failed) return current;
+            	            otherlv_2=(Token)match(input,116,FOLLOW_86); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
@@ -12329,15 +13103,15 @@
             	            }
             	            break;
             	        case 2 :
-            	            // InternalChartDSL.g:4208:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // InternalChartDSL.g:4512:8: ( (lv_explicitStatic_3_0= '::' ) )
             	            {
-            	            // InternalChartDSL.g:4208:8: ( (lv_explicitStatic_3_0= '::' ) )
-            	            // InternalChartDSL.g:4209:9: (lv_explicitStatic_3_0= '::' )
+            	            // InternalChartDSL.g:4512:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // InternalChartDSL.g:4513:9: (lv_explicitStatic_3_0= '::' )
             	            {
-            	            // InternalChartDSL.g:4209:9: (lv_explicitStatic_3_0= '::' )
-            	            // InternalChartDSL.g:4210:10: lv_explicitStatic_3_0= '::'
+            	            // InternalChartDSL.g:4513:9: (lv_explicitStatic_3_0= '::' )
+            	            // InternalChartDSL.g:4514:10: lv_explicitStatic_3_0= '::'
             	            {
-            	            lv_explicitStatic_3_0=(Token)match(input,107,FOLLOW_73); if (state.failed) return current;
+            	            lv_explicitStatic_3_0=(Token)match(input,117,FOLLOW_86); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
@@ -12363,11 +13137,11 @@
 
             	    }
 
-            	    // InternalChartDSL.g:4223:7: ( ( ruleFeatureCallID ) )
-            	    // InternalChartDSL.g:4224:8: ( ruleFeatureCallID )
+            	    // InternalChartDSL.g:4527:7: ( ( ruleFeatureCallID ) )
+            	    // InternalChartDSL.g:4528:8: ( ruleFeatureCallID )
             	    {
-            	    // InternalChartDSL.g:4224:8: ( ruleFeatureCallID )
-            	    // InternalChartDSL.g:4225:9: ruleFeatureCallID
+            	    // InternalChartDSL.g:4528:8: ( ruleFeatureCallID )
+            	    // InternalChartDSL.g:4529:9: ruleFeatureCallID
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12381,7 +13155,7 @@
             	      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0());
             	      								
             	    }
-            	    pushFollow(FOLLOW_49);
+            	    pushFollow(FOLLOW_62);
             	    ruleFeatureCallID();
 
             	    state._fsp--;
@@ -12402,7 +13176,7 @@
             	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3());
             	      						
             	    }
-            	    pushFollow(FOLLOW_50);
+            	    pushFollow(FOLLOW_63);
             	    ruleOpSingleAssign();
 
             	    state._fsp--;
@@ -12418,18 +13192,18 @@
 
             	    }
 
-            	    // InternalChartDSL.g:4248:5: ( (lv_value_6_0= ruleXAssignment ) )
-            	    // InternalChartDSL.g:4249:6: (lv_value_6_0= ruleXAssignment )
+            	    // InternalChartDSL.g:4552:5: ( (lv_value_6_0= ruleXAssignment ) )
+            	    // InternalChartDSL.g:4553:6: (lv_value_6_0= ruleXAssignment )
             	    {
-            	    // InternalChartDSL.g:4249:6: (lv_value_6_0= ruleXAssignment )
-            	    // InternalChartDSL.g:4250:7: lv_value_6_0= ruleXAssignment
+            	    // InternalChartDSL.g:4553:6: (lv_value_6_0= ruleXAssignment )
+            	    // InternalChartDSL.g:4554:7: lv_value_6_0= ruleXAssignment
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0());
             	      						
             	    }
-            	    pushFollow(FOLLOW_72);
+            	    pushFollow(FOLLOW_85);
             	    lv_value_6_0=ruleXAssignment();
 
             	    state._fsp--;
@@ -12460,19 +13234,19 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalChartDSL.g:4269:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    // InternalChartDSL.g:4573:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
             	    {
-            	    // InternalChartDSL.g:4269:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
-            	    // InternalChartDSL.g:4270:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    // InternalChartDSL.g:4573:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    // InternalChartDSL.g:4574:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
             	    {
-            	    // InternalChartDSL.g:4270:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
-            	    // InternalChartDSL.g:4271:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // InternalChartDSL.g:4574:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
+            	    // InternalChartDSL.g:4575:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
             	    {
-            	    // InternalChartDSL.g:4291:6: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
-            	    // InternalChartDSL.g:4292:7: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    // InternalChartDSL.g:4595:6: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // InternalChartDSL.g:4596:7: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
             	    {
-            	    // InternalChartDSL.g:4292:7: ()
-            	    // InternalChartDSL.g:4293:8: 
+            	    // InternalChartDSL.g:4596:7: ()
+            	    // InternalChartDSL.g:4597:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12484,37 +13258,37 @@
 
             	    }
 
-            	    // InternalChartDSL.g:4299:7: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
-            	    int alt69=3;
+            	    // InternalChartDSL.g:4603:7: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    int alt81=3;
             	    switch ( input.LA(1) ) {
-            	    case 106:
+            	    case 116:
             	        {
-            	        alt69=1;
+            	        alt81=1;
             	        }
             	        break;
-            	    case 108:
+            	    case 118:
             	        {
-            	        alt69=2;
+            	        alt81=2;
             	        }
             	        break;
-            	    case 107:
+            	    case 117:
             	        {
-            	        alt69=3;
+            	        alt81=3;
             	        }
             	        break;
             	    default:
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        NoViableAltException nvae =
-            	            new NoViableAltException("", 69, 0, input);
+            	            new NoViableAltException("", 81, 0, input);
 
             	        throw nvae;
             	    }
 
-            	    switch (alt69) {
+            	    switch (alt81) {
             	        case 1 :
-            	            // InternalChartDSL.g:4300:8: otherlv_8= '.'
+            	            // InternalChartDSL.g:4604:8: otherlv_8= '.'
             	            {
-            	            otherlv_8=(Token)match(input,106,FOLLOW_74); if (state.failed) return current;
+            	            otherlv_8=(Token)match(input,116,FOLLOW_87); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
@@ -12524,15 +13298,15 @@
             	            }
             	            break;
             	        case 2 :
-            	            // InternalChartDSL.g:4305:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // InternalChartDSL.g:4609:8: ( (lv_nullSafe_9_0= '?.' ) )
             	            {
-            	            // InternalChartDSL.g:4305:8: ( (lv_nullSafe_9_0= '?.' ) )
-            	            // InternalChartDSL.g:4306:9: (lv_nullSafe_9_0= '?.' )
+            	            // InternalChartDSL.g:4609:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // InternalChartDSL.g:4610:9: (lv_nullSafe_9_0= '?.' )
             	            {
-            	            // InternalChartDSL.g:4306:9: (lv_nullSafe_9_0= '?.' )
-            	            // InternalChartDSL.g:4307:10: lv_nullSafe_9_0= '?.'
+            	            // InternalChartDSL.g:4610:9: (lv_nullSafe_9_0= '?.' )
+            	            // InternalChartDSL.g:4611:10: lv_nullSafe_9_0= '?.'
             	            {
-            	            lv_nullSafe_9_0=(Token)match(input,108,FOLLOW_74); if (state.failed) return current;
+            	            lv_nullSafe_9_0=(Token)match(input,118,FOLLOW_87); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
@@ -12556,15 +13330,15 @@
             	            }
             	            break;
             	        case 3 :
-            	            // InternalChartDSL.g:4320:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // InternalChartDSL.g:4624:8: ( (lv_explicitStatic_10_0= '::' ) )
             	            {
-            	            // InternalChartDSL.g:4320:8: ( (lv_explicitStatic_10_0= '::' ) )
-            	            // InternalChartDSL.g:4321:9: (lv_explicitStatic_10_0= '::' )
+            	            // InternalChartDSL.g:4624:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // InternalChartDSL.g:4625:9: (lv_explicitStatic_10_0= '::' )
             	            {
-            	            // InternalChartDSL.g:4321:9: (lv_explicitStatic_10_0= '::' )
-            	            // InternalChartDSL.g:4322:10: lv_explicitStatic_10_0= '::'
+            	            // InternalChartDSL.g:4625:9: (lv_explicitStatic_10_0= '::' )
+            	            // InternalChartDSL.g:4626:10: lv_explicitStatic_10_0= '::'
             	            {
-            	            lv_explicitStatic_10_0=(Token)match(input,107,FOLLOW_74); if (state.failed) return current;
+            	            lv_explicitStatic_10_0=(Token)match(input,117,FOLLOW_87); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
@@ -12596,35 +13370,35 @@
 
             	    }
 
-            	    // InternalChartDSL.g:4337:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
-            	    int alt71=2;
-            	    int LA71_0 = input.LA(1);
+            	    // InternalChartDSL.g:4641:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
+            	    int alt83=2;
+            	    int LA83_0 = input.LA(1);
 
-            	    if ( (LA71_0==83) ) {
-            	        alt71=1;
+            	    if ( (LA83_0==93) ) {
+            	        alt83=1;
             	    }
-            	    switch (alt71) {
+            	    switch (alt83) {
             	        case 1 :
-            	            // InternalChartDSL.g:4338:6: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
+            	            // InternalChartDSL.g:4642:6: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
             	            {
-            	            otherlv_11=(Token)match(input,83,FOLLOW_75); if (state.failed) return current;
+            	            otherlv_11=(Token)match(input,93,FOLLOW_88); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
             	              					
             	            }
-            	            // InternalChartDSL.g:4342:6: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
-            	            // InternalChartDSL.g:4343:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // InternalChartDSL.g:4646:6: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
+            	            // InternalChartDSL.g:4647:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
             	            {
-            	            // InternalChartDSL.g:4343:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
-            	            // InternalChartDSL.g:4344:8: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
+            	            // InternalChartDSL.g:4647:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // InternalChartDSL.g:4648:8: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
             	            {
             	            if ( state.backtracking==0 ) {
 
             	              								newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0());
             	              							
             	            }
-            	            pushFollow(FOLLOW_76);
+            	            pushFollow(FOLLOW_89);
             	            lv_typeArguments_12_0=ruleJvmArgumentTypeReference();
 
             	            state._fsp--;
@@ -12648,39 +13422,39 @@
 
             	            }
 
-            	            // InternalChartDSL.g:4361:6: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
-            	            loop70:
+            	            // InternalChartDSL.g:4665:6: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
+            	            loop82:
             	            do {
-            	                int alt70=2;
-            	                int LA70_0 = input.LA(1);
+            	                int alt82=2;
+            	                int LA82_0 = input.LA(1);
 
-            	                if ( (LA70_0==72) ) {
-            	                    alt70=1;
+            	                if ( (LA82_0==82) ) {
+            	                    alt82=1;
             	                }
 
 
-            	                switch (alt70) {
+            	                switch (alt82) {
             	            	case 1 :
-            	            	    // InternalChartDSL.g:4362:7: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    // InternalChartDSL.g:4666:7: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
             	            	    {
-            	            	    otherlv_13=(Token)match(input,72,FOLLOW_75); if (state.failed) return current;
+            	            	    otherlv_13=(Token)match(input,82,FOLLOW_88); if (state.failed) return current;
             	            	    if ( state.backtracking==0 ) {
 
             	            	      							newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
             	            	      						
             	            	    }
-            	            	    // InternalChartDSL.g:4366:7: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
-            	            	    // InternalChartDSL.g:4367:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    // InternalChartDSL.g:4670:7: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    // InternalChartDSL.g:4671:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
             	            	    {
-            	            	    // InternalChartDSL.g:4367:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
-            	            	    // InternalChartDSL.g:4368:9: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
+            	            	    // InternalChartDSL.g:4671:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    // InternalChartDSL.g:4672:9: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
             	            	    {
             	            	    if ( state.backtracking==0 ) {
 
             	            	      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0());
             	            	      								
             	            	    }
-            	            	    pushFollow(FOLLOW_76);
+            	            	    pushFollow(FOLLOW_89);
             	            	    lv_typeArguments_14_0=ruleJvmArgumentTypeReference();
 
             	            	    state._fsp--;
@@ -12709,11 +13483,11 @@
             	            	    break;
 
             	            	default :
-            	            	    break loop70;
+            	            	    break loop82;
             	                }
             	            } while (true);
 
-            	            otherlv_15=(Token)match(input,84,FOLLOW_74); if (state.failed) return current;
+            	            otherlv_15=(Token)match(input,94,FOLLOW_87); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
@@ -12725,11 +13499,11 @@
 
             	    }
 
-            	    // InternalChartDSL.g:4391:5: ( ( ruleIdOrSuper ) )
-            	    // InternalChartDSL.g:4392:6: ( ruleIdOrSuper )
+            	    // InternalChartDSL.g:4695:5: ( ( ruleIdOrSuper ) )
+            	    // InternalChartDSL.g:4696:6: ( ruleIdOrSuper )
             	    {
-            	    // InternalChartDSL.g:4392:6: ( ruleIdOrSuper )
-            	    // InternalChartDSL.g:4393:7: ruleIdOrSuper
+            	    // InternalChartDSL.g:4696:6: ( ruleIdOrSuper )
+            	    // InternalChartDSL.g:4697:7: ruleIdOrSuper
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12743,7 +13517,7 @@
             	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0());
             	      						
             	    }
-            	    pushFollow(FOLLOW_77);
+            	    pushFollow(FOLLOW_90);
             	    ruleIdOrSuper();
 
             	    state._fsp--;
@@ -12759,20 +13533,20 @@
 
             	    }
 
-            	    // InternalChartDSL.g:4407:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?
-            	    int alt74=2;
-            	    alt74 = dfa74.predict(input);
-            	    switch (alt74) {
+            	    // InternalChartDSL.g:4711:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?
+            	    int alt86=2;
+            	    alt86 = dfa86.predict(input);
+            	    switch (alt86) {
             	        case 1 :
-            	            // InternalChartDSL.g:4408:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')'
+            	            // InternalChartDSL.g:4712:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')'
             	            {
-            	            // InternalChartDSL.g:4408:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
-            	            // InternalChartDSL.g:4409:7: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
+            	            // InternalChartDSL.g:4712:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
+            	            // InternalChartDSL.g:4713:7: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
             	            {
-            	            // InternalChartDSL.g:4413:7: (lv_explicitOperationCall_17_0= '(' )
-            	            // InternalChartDSL.g:4414:8: lv_explicitOperationCall_17_0= '('
+            	            // InternalChartDSL.g:4717:7: (lv_explicitOperationCall_17_0= '(' )
+            	            // InternalChartDSL.g:4718:8: lv_explicitOperationCall_17_0= '('
             	            {
-            	            lv_explicitOperationCall_17_0=(Token)match(input,71,FOLLOW_78); if (state.failed) return current;
+            	            lv_explicitOperationCall_17_0=(Token)match(input,81,FOLLOW_91); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
@@ -12792,25 +13566,25 @@
 
             	            }
 
-            	            // InternalChartDSL.g:4426:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
-            	            int alt73=3;
-            	            alt73 = dfa73.predict(input);
-            	            switch (alt73) {
+            	            // InternalChartDSL.g:4730:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
+            	            int alt85=3;
+            	            alt85 = dfa85.predict(input);
+            	            switch (alt85) {
             	                case 1 :
-            	                    // InternalChartDSL.g:4427:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    // InternalChartDSL.g:4731:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
             	                    {
-            	                    // InternalChartDSL.g:4427:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
-            	                    // InternalChartDSL.g:4428:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    // InternalChartDSL.g:4731:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    // InternalChartDSL.g:4732:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
             	                    {
-            	                    // InternalChartDSL.g:4453:8: (lv_memberCallArguments_18_0= ruleXShortClosure )
-            	                    // InternalChartDSL.g:4454:9: lv_memberCallArguments_18_0= ruleXShortClosure
+            	                    // InternalChartDSL.g:4757:8: (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    // InternalChartDSL.g:4758:9: lv_memberCallArguments_18_0= ruleXShortClosure
             	                    {
             	                    if ( state.backtracking==0 ) {
 
             	                      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0());
             	                      								
             	                    }
-            	                    pushFollow(FOLLOW_48);
+            	                    pushFollow(FOLLOW_61);
             	                    lv_memberCallArguments_18_0=ruleXShortClosure();
 
             	                    state._fsp--;
@@ -12838,23 +13612,23 @@
             	                    }
             	                    break;
             	                case 2 :
-            	                    // InternalChartDSL.g:4472:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    // InternalChartDSL.g:4776:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
             	                    {
-            	                    // InternalChartDSL.g:4472:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
-            	                    // InternalChartDSL.g:4473:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    // InternalChartDSL.g:4776:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    // InternalChartDSL.g:4777:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
             	                    {
-            	                    // InternalChartDSL.g:4473:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
-            	                    // InternalChartDSL.g:4474:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    // InternalChartDSL.g:4777:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
+            	                    // InternalChartDSL.g:4778:9: (lv_memberCallArguments_19_0= ruleXExpression )
             	                    {
-            	                    // InternalChartDSL.g:4474:9: (lv_memberCallArguments_19_0= ruleXExpression )
-            	                    // InternalChartDSL.g:4475:10: lv_memberCallArguments_19_0= ruleXExpression
+            	                    // InternalChartDSL.g:4778:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    // InternalChartDSL.g:4779:10: lv_memberCallArguments_19_0= ruleXExpression
             	                    {
             	                    if ( state.backtracking==0 ) {
 
             	                      										newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0());
             	                      									
             	                    }
-            	                    pushFollow(FOLLOW_47);
+            	                    pushFollow(FOLLOW_60);
             	                    lv_memberCallArguments_19_0=ruleXExpression();
 
             	                    state._fsp--;
@@ -12878,39 +13652,39 @@
 
             	                    }
 
-            	                    // InternalChartDSL.g:4492:8: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
-            	                    loop72:
+            	                    // InternalChartDSL.g:4796:8: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    loop84:
             	                    do {
-            	                        int alt72=2;
-            	                        int LA72_0 = input.LA(1);
+            	                        int alt84=2;
+            	                        int LA84_0 = input.LA(1);
 
-            	                        if ( (LA72_0==72) ) {
-            	                            alt72=1;
+            	                        if ( (LA84_0==82) ) {
+            	                            alt84=1;
             	                        }
 
 
-            	                        switch (alt72) {
+            	                        switch (alt84) {
             	                    	case 1 :
-            	                    	    // InternalChartDSL.g:4493:9: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    // InternalChartDSL.g:4797:9: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
             	                    	    {
-            	                    	    otherlv_20=(Token)match(input,72,FOLLOW_50); if (state.failed) return current;
+            	                    	    otherlv_20=(Token)match(input,82,FOLLOW_63); if (state.failed) return current;
             	                    	    if ( state.backtracking==0 ) {
 
             	                    	      									newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
             	                    	      								
             	                    	    }
-            	                    	    // InternalChartDSL.g:4497:9: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
-            	                    	    // InternalChartDSL.g:4498:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    // InternalChartDSL.g:4801:9: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    // InternalChartDSL.g:4802:10: (lv_memberCallArguments_21_0= ruleXExpression )
             	                    	    {
-            	                    	    // InternalChartDSL.g:4498:10: (lv_memberCallArguments_21_0= ruleXExpression )
-            	                    	    // InternalChartDSL.g:4499:11: lv_memberCallArguments_21_0= ruleXExpression
+            	                    	    // InternalChartDSL.g:4802:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    // InternalChartDSL.g:4803:11: lv_memberCallArguments_21_0= ruleXExpression
             	                    	    {
             	                    	    if ( state.backtracking==0 ) {
 
             	                    	      											newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0());
             	                    	      										
             	                    	    }
-            	                    	    pushFollow(FOLLOW_47);
+            	                    	    pushFollow(FOLLOW_60);
             	                    	    lv_memberCallArguments_21_0=ruleXExpression();
 
             	                    	    state._fsp--;
@@ -12939,7 +13713,7 @@
             	                    	    break;
 
             	                    	default :
-            	                    	    break loop72;
+            	                    	    break loop84;
             	                        }
             	                    } while (true);
 
@@ -12952,7 +13726,7 @@
 
             	            }
 
-            	            otherlv_22=(Token)match(input,73,FOLLOW_79); if (state.failed) return current;
+            	            otherlv_22=(Token)match(input,83,FOLLOW_92); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
@@ -12964,22 +13738,22 @@
 
             	    }
 
-            	    // InternalChartDSL.g:4524:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
-            	    int alt75=2;
-            	    alt75 = dfa75.predict(input);
-            	    switch (alt75) {
+            	    // InternalChartDSL.g:4828:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    int alt87=2;
+            	    alt87 = dfa87.predict(input);
+            	    switch (alt87) {
             	        case 1 :
-            	            // InternalChartDSL.g:4525:6: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
+            	            // InternalChartDSL.g:4829:6: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
             	            {
-            	            // InternalChartDSL.g:4531:6: (lv_memberCallArguments_23_0= ruleXClosure )
-            	            // InternalChartDSL.g:4532:7: lv_memberCallArguments_23_0= ruleXClosure
+            	            // InternalChartDSL.g:4835:6: (lv_memberCallArguments_23_0= ruleXClosure )
+            	            // InternalChartDSL.g:4836:7: lv_memberCallArguments_23_0= ruleXClosure
             	            {
             	            if ( state.backtracking==0 ) {
 
             	              							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0());
             	              						
             	            }
-            	            pushFollow(FOLLOW_72);
+            	            pushFollow(FOLLOW_85);
             	            lv_memberCallArguments_23_0=ruleXClosure();
 
             	            state._fsp--;
@@ -13014,7 +13788,7 @@
             	    break;
 
             	default :
-            	    break loop76;
+            	    break loop88;
                 }
             } while (true);
 
@@ -13043,7 +13817,7 @@
 
 
     // $ANTLR start "entryRuleXPrimaryExpression"
-    // InternalChartDSL.g:4555:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
+    // InternalChartDSL.g:4859:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
     public final EObject entryRuleXPrimaryExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13051,8 +13825,8 @@
 
 
         try {
-            // InternalChartDSL.g:4555:59: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
-            // InternalChartDSL.g:4556:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
+            // InternalChartDSL.g:4859:59: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
+            // InternalChartDSL.g:4860:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXPrimaryExpressionRule()); 
@@ -13083,7 +13857,7 @@
 
 
     // $ANTLR start "ruleXPrimaryExpression"
-    // InternalChartDSL.g:4562:1: ruleXPrimaryExpression returns [EObject current=null] : (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) ;
+    // InternalChartDSL.g:4866:1: ruleXPrimaryExpression returns [EObject current=null] : (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) ;
     public final EObject ruleXPrimaryExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13122,15 +13896,15 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:4568:2: ( (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) )
-            // InternalChartDSL.g:4569:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
+            // InternalChartDSL.g:4872:2: ( (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) )
+            // InternalChartDSL.g:4873:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
             {
-            // InternalChartDSL.g:4569:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
-            int alt77=15;
-            alt77 = dfa77.predict(input);
-            switch (alt77) {
+            // InternalChartDSL.g:4873:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
+            int alt89=15;
+            alt89 = dfa89.predict(input);
+            switch (alt89) {
                 case 1 :
-                    // InternalChartDSL.g:4570:3: this_XConstructorCall_0= ruleXConstructorCall
+                    // InternalChartDSL.g:4874:3: this_XConstructorCall_0= ruleXConstructorCall
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13152,7 +13926,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:4579:3: this_XBlockExpression_1= ruleXBlockExpression
+                    // InternalChartDSL.g:4883:3: this_XBlockExpression_1= ruleXBlockExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13174,7 +13948,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:4588:3: this_XSwitchExpression_2= ruleXSwitchExpression
+                    // InternalChartDSL.g:4892:3: this_XSwitchExpression_2= ruleXSwitchExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13196,10 +13970,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:4597:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    // InternalChartDSL.g:4901:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
                     {
-                    // InternalChartDSL.g:4597:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
-                    // InternalChartDSL.g:4598:4: ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression
+                    // InternalChartDSL.g:4901:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    // InternalChartDSL.g:4902:4: ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13224,7 +13998,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:4615:3: this_XFeatureCall_4= ruleXFeatureCall
+                    // InternalChartDSL.g:4919:3: this_XFeatureCall_4= ruleXFeatureCall
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13246,7 +14020,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:4624:3: this_XLiteral_5= ruleXLiteral
+                    // InternalChartDSL.g:4928:3: this_XLiteral_5= ruleXLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13268,7 +14042,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalChartDSL.g:4633:3: this_XIfExpression_6= ruleXIfExpression
+                    // InternalChartDSL.g:4937:3: this_XIfExpression_6= ruleXIfExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13290,10 +14064,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalChartDSL.g:4642:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    // InternalChartDSL.g:4946:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
                     {
-                    // InternalChartDSL.g:4642:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
-                    // InternalChartDSL.g:4643:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression
+                    // InternalChartDSL.g:4946:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    // InternalChartDSL.g:4947:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13318,7 +14092,7 @@
                     }
                     break;
                 case 9 :
-                    // InternalChartDSL.g:4666:3: this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression
+                    // InternalChartDSL.g:4970:3: this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13340,7 +14114,7 @@
                     }
                     break;
                 case 10 :
-                    // InternalChartDSL.g:4675:3: this_XWhileExpression_9= ruleXWhileExpression
+                    // InternalChartDSL.g:4979:3: this_XWhileExpression_9= ruleXWhileExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13362,7 +14136,7 @@
                     }
                     break;
                 case 11 :
-                    // InternalChartDSL.g:4684:3: this_XDoWhileExpression_10= ruleXDoWhileExpression
+                    // InternalChartDSL.g:4988:3: this_XDoWhileExpression_10= ruleXDoWhileExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13384,7 +14158,7 @@
                     }
                     break;
                 case 12 :
-                    // InternalChartDSL.g:4693:3: this_XThrowExpression_11= ruleXThrowExpression
+                    // InternalChartDSL.g:4997:3: this_XThrowExpression_11= ruleXThrowExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13406,7 +14180,7 @@
                     }
                     break;
                 case 13 :
-                    // InternalChartDSL.g:4702:3: this_XReturnExpression_12= ruleXReturnExpression
+                    // InternalChartDSL.g:5006:3: this_XReturnExpression_12= ruleXReturnExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13428,7 +14202,7 @@
                     }
                     break;
                 case 14 :
-                    // InternalChartDSL.g:4711:3: this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression
+                    // InternalChartDSL.g:5015:3: this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13450,7 +14224,7 @@
                     }
                     break;
                 case 15 :
-                    // InternalChartDSL.g:4720:3: this_XParenthesizedExpression_14= ruleXParenthesizedExpression
+                    // InternalChartDSL.g:5024:3: this_XParenthesizedExpression_14= ruleXParenthesizedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13496,7 +14270,7 @@
 
 
     // $ANTLR start "entryRuleXLiteral"
-    // InternalChartDSL.g:4732:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
+    // InternalChartDSL.g:5036:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
     public final EObject entryRuleXLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -13504,8 +14278,8 @@
 
 
         try {
-            // InternalChartDSL.g:4732:49: (iv_ruleXLiteral= ruleXLiteral EOF )
-            // InternalChartDSL.g:4733:2: iv_ruleXLiteral= ruleXLiteral EOF
+            // InternalChartDSL.g:5036:49: (iv_ruleXLiteral= ruleXLiteral EOF )
+            // InternalChartDSL.g:5037:2: iv_ruleXLiteral= ruleXLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXLiteralRule()); 
@@ -13536,7 +14310,7 @@
 
 
     // $ANTLR start "ruleXLiteral"
-    // InternalChartDSL.g:4739:1: ruleXLiteral returns [EObject current=null] : (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) ;
+    // InternalChartDSL.g:5043:1: ruleXLiteral returns [EObject current=null] : (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) ;
     public final EObject ruleXLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -13559,44 +14333,44 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:4745:2: ( (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) )
-            // InternalChartDSL.g:4746:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+            // InternalChartDSL.g:5049:2: ( (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) )
+            // InternalChartDSL.g:5050:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
             {
-            // InternalChartDSL.g:4746:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
-            int alt78=7;
-            int LA78_0 = input.LA(1);
+            // InternalChartDSL.g:5050:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+            int alt90=7;
+            int LA90_0 = input.LA(1);
 
-            if ( (LA78_0==75) ) {
-                alt78=1;
+            if ( (LA90_0==85) ) {
+                alt90=1;
             }
-            else if ( (LA78_0==76) && (synpred27_InternalChartDSL())) {
-                alt78=2;
+            else if ( (LA90_0==86) && (synpred27_InternalChartDSL())) {
+                alt90=2;
             }
-            else if ( ((LA78_0>=124 && LA78_0<=125)) ) {
-                alt78=3;
+            else if ( ((LA90_0>=134 && LA90_0<=135)) ) {
+                alt90=3;
             }
-            else if ( ((LA78_0>=RULE_INT && LA78_0<=RULE_DECIMAL)) ) {
-                alt78=4;
+            else if ( ((LA90_0>=RULE_INT && LA90_0<=RULE_DECIMAL)) ) {
+                alt90=4;
             }
-            else if ( (LA78_0==126) ) {
-                alt78=5;
+            else if ( (LA90_0==136) ) {
+                alt90=5;
             }
-            else if ( (LA78_0==RULE_STRING) ) {
-                alt78=6;
+            else if ( (LA90_0==RULE_STRING) ) {
+                alt90=6;
             }
-            else if ( (LA78_0==127) ) {
-                alt78=7;
+            else if ( (LA90_0==137) ) {
+                alt90=7;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 78, 0, input);
+                    new NoViableAltException("", 90, 0, input);
 
                 throw nvae;
             }
-            switch (alt78) {
+            switch (alt90) {
                 case 1 :
-                    // InternalChartDSL.g:4747:3: this_XCollectionLiteral_0= ruleXCollectionLiteral
+                    // InternalChartDSL.g:5051:3: this_XCollectionLiteral_0= ruleXCollectionLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13618,10 +14392,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:4756:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    // InternalChartDSL.g:5060:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
                     {
-                    // InternalChartDSL.g:4756:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
-                    // InternalChartDSL.g:4757:4: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
+                    // InternalChartDSL.g:5060:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    // InternalChartDSL.g:5061:4: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13646,7 +14420,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:4773:3: this_XBooleanLiteral_2= ruleXBooleanLiteral
+                    // InternalChartDSL.g:5077:3: this_XBooleanLiteral_2= ruleXBooleanLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13668,7 +14442,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:4782:3: this_XNumberLiteral_3= ruleXNumberLiteral
+                    // InternalChartDSL.g:5086:3: this_XNumberLiteral_3= ruleXNumberLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13690,7 +14464,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:4791:3: this_XNullLiteral_4= ruleXNullLiteral
+                    // InternalChartDSL.g:5095:3: this_XNullLiteral_4= ruleXNullLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13712,7 +14486,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:4800:3: this_XStringLiteral_5= ruleXStringLiteral
+                    // InternalChartDSL.g:5104:3: this_XStringLiteral_5= ruleXStringLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13734,7 +14508,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalChartDSL.g:4809:3: this_XTypeLiteral_6= ruleXTypeLiteral
+                    // InternalChartDSL.g:5113:3: this_XTypeLiteral_6= ruleXTypeLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13780,7 +14554,7 @@
 
 
     // $ANTLR start "entryRuleXCollectionLiteral"
-    // InternalChartDSL.g:4821:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
+    // InternalChartDSL.g:5125:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
     public final EObject entryRuleXCollectionLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -13788,8 +14562,8 @@
 
 
         try {
-            // InternalChartDSL.g:4821:59: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
-            // InternalChartDSL.g:4822:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
+            // InternalChartDSL.g:5125:59: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
+            // InternalChartDSL.g:5126:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCollectionLiteralRule()); 
@@ -13820,7 +14594,7 @@
 
 
     // $ANTLR start "ruleXCollectionLiteral"
-    // InternalChartDSL.g:4828:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
+    // InternalChartDSL.g:5132:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
     public final EObject ruleXCollectionLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -13833,26 +14607,26 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:4834:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
-            // InternalChartDSL.g:4835:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            // InternalChartDSL.g:5138:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
+            // InternalChartDSL.g:5139:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
             {
-            // InternalChartDSL.g:4835:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
-            int alt79=2;
-            int LA79_0 = input.LA(1);
+            // InternalChartDSL.g:5139:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            int alt91=2;
+            int LA91_0 = input.LA(1);
 
-            if ( (LA79_0==75) ) {
-                int LA79_1 = input.LA(2);
+            if ( (LA91_0==85) ) {
+                int LA91_1 = input.LA(2);
 
-                if ( (LA79_1==14) ) {
-                    alt79=1;
+                if ( (LA91_1==86) ) {
+                    alt91=2;
                 }
-                else if ( (LA79_1==76) ) {
-                    alt79=2;
+                else if ( (LA91_1==15) ) {
+                    alt91=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 79, 1, input);
+                        new NoViableAltException("", 91, 1, input);
 
                     throw nvae;
                 }
@@ -13860,13 +14634,13 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 79, 0, input);
+                    new NoViableAltException("", 91, 0, input);
 
                 throw nvae;
             }
-            switch (alt79) {
+            switch (alt91) {
                 case 1 :
-                    // InternalChartDSL.g:4836:3: this_XSetLiteral_0= ruleXSetLiteral
+                    // InternalChartDSL.g:5140:3: this_XSetLiteral_0= ruleXSetLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13888,7 +14662,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:4845:3: this_XListLiteral_1= ruleXListLiteral
+                    // InternalChartDSL.g:5149:3: this_XListLiteral_1= ruleXListLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13934,7 +14708,7 @@
 
 
     // $ANTLR start "entryRuleXSetLiteral"
-    // InternalChartDSL.g:4857:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
+    // InternalChartDSL.g:5161:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
     public final EObject entryRuleXSetLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -13942,8 +14716,8 @@
 
 
         try {
-            // InternalChartDSL.g:4857:52: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
-            // InternalChartDSL.g:4858:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
+            // InternalChartDSL.g:5161:52: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
+            // InternalChartDSL.g:5162:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSetLiteralRule()); 
@@ -13974,7 +14748,7 @@
 
 
     // $ANTLR start "ruleXSetLiteral"
-    // InternalChartDSL.g:4864:1: ruleXSetLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) ;
+    // InternalChartDSL.g:5168:1: ruleXSetLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) ;
     public final EObject ruleXSetLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -13991,14 +14765,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:4870:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
-            // InternalChartDSL.g:4871:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            // InternalChartDSL.g:5174:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
+            // InternalChartDSL.g:5175:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
             {
-            // InternalChartDSL.g:4871:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
-            // InternalChartDSL.g:4872:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
+            // InternalChartDSL.g:5175:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            // InternalChartDSL.g:5176:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
             {
-            // InternalChartDSL.g:4872:3: ()
-            // InternalChartDSL.g:4873:4: 
+            // InternalChartDSL.g:5176:3: ()
+            // InternalChartDSL.g:5177:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14010,41 +14784,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,75,FOLLOW_24); if (state.failed) return current;
+            otherlv_1=(Token)match(input,85,FOLLOW_6); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,14,FOLLOW_80); if (state.failed) return current;
+            otherlv_2=(Token)match(input,15,FOLLOW_93); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
               		
             }
-            // InternalChartDSL.g:4887:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
-            int alt81=2;
-            int LA81_0 = input.LA(1);
+            // InternalChartDSL.g:5191:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            int alt93=2;
+            int LA93_0 = input.LA(1);
 
-            if ( ((LA81_0>=RULE_ID && LA81_0<=RULE_DECIMAL)||LA81_0==14||(LA81_0>=63 && LA81_0<=66)||LA81_0==71||(LA81_0>=75 && LA81_0<=76)||LA81_0==83||LA81_0==99||LA81_0==103||LA81_0==110||LA81_0==112||(LA81_0>=116 && LA81_0<=118)||(LA81_0>=121 && LA81_0<=130)||LA81_0==132) ) {
-                alt81=1;
+            if ( ((LA93_0>=RULE_STRING && LA93_0<=RULE_DECIMAL)||LA93_0==15||(LA93_0>=73 && LA93_0<=76)||LA93_0==81||(LA93_0>=85 && LA93_0<=86)||LA93_0==93||LA93_0==109||LA93_0==113||LA93_0==120||LA93_0==122||(LA93_0>=126 && LA93_0<=128)||(LA93_0>=131 && LA93_0<=140)||LA93_0==142) ) {
+                alt93=1;
             }
-            switch (alt81) {
+            switch (alt93) {
                 case 1 :
-                    // InternalChartDSL.g:4888:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalChartDSL.g:5192:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     {
-                    // InternalChartDSL.g:4888:4: ( (lv_elements_3_0= ruleXExpression ) )
-                    // InternalChartDSL.g:4889:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalChartDSL.g:5192:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalChartDSL.g:5193:5: (lv_elements_3_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:4889:5: (lv_elements_3_0= ruleXExpression )
-                    // InternalChartDSL.g:4890:6: lv_elements_3_0= ruleXExpression
+                    // InternalChartDSL.g:5193:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalChartDSL.g:5194:6: lv_elements_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_81);
+                    pushFollow(FOLLOW_94);
                     lv_elements_3_0=ruleXExpression();
 
                     state._fsp--;
@@ -14068,39 +14842,39 @@
 
                     }
 
-                    // InternalChartDSL.g:4907:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
-                    loop80:
+                    // InternalChartDSL.g:5211:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    loop92:
                     do {
-                        int alt80=2;
-                        int LA80_0 = input.LA(1);
+                        int alt92=2;
+                        int LA92_0 = input.LA(1);
 
-                        if ( (LA80_0==72) ) {
-                            alt80=1;
+                        if ( (LA92_0==82) ) {
+                            alt92=1;
                         }
 
 
-                        switch (alt80) {
+                        switch (alt92) {
                     	case 1 :
-                    	    // InternalChartDSL.g:4908:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalChartDSL.g:5212:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,72,FOLLOW_50); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,82,FOLLOW_63); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalChartDSL.g:4912:5: ( (lv_elements_5_0= ruleXExpression ) )
-                    	    // InternalChartDSL.g:4913:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalChartDSL.g:5216:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalChartDSL.g:5217:6: (lv_elements_5_0= ruleXExpression )
                     	    {
-                    	    // InternalChartDSL.g:4913:6: (lv_elements_5_0= ruleXExpression )
-                    	    // InternalChartDSL.g:4914:7: lv_elements_5_0= ruleXExpression
+                    	    // InternalChartDSL.g:5217:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalChartDSL.g:5218:7: lv_elements_5_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_81);
+                    	    pushFollow(FOLLOW_94);
                     	    lv_elements_5_0=ruleXExpression();
 
                     	    state._fsp--;
@@ -14129,7 +14903,7 @@
                     	    break;
 
                     	default :
-                    	    break loop80;
+                    	    break loop92;
                         }
                     } while (true);
 
@@ -14139,7 +14913,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
+            otherlv_6=(Token)match(input,16,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4());
@@ -14170,7 +14944,7 @@
 
 
     // $ANTLR start "entryRuleXListLiteral"
-    // InternalChartDSL.g:4941:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
+    // InternalChartDSL.g:5245:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
     public final EObject entryRuleXListLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -14178,8 +14952,8 @@
 
 
         try {
-            // InternalChartDSL.g:4941:53: (iv_ruleXListLiteral= ruleXListLiteral EOF )
-            // InternalChartDSL.g:4942:2: iv_ruleXListLiteral= ruleXListLiteral EOF
+            // InternalChartDSL.g:5245:53: (iv_ruleXListLiteral= ruleXListLiteral EOF )
+            // InternalChartDSL.g:5246:2: iv_ruleXListLiteral= ruleXListLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXListLiteralRule()); 
@@ -14210,7 +14984,7 @@
 
 
     // $ANTLR start "ruleXListLiteral"
-    // InternalChartDSL.g:4948:1: ruleXListLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) ;
+    // InternalChartDSL.g:5252:1: ruleXListLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) ;
     public final EObject ruleXListLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -14227,14 +15001,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:4954:2: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
-            // InternalChartDSL.g:4955:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            // InternalChartDSL.g:5258:2: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
+            // InternalChartDSL.g:5259:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
             {
-            // InternalChartDSL.g:4955:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
-            // InternalChartDSL.g:4956:3: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
+            // InternalChartDSL.g:5259:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            // InternalChartDSL.g:5260:3: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
             {
-            // InternalChartDSL.g:4956:3: ()
-            // InternalChartDSL.g:4957:4: 
+            // InternalChartDSL.g:5260:3: ()
+            // InternalChartDSL.g:5261:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14246,41 +15020,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,75,FOLLOW_51); if (state.failed) return current;
+            otherlv_1=(Token)match(input,85,FOLLOW_64); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,76,FOLLOW_52); if (state.failed) return current;
+            otherlv_2=(Token)match(input,86,FOLLOW_65); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
               		
             }
-            // InternalChartDSL.g:4971:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
-            int alt83=2;
-            int LA83_0 = input.LA(1);
+            // InternalChartDSL.g:5275:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            int alt95=2;
+            int LA95_0 = input.LA(1);
 
-            if ( ((LA83_0>=RULE_ID && LA83_0<=RULE_DECIMAL)||LA83_0==14||(LA83_0>=63 && LA83_0<=66)||LA83_0==71||(LA83_0>=75 && LA83_0<=76)||LA83_0==83||LA83_0==99||LA83_0==103||LA83_0==110||LA83_0==112||(LA83_0>=116 && LA83_0<=118)||(LA83_0>=121 && LA83_0<=130)||LA83_0==132) ) {
-                alt83=1;
+            if ( ((LA95_0>=RULE_STRING && LA95_0<=RULE_DECIMAL)||LA95_0==15||(LA95_0>=73 && LA95_0<=76)||LA95_0==81||(LA95_0>=85 && LA95_0<=86)||LA95_0==93||LA95_0==109||LA95_0==113||LA95_0==120||LA95_0==122||(LA95_0>=126 && LA95_0<=128)||(LA95_0>=131 && LA95_0<=140)||LA95_0==142) ) {
+                alt95=1;
             }
-            switch (alt83) {
+            switch (alt95) {
                 case 1 :
-                    // InternalChartDSL.g:4972:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalChartDSL.g:5276:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     {
-                    // InternalChartDSL.g:4972:4: ( (lv_elements_3_0= ruleXExpression ) )
-                    // InternalChartDSL.g:4973:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalChartDSL.g:5276:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalChartDSL.g:5277:5: (lv_elements_3_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:4973:5: (lv_elements_3_0= ruleXExpression )
-                    // InternalChartDSL.g:4974:6: lv_elements_3_0= ruleXExpression
+                    // InternalChartDSL.g:5277:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalChartDSL.g:5278:6: lv_elements_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_53);
+                    pushFollow(FOLLOW_66);
                     lv_elements_3_0=ruleXExpression();
 
                     state._fsp--;
@@ -14304,39 +15078,39 @@
 
                     }
 
-                    // InternalChartDSL.g:4991:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
-                    loop82:
+                    // InternalChartDSL.g:5295:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    loop94:
                     do {
-                        int alt82=2;
-                        int LA82_0 = input.LA(1);
+                        int alt94=2;
+                        int LA94_0 = input.LA(1);
 
-                        if ( (LA82_0==72) ) {
-                            alt82=1;
+                        if ( (LA94_0==82) ) {
+                            alt94=1;
                         }
 
 
-                        switch (alt82) {
+                        switch (alt94) {
                     	case 1 :
-                    	    // InternalChartDSL.g:4992:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalChartDSL.g:5296:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,72,FOLLOW_50); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,82,FOLLOW_63); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalChartDSL.g:4996:5: ( (lv_elements_5_0= ruleXExpression ) )
-                    	    // InternalChartDSL.g:4997:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalChartDSL.g:5300:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalChartDSL.g:5301:6: (lv_elements_5_0= ruleXExpression )
                     	    {
-                    	    // InternalChartDSL.g:4997:6: (lv_elements_5_0= ruleXExpression )
-                    	    // InternalChartDSL.g:4998:7: lv_elements_5_0= ruleXExpression
+                    	    // InternalChartDSL.g:5301:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalChartDSL.g:5302:7: lv_elements_5_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_53);
+                    	    pushFollow(FOLLOW_66);
                     	    lv_elements_5_0=ruleXExpression();
 
                     	    state._fsp--;
@@ -14365,7 +15139,7 @@
                     	    break;
 
                     	default :
-                    	    break loop82;
+                    	    break loop94;
                         }
                     } while (true);
 
@@ -14375,7 +15149,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
+            otherlv_6=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
@@ -14406,7 +15180,7 @@
 
 
     // $ANTLR start "entryRuleXClosure"
-    // InternalChartDSL.g:5025:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
+    // InternalChartDSL.g:5329:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
     public final EObject entryRuleXClosure() throws RecognitionException {
         EObject current = null;
 
@@ -14414,8 +15188,8 @@
 
 
         try {
-            // InternalChartDSL.g:5025:49: (iv_ruleXClosure= ruleXClosure EOF )
-            // InternalChartDSL.g:5026:2: iv_ruleXClosure= ruleXClosure EOF
+            // InternalChartDSL.g:5329:49: (iv_ruleXClosure= ruleXClosure EOF )
+            // InternalChartDSL.g:5330:2: iv_ruleXClosure= ruleXClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXClosureRule()); 
@@ -14446,7 +15220,7 @@
 
 
     // $ANTLR start "ruleXClosure"
-    // InternalChartDSL.g:5032:1: ruleXClosure returns [EObject current=null] : ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) ;
+    // InternalChartDSL.g:5336:1: ruleXClosure returns [EObject current=null] : ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) ;
     public final EObject ruleXClosure() throws RecognitionException {
         EObject current = null;
 
@@ -14465,20 +15239,20 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:5038:2: ( ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) )
-            // InternalChartDSL.g:5039:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+            // InternalChartDSL.g:5342:2: ( ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) )
+            // InternalChartDSL.g:5343:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
             {
-            // InternalChartDSL.g:5039:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
-            // InternalChartDSL.g:5040:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']'
+            // InternalChartDSL.g:5343:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+            // InternalChartDSL.g:5344:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']'
             {
-            // InternalChartDSL.g:5040:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
-            // InternalChartDSL.g:5041:4: ( ( () '[' ) )=> ( () otherlv_1= '[' )
+            // InternalChartDSL.g:5344:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
+            // InternalChartDSL.g:5345:4: ( ( () '[' ) )=> ( () otherlv_1= '[' )
             {
-            // InternalChartDSL.g:5047:4: ( () otherlv_1= '[' )
-            // InternalChartDSL.g:5048:5: () otherlv_1= '['
+            // InternalChartDSL.g:5351:4: ( () otherlv_1= '[' )
+            // InternalChartDSL.g:5352:5: () otherlv_1= '['
             {
-            // InternalChartDSL.g:5048:5: ()
-            // InternalChartDSL.g:5049:6: 
+            // InternalChartDSL.g:5352:5: ()
+            // InternalChartDSL.g:5353:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14490,7 +15264,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,76,FOLLOW_82); if (state.failed) return current;
+            otherlv_1=(Token)match(input,86,FOLLOW_95); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
@@ -14502,39 +15276,39 @@
 
             }
 
-            // InternalChartDSL.g:5061:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
-            int alt86=2;
-            alt86 = dfa86.predict(input);
-            switch (alt86) {
+            // InternalChartDSL.g:5365:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
+            int alt98=2;
+            alt98 = dfa98.predict(input);
+            switch (alt98) {
                 case 1 :
-                    // InternalChartDSL.g:5062:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    // InternalChartDSL.g:5366:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
                     {
-                    // InternalChartDSL.g:5085:4: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
-                    // InternalChartDSL.g:5086:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
+                    // InternalChartDSL.g:5389:4: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    // InternalChartDSL.g:5390:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
                     {
-                    // InternalChartDSL.g:5086:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
-                    int alt85=2;
-                    int LA85_0 = input.LA(1);
+                    // InternalChartDSL.g:5390:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
+                    int alt97=2;
+                    int LA97_0 = input.LA(1);
 
-                    if ( (LA85_0==RULE_ID||LA85_0==71||LA85_0==96) ) {
-                        alt85=1;
+                    if ( (LA97_0==RULE_ID||LA97_0==81||LA97_0==106) ) {
+                        alt97=1;
                     }
-                    switch (alt85) {
+                    switch (alt97) {
                         case 1 :
-                            // InternalChartDSL.g:5087:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            // InternalChartDSL.g:5391:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
                             {
-                            // InternalChartDSL.g:5087:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
-                            // InternalChartDSL.g:5088:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            // InternalChartDSL.g:5391:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
+                            // InternalChartDSL.g:5392:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
                             {
-                            // InternalChartDSL.g:5088:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
-                            // InternalChartDSL.g:5089:8: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
+                            // InternalChartDSL.g:5392:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            // InternalChartDSL.g:5393:8: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_83);
+                            pushFollow(FOLLOW_96);
                             lv_declaredFormalParameters_2_0=ruleJvmFormalParameter();
 
                             state._fsp--;
@@ -14558,39 +15332,39 @@
 
                             }
 
-                            // InternalChartDSL.g:5106:6: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
-                            loop84:
+                            // InternalChartDSL.g:5410:6: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            loop96:
                             do {
-                                int alt84=2;
-                                int LA84_0 = input.LA(1);
+                                int alt96=2;
+                                int LA96_0 = input.LA(1);
 
-                                if ( (LA84_0==72) ) {
-                                    alt84=1;
+                                if ( (LA96_0==82) ) {
+                                    alt96=1;
                                 }
 
 
-                                switch (alt84) {
+                                switch (alt96) {
                             	case 1 :
-                            	    // InternalChartDSL.g:5107:7: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    // InternalChartDSL.g:5411:7: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
                             	    {
-                            	    otherlv_3=(Token)match(input,72,FOLLOW_63); if (state.failed) return current;
+                            	    otherlv_3=(Token)match(input,82,FOLLOW_76); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
                             	      						
                             	    }
-                            	    // InternalChartDSL.g:5111:7: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
-                            	    // InternalChartDSL.g:5112:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    // InternalChartDSL.g:5415:7: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    // InternalChartDSL.g:5416:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
                             	    {
-                            	    // InternalChartDSL.g:5112:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
-                            	    // InternalChartDSL.g:5113:9: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
+                            	    // InternalChartDSL.g:5416:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    // InternalChartDSL.g:5417:9: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_83);
+                            	    pushFollow(FOLLOW_96);
                             	    lv_declaredFormalParameters_4_0=ruleJvmFormalParameter();
 
                             	    state._fsp--;
@@ -14619,7 +15393,7 @@
                             	    break;
 
                             	default :
-                            	    break loop84;
+                            	    break loop96;
                                 }
                             } while (true);
 
@@ -14629,13 +15403,13 @@
 
                     }
 
-                    // InternalChartDSL.g:5132:5: ( (lv_explicitSyntax_5_0= '|' ) )
-                    // InternalChartDSL.g:5133:6: (lv_explicitSyntax_5_0= '|' )
+                    // InternalChartDSL.g:5436:5: ( (lv_explicitSyntax_5_0= '|' ) )
+                    // InternalChartDSL.g:5437:6: (lv_explicitSyntax_5_0= '|' )
                     {
-                    // InternalChartDSL.g:5133:6: (lv_explicitSyntax_5_0= '|' )
-                    // InternalChartDSL.g:5134:7: lv_explicitSyntax_5_0= '|'
+                    // InternalChartDSL.g:5437:6: (lv_explicitSyntax_5_0= '|' )
+                    // InternalChartDSL.g:5438:7: lv_explicitSyntax_5_0= '|'
                     {
-                    lv_explicitSyntax_5_0=(Token)match(input,109,FOLLOW_84); if (state.failed) return current;
+                    lv_explicitSyntax_5_0=(Token)match(input,119,FOLLOW_97); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
@@ -14664,18 +15438,18 @@
 
             }
 
-            // InternalChartDSL.g:5148:3: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
-            // InternalChartDSL.g:5149:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            // InternalChartDSL.g:5452:3: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
+            // InternalChartDSL.g:5453:4: (lv_expression_6_0= ruleXExpressionInClosure )
             {
-            // InternalChartDSL.g:5149:4: (lv_expression_6_0= ruleXExpressionInClosure )
-            // InternalChartDSL.g:5150:5: lv_expression_6_0= ruleXExpressionInClosure
+            // InternalChartDSL.g:5453:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            // InternalChartDSL.g:5454:5: lv_expression_6_0= ruleXExpressionInClosure
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_85);
+            pushFollow(FOLLOW_98);
             lv_expression_6_0=ruleXExpressionInClosure();
 
             state._fsp--;
@@ -14699,7 +15473,7 @@
 
             }
 
-            otherlv_7=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
+            otherlv_7=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
@@ -14730,7 +15504,7 @@
 
 
     // $ANTLR start "entryRuleXExpressionInClosure"
-    // InternalChartDSL.g:5175:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
+    // InternalChartDSL.g:5479:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
     public final EObject entryRuleXExpressionInClosure() throws RecognitionException {
         EObject current = null;
 
@@ -14738,8 +15512,8 @@
 
 
         try {
-            // InternalChartDSL.g:5175:61: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
-            // InternalChartDSL.g:5176:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
+            // InternalChartDSL.g:5479:61: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
+            // InternalChartDSL.g:5480:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionInClosureRule()); 
@@ -14770,7 +15544,7 @@
 
 
     // $ANTLR start "ruleXExpressionInClosure"
-    // InternalChartDSL.g:5182:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) ;
+    // InternalChartDSL.g:5486:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) ;
     public final EObject ruleXExpressionInClosure() throws RecognitionException {
         EObject current = null;
 
@@ -14782,14 +15556,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:5188:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
-            // InternalChartDSL.g:5189:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            // InternalChartDSL.g:5492:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
+            // InternalChartDSL.g:5493:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
             {
-            // InternalChartDSL.g:5189:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
-            // InternalChartDSL.g:5190:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            // InternalChartDSL.g:5493:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            // InternalChartDSL.g:5494:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
             {
-            // InternalChartDSL.g:5190:3: ()
-            // InternalChartDSL.g:5191:4: 
+            // InternalChartDSL.g:5494:3: ()
+            // InternalChartDSL.g:5495:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14801,33 +15575,33 @@
 
             }
 
-            // InternalChartDSL.g:5197:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
-            loop88:
+            // InternalChartDSL.g:5501:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            loop100:
             do {
-                int alt88=2;
-                int LA88_0 = input.LA(1);
+                int alt100=2;
+                int LA100_0 = input.LA(1);
 
-                if ( ((LA88_0>=RULE_ID && LA88_0<=RULE_DECIMAL)||LA88_0==14||(LA88_0>=63 && LA88_0<=66)||LA88_0==71||(LA88_0>=75 && LA88_0<=76)||LA88_0==83||LA88_0==99||LA88_0==103||LA88_0==110||LA88_0==112||(LA88_0>=116 && LA88_0<=130)||LA88_0==132) ) {
-                    alt88=1;
+                if ( ((LA100_0>=RULE_STRING && LA100_0<=RULE_DECIMAL)||LA100_0==15||(LA100_0>=73 && LA100_0<=76)||LA100_0==81||(LA100_0>=85 && LA100_0<=86)||LA100_0==93||LA100_0==109||LA100_0==113||LA100_0==120||LA100_0==122||(LA100_0>=126 && LA100_0<=140)||LA100_0==142) ) {
+                    alt100=1;
                 }
 
 
-                switch (alt88) {
+                switch (alt100) {
             	case 1 :
-            	    // InternalChartDSL.g:5198:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
+            	    // InternalChartDSL.g:5502:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
             	    {
-            	    // InternalChartDSL.g:5198:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
-            	    // InternalChartDSL.g:5199:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalChartDSL.g:5502:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalChartDSL.g:5503:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
             	    {
-            	    // InternalChartDSL.g:5199:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
-            	    // InternalChartDSL.g:5200:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
+            	    // InternalChartDSL.g:5503:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalChartDSL.g:5504:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_86);
+            	    pushFollow(FOLLOW_99);
             	    lv_expressions_1_0=ruleXExpressionOrVarDeclaration();
 
             	    state._fsp--;
@@ -14851,18 +15625,18 @@
 
             	    }
 
-            	    // InternalChartDSL.g:5217:4: (otherlv_2= ';' )?
-            	    int alt87=2;
-            	    int LA87_0 = input.LA(1);
+            	    // InternalChartDSL.g:5521:4: (otherlv_2= ';' )?
+            	    int alt99=2;
+            	    int LA99_0 = input.LA(1);
 
-            	    if ( (LA87_0==69) ) {
-            	        alt87=1;
+            	    if ( (LA99_0==79) ) {
+            	        alt99=1;
             	    }
-            	    switch (alt87) {
+            	    switch (alt99) {
             	        case 1 :
-            	            // InternalChartDSL.g:5218:5: otherlv_2= ';'
+            	            // InternalChartDSL.g:5522:5: otherlv_2= ';'
             	            {
-            	            otherlv_2=(Token)match(input,69,FOLLOW_87); if (state.failed) return current;
+            	            otherlv_2=(Token)match(input,79,FOLLOW_100); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              					newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
@@ -14879,7 +15653,7 @@
             	    break;
 
             	default :
-            	    break loop88;
+            	    break loop100;
                 }
             } while (true);
 
@@ -14908,7 +15682,7 @@
 
 
     // $ANTLR start "entryRuleXShortClosure"
-    // InternalChartDSL.g:5228:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
+    // InternalChartDSL.g:5532:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
     public final EObject entryRuleXShortClosure() throws RecognitionException {
         EObject current = null;
 
@@ -14916,8 +15690,8 @@
 
 
         try {
-            // InternalChartDSL.g:5228:54: (iv_ruleXShortClosure= ruleXShortClosure EOF )
-            // InternalChartDSL.g:5229:2: iv_ruleXShortClosure= ruleXShortClosure EOF
+            // InternalChartDSL.g:5532:54: (iv_ruleXShortClosure= ruleXShortClosure EOF )
+            // InternalChartDSL.g:5533:2: iv_ruleXShortClosure= ruleXShortClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXShortClosureRule()); 
@@ -14948,7 +15722,7 @@
 
 
     // $ANTLR start "ruleXShortClosure"
-    // InternalChartDSL.g:5235:1: ruleXShortClosure returns [EObject current=null] : ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) ;
+    // InternalChartDSL.g:5539:1: ruleXShortClosure returns [EObject current=null] : ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXShortClosure() throws RecognitionException {
         EObject current = null;
 
@@ -14965,20 +15739,20 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:5241:2: ( ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) )
-            // InternalChartDSL.g:5242:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:5545:2: ( ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) )
+            // InternalChartDSL.g:5546:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
             {
-            // InternalChartDSL.g:5242:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
-            // InternalChartDSL.g:5243:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalChartDSL.g:5546:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:5547:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) )
             {
-            // InternalChartDSL.g:5243:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
-            // InternalChartDSL.g:5244:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            // InternalChartDSL.g:5547:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
+            // InternalChartDSL.g:5548:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
             {
-            // InternalChartDSL.g:5269:4: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
-            // InternalChartDSL.g:5270:5: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
+            // InternalChartDSL.g:5573:4: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            // InternalChartDSL.g:5574:5: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
             {
-            // InternalChartDSL.g:5270:5: ()
-            // InternalChartDSL.g:5271:6: 
+            // InternalChartDSL.g:5574:5: ()
+            // InternalChartDSL.g:5575:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14990,29 +15764,29 @@
 
             }
 
-            // InternalChartDSL.g:5277:5: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
-            int alt90=2;
-            int LA90_0 = input.LA(1);
+            // InternalChartDSL.g:5581:5: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
+            int alt102=2;
+            int LA102_0 = input.LA(1);
 
-            if ( (LA90_0==RULE_ID||LA90_0==71||LA90_0==96) ) {
-                alt90=1;
+            if ( (LA102_0==RULE_ID||LA102_0==81||LA102_0==106) ) {
+                alt102=1;
             }
-            switch (alt90) {
+            switch (alt102) {
                 case 1 :
-                    // InternalChartDSL.g:5278:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    // InternalChartDSL.g:5582:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
                     {
-                    // InternalChartDSL.g:5278:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
-                    // InternalChartDSL.g:5279:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    // InternalChartDSL.g:5582:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
+                    // InternalChartDSL.g:5583:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
                     {
-                    // InternalChartDSL.g:5279:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
-                    // InternalChartDSL.g:5280:8: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
+                    // InternalChartDSL.g:5583:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    // InternalChartDSL.g:5584:8: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
                     {
                     if ( state.backtracking==0 ) {
 
                       								newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0());
                       							
                     }
-                    pushFollow(FOLLOW_83);
+                    pushFollow(FOLLOW_96);
                     lv_declaredFormalParameters_1_0=ruleJvmFormalParameter();
 
                     state._fsp--;
@@ -15036,39 +15810,39 @@
 
                     }
 
-                    // InternalChartDSL.g:5297:6: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
-                    loop89:
+                    // InternalChartDSL.g:5601:6: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    loop101:
                     do {
-                        int alt89=2;
-                        int LA89_0 = input.LA(1);
+                        int alt101=2;
+                        int LA101_0 = input.LA(1);
 
-                        if ( (LA89_0==72) ) {
-                            alt89=1;
+                        if ( (LA101_0==82) ) {
+                            alt101=1;
                         }
 
 
-                        switch (alt89) {
+                        switch (alt101) {
                     	case 1 :
-                    	    // InternalChartDSL.g:5298:7: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    // InternalChartDSL.g:5602:7: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
                     	    {
-                    	    otherlv_2=(Token)match(input,72,FOLLOW_63); if (state.failed) return current;
+                    	    otherlv_2=(Token)match(input,82,FOLLOW_76); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      							newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
                     	      						
                     	    }
-                    	    // InternalChartDSL.g:5302:7: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
-                    	    // InternalChartDSL.g:5303:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    // InternalChartDSL.g:5606:7: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    // InternalChartDSL.g:5607:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
                     	    {
-                    	    // InternalChartDSL.g:5303:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
-                    	    // InternalChartDSL.g:5304:9: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
+                    	    // InternalChartDSL.g:5607:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    // InternalChartDSL.g:5608:9: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      									newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0());
                     	      								
                     	    }
-                    	    pushFollow(FOLLOW_83);
+                    	    pushFollow(FOLLOW_96);
                     	    lv_declaredFormalParameters_3_0=ruleJvmFormalParameter();
 
                     	    state._fsp--;
@@ -15097,7 +15871,7 @@
                     	    break;
 
                     	default :
-                    	    break loop89;
+                    	    break loop101;
                         }
                     } while (true);
 
@@ -15107,13 +15881,13 @@
 
             }
 
-            // InternalChartDSL.g:5323:5: ( (lv_explicitSyntax_4_0= '|' ) )
-            // InternalChartDSL.g:5324:6: (lv_explicitSyntax_4_0= '|' )
+            // InternalChartDSL.g:5627:5: ( (lv_explicitSyntax_4_0= '|' ) )
+            // InternalChartDSL.g:5628:6: (lv_explicitSyntax_4_0= '|' )
             {
-            // InternalChartDSL.g:5324:6: (lv_explicitSyntax_4_0= '|' )
-            // InternalChartDSL.g:5325:7: lv_explicitSyntax_4_0= '|'
+            // InternalChartDSL.g:5628:6: (lv_explicitSyntax_4_0= '|' )
+            // InternalChartDSL.g:5629:7: lv_explicitSyntax_4_0= '|'
             {
-            lv_explicitSyntax_4_0=(Token)match(input,109,FOLLOW_50); if (state.failed) return current;
+            lv_explicitSyntax_4_0=(Token)match(input,119,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               							newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
@@ -15139,11 +15913,11 @@
 
             }
 
-            // InternalChartDSL.g:5339:3: ( (lv_expression_5_0= ruleXExpression ) )
-            // InternalChartDSL.g:5340:4: (lv_expression_5_0= ruleXExpression )
+            // InternalChartDSL.g:5643:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalChartDSL.g:5644:4: (lv_expression_5_0= ruleXExpression )
             {
-            // InternalChartDSL.g:5340:4: (lv_expression_5_0= ruleXExpression )
-            // InternalChartDSL.g:5341:5: lv_expression_5_0= ruleXExpression
+            // InternalChartDSL.g:5644:4: (lv_expression_5_0= ruleXExpression )
+            // InternalChartDSL.g:5645:5: lv_expression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -15199,7 +15973,7 @@
 
 
     // $ANTLR start "entryRuleXParenthesizedExpression"
-    // InternalChartDSL.g:5362:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
+    // InternalChartDSL.g:5666:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
     public final EObject entryRuleXParenthesizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15207,8 +15981,8 @@
 
 
         try {
-            // InternalChartDSL.g:5362:65: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
-            // InternalChartDSL.g:5363:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
+            // InternalChartDSL.g:5666:65: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
+            // InternalChartDSL.g:5667:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXParenthesizedExpressionRule()); 
@@ -15239,7 +16013,7 @@
 
 
     // $ANTLR start "ruleXParenthesizedExpression"
-    // InternalChartDSL.g:5369:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
+    // InternalChartDSL.g:5673:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
     public final EObject ruleXParenthesizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15252,13 +16026,13 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:5375:2: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
-            // InternalChartDSL.g:5376:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            // InternalChartDSL.g:5679:2: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
+            // InternalChartDSL.g:5680:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
             {
-            // InternalChartDSL.g:5376:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
-            // InternalChartDSL.g:5377:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
+            // InternalChartDSL.g:5680:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            // InternalChartDSL.g:5681:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
             {
-            otherlv_0=(Token)match(input,71,FOLLOW_50); if (state.failed) return current;
+            otherlv_0=(Token)match(input,81,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
@@ -15269,7 +16043,7 @@
               			newCompositeNode(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1());
               		
             }
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_61);
             this_XExpression_1=ruleXExpression();
 
             state._fsp--;
@@ -15280,7 +16054,7 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            otherlv_2=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
+            otherlv_2=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
@@ -15311,7 +16085,7 @@
 
 
     // $ANTLR start "entryRuleXIfExpression"
-    // InternalChartDSL.g:5397:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
+    // InternalChartDSL.g:5701:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
     public final EObject entryRuleXIfExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15319,8 +16093,8 @@
 
 
         try {
-            // InternalChartDSL.g:5397:54: (iv_ruleXIfExpression= ruleXIfExpression EOF )
-            // InternalChartDSL.g:5398:2: iv_ruleXIfExpression= ruleXIfExpression EOF
+            // InternalChartDSL.g:5701:54: (iv_ruleXIfExpression= ruleXIfExpression EOF )
+            // InternalChartDSL.g:5702:2: iv_ruleXIfExpression= ruleXIfExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXIfExpressionRule()); 
@@ -15351,7 +16125,7 @@
 
 
     // $ANTLR start "ruleXIfExpression"
-    // InternalChartDSL.g:5404:1: ruleXIfExpression returns [EObject current=null] : ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) ;
+    // InternalChartDSL.g:5708:1: ruleXIfExpression returns [EObject current=null] : ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) ;
     public final EObject ruleXIfExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15370,14 +16144,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:5410:2: ( ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) )
-            // InternalChartDSL.g:5411:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+            // InternalChartDSL.g:5714:2: ( ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) )
+            // InternalChartDSL.g:5715:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
             {
-            // InternalChartDSL.g:5411:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
-            // InternalChartDSL.g:5412:3: () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+            // InternalChartDSL.g:5715:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+            // InternalChartDSL.g:5716:3: () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
             {
-            // InternalChartDSL.g:5412:3: ()
-            // InternalChartDSL.g:5413:4: 
+            // InternalChartDSL.g:5716:3: ()
+            // InternalChartDSL.g:5717:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15389,30 +16163,30 @@
 
             }
 
-            otherlv_1=(Token)match(input,110,FOLLOW_88); if (state.failed) return current;
+            otherlv_1=(Token)match(input,120,FOLLOW_101); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,71,FOLLOW_50); if (state.failed) return current;
+            otherlv_2=(Token)match(input,81,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalChartDSL.g:5427:3: ( (lv_if_3_0= ruleXExpression ) )
-            // InternalChartDSL.g:5428:4: (lv_if_3_0= ruleXExpression )
+            // InternalChartDSL.g:5731:3: ( (lv_if_3_0= ruleXExpression ) )
+            // InternalChartDSL.g:5732:4: (lv_if_3_0= ruleXExpression )
             {
-            // InternalChartDSL.g:5428:4: (lv_if_3_0= ruleXExpression )
-            // InternalChartDSL.g:5429:5: lv_if_3_0= ruleXExpression
+            // InternalChartDSL.g:5732:4: (lv_if_3_0= ruleXExpression )
+            // InternalChartDSL.g:5733:5: lv_if_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0());
               				
             }
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_61);
             lv_if_3_0=ruleXExpression();
 
             state._fsp--;
@@ -15436,24 +16210,24 @@
 
             }
 
-            otherlv_4=(Token)match(input,73,FOLLOW_50); if (state.failed) return current;
+            otherlv_4=(Token)match(input,83,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
               		
             }
-            // InternalChartDSL.g:5450:3: ( (lv_then_5_0= ruleXExpression ) )
-            // InternalChartDSL.g:5451:4: (lv_then_5_0= ruleXExpression )
+            // InternalChartDSL.g:5754:3: ( (lv_then_5_0= ruleXExpression ) )
+            // InternalChartDSL.g:5755:4: (lv_then_5_0= ruleXExpression )
             {
-            // InternalChartDSL.g:5451:4: (lv_then_5_0= ruleXExpression )
-            // InternalChartDSL.g:5452:5: lv_then_5_0= ruleXExpression
+            // InternalChartDSL.g:5755:4: (lv_then_5_0= ruleXExpression )
+            // InternalChartDSL.g:5756:5: lv_then_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0());
               				
             }
-            pushFollow(FOLLOW_89);
+            pushFollow(FOLLOW_102);
             lv_then_5_0=ruleXExpression();
 
             state._fsp--;
@@ -15477,25 +16251,25 @@
 
             }
 
-            // InternalChartDSL.g:5469:3: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
-            int alt91=2;
-            int LA91_0 = input.LA(1);
+            // InternalChartDSL.g:5773:3: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+            int alt103=2;
+            int LA103_0 = input.LA(1);
 
-            if ( (LA91_0==111) ) {
-                int LA91_1 = input.LA(2);
+            if ( (LA103_0==121) ) {
+                int LA103_1 = input.LA(2);
 
                 if ( (synpred31_InternalChartDSL()) ) {
-                    alt91=1;
+                    alt103=1;
                 }
             }
-            switch (alt91) {
+            switch (alt103) {
                 case 1 :
-                    // InternalChartDSL.g:5470:4: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
+                    // InternalChartDSL.g:5774:4: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
                     {
-                    // InternalChartDSL.g:5470:4: ( ( 'else' )=>otherlv_6= 'else' )
-                    // InternalChartDSL.g:5471:5: ( 'else' )=>otherlv_6= 'else'
+                    // InternalChartDSL.g:5774:4: ( ( 'else' )=>otherlv_6= 'else' )
+                    // InternalChartDSL.g:5775:5: ( 'else' )=>otherlv_6= 'else'
                     {
-                    otherlv_6=(Token)match(input,111,FOLLOW_50); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,121,FOLLOW_63); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
@@ -15504,11 +16278,11 @@
 
                     }
 
-                    // InternalChartDSL.g:5477:4: ( (lv_else_7_0= ruleXExpression ) )
-                    // InternalChartDSL.g:5478:5: (lv_else_7_0= ruleXExpression )
+                    // InternalChartDSL.g:5781:4: ( (lv_else_7_0= ruleXExpression ) )
+                    // InternalChartDSL.g:5782:5: (lv_else_7_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:5478:5: (lv_else_7_0= ruleXExpression )
-                    // InternalChartDSL.g:5479:6: lv_else_7_0= ruleXExpression
+                    // InternalChartDSL.g:5782:5: (lv_else_7_0= ruleXExpression )
+                    // InternalChartDSL.g:5783:6: lv_else_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15570,7 +16344,7 @@
 
 
     // $ANTLR start "entryRuleXSwitchExpression"
-    // InternalChartDSL.g:5501:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
+    // InternalChartDSL.g:5805:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
     public final EObject entryRuleXSwitchExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15578,8 +16352,8 @@
 
 
         try {
-            // InternalChartDSL.g:5501:58: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
-            // InternalChartDSL.g:5502:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
+            // InternalChartDSL.g:5805:58: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
+            // InternalChartDSL.g:5806:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSwitchExpressionRule()); 
@@ -15610,7 +16384,7 @@
 
 
     // $ANTLR start "ruleXSwitchExpression"
-    // InternalChartDSL.g:5508:1: ruleXSwitchExpression returns [EObject current=null] : ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) ;
+    // InternalChartDSL.g:5812:1: ruleXSwitchExpression returns [EObject current=null] : ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) ;
     public final EObject ruleXSwitchExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15640,14 +16414,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:5514:2: ( ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) )
-            // InternalChartDSL.g:5515:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+            // InternalChartDSL.g:5818:2: ( ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) )
+            // InternalChartDSL.g:5819:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
             {
-            // InternalChartDSL.g:5515:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
-            // InternalChartDSL.g:5516:3: () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}'
+            // InternalChartDSL.g:5819:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+            // InternalChartDSL.g:5820:3: () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}'
             {
-            // InternalChartDSL.g:5516:3: ()
-            // InternalChartDSL.g:5517:4: 
+            // InternalChartDSL.g:5820:3: ()
+            // InternalChartDSL.g:5821:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15659,46 +16433,46 @@
 
             }
 
-            otherlv_1=(Token)match(input,112,FOLLOW_90); if (state.failed) return current;
+            otherlv_1=(Token)match(input,122,FOLLOW_103); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
               		
             }
-            // InternalChartDSL.g:5527:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )
-            int alt93=2;
-            alt93 = dfa93.predict(input);
-            switch (alt93) {
+            // InternalChartDSL.g:5831:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )
+            int alt105=2;
+            alt105 = dfa105.predict(input);
+            switch (alt105) {
                 case 1 :
-                    // InternalChartDSL.g:5528:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    // InternalChartDSL.g:5832:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
                     {
-                    // InternalChartDSL.g:5528:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
-                    // InternalChartDSL.g:5529:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')'
+                    // InternalChartDSL.g:5832:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    // InternalChartDSL.g:5833:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')'
                     {
-                    // InternalChartDSL.g:5529:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
-                    // InternalChartDSL.g:5530:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    // InternalChartDSL.g:5833:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+                    // InternalChartDSL.g:5834:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
                     {
-                    // InternalChartDSL.g:5540:6: (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
-                    // InternalChartDSL.g:5541:7: otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+                    // InternalChartDSL.g:5844:6: (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    // InternalChartDSL.g:5845:7: otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
                     {
-                    otherlv_2=(Token)match(input,71,FOLLOW_63); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,81,FOLLOW_76); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(otherlv_2, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0());
                       						
                     }
-                    // InternalChartDSL.g:5545:7: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
-                    // InternalChartDSL.g:5546:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    // InternalChartDSL.g:5849:7: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+                    // InternalChartDSL.g:5850:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
                     {
-                    // InternalChartDSL.g:5546:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
-                    // InternalChartDSL.g:5547:9: lv_declaredParam_3_0= ruleJvmFormalParameter
+                    // InternalChartDSL.g:5850:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    // InternalChartDSL.g:5851:9: lv_declaredParam_3_0= ruleJvmFormalParameter
                     {
                     if ( state.backtracking==0 ) {
 
                       									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0());
                       								
                     }
-                    pushFollow(FOLLOW_91);
+                    pushFollow(FOLLOW_104);
                     lv_declaredParam_3_0=ruleJvmFormalParameter();
 
                     state._fsp--;
@@ -15722,7 +16496,7 @@
 
                     }
 
-                    otherlv_4=(Token)match(input,113,FOLLOW_50); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,123,FOLLOW_63); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(otherlv_4, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2());
@@ -15734,18 +16508,18 @@
 
                     }
 
-                    // InternalChartDSL.g:5570:5: ( (lv_switch_5_0= ruleXExpression ) )
-                    // InternalChartDSL.g:5571:6: (lv_switch_5_0= ruleXExpression )
+                    // InternalChartDSL.g:5874:5: ( (lv_switch_5_0= ruleXExpression ) )
+                    // InternalChartDSL.g:5875:6: (lv_switch_5_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:5571:6: (lv_switch_5_0= ruleXExpression )
-                    // InternalChartDSL.g:5572:7: lv_switch_5_0= ruleXExpression
+                    // InternalChartDSL.g:5875:6: (lv_switch_5_0= ruleXExpression )
+                    // InternalChartDSL.g:5876:7: lv_switch_5_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0());
                       						
                     }
-                    pushFollow(FOLLOW_48);
+                    pushFollow(FOLLOW_61);
                     lv_switch_5_0=ruleXExpression();
 
                     state._fsp--;
@@ -15769,7 +16543,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,73,FOLLOW_24); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,83,FOLLOW_6); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2());
@@ -15782,33 +16556,33 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:5595:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    // InternalChartDSL.g:5899:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
                     {
-                    // InternalChartDSL.g:5595:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
-                    // InternalChartDSL.g:5596:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) )
+                    // InternalChartDSL.g:5899:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    // InternalChartDSL.g:5900:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) )
                     {
-                    // InternalChartDSL.g:5596:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?
-                    int alt92=2;
-                    alt92 = dfa92.predict(input);
-                    switch (alt92) {
+                    // InternalChartDSL.g:5900:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?
+                    int alt104=2;
+                    alt104 = dfa104.predict(input);
+                    switch (alt104) {
                         case 1 :
-                            // InternalChartDSL.g:5597:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            // InternalChartDSL.g:5901:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
                             {
-                            // InternalChartDSL.g:5606:6: ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
-                            // InternalChartDSL.g:5607:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':'
+                            // InternalChartDSL.g:5910:6: ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            // InternalChartDSL.g:5911:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':'
                             {
-                            // InternalChartDSL.g:5607:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) )
-                            // InternalChartDSL.g:5608:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            // InternalChartDSL.g:5911:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) )
+                            // InternalChartDSL.g:5912:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
                             {
-                            // InternalChartDSL.g:5608:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
-                            // InternalChartDSL.g:5609:9: lv_declaredParam_7_0= ruleJvmFormalParameter
+                            // InternalChartDSL.g:5912:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            // InternalChartDSL.g:5913:9: lv_declaredParam_7_0= ruleJvmFormalParameter
                             {
                             if ( state.backtracking==0 ) {
 
                               									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0());
                               								
                             }
-                            pushFollow(FOLLOW_91);
+                            pushFollow(FOLLOW_104);
                             lv_declaredParam_7_0=ruleJvmFormalParameter();
 
                             state._fsp--;
@@ -15832,7 +16606,7 @@
 
                             }
 
-                            otherlv_8=(Token)match(input,113,FOLLOW_50); if (state.failed) return current;
+                            otherlv_8=(Token)match(input,123,FOLLOW_63); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(otherlv_8, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1());
@@ -15847,18 +16621,18 @@
 
                     }
 
-                    // InternalChartDSL.g:5632:5: ( (lv_switch_9_0= ruleXExpression ) )
-                    // InternalChartDSL.g:5633:6: (lv_switch_9_0= ruleXExpression )
+                    // InternalChartDSL.g:5936:5: ( (lv_switch_9_0= ruleXExpression ) )
+                    // InternalChartDSL.g:5937:6: (lv_switch_9_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:5633:6: (lv_switch_9_0= ruleXExpression )
-                    // InternalChartDSL.g:5634:7: lv_switch_9_0= ruleXExpression
+                    // InternalChartDSL.g:5937:6: (lv_switch_9_0= ruleXExpression )
+                    // InternalChartDSL.g:5938:7: lv_switch_9_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0());
                       						
                     }
-                    pushFollow(FOLLOW_24);
+                    pushFollow(FOLLOW_6);
                     lv_switch_9_0=ruleXExpression();
 
                     state._fsp--;
@@ -15891,36 +16665,36 @@
 
             }
 
-            otherlv_10=(Token)match(input,14,FOLLOW_92); if (state.failed) return current;
+            otherlv_10=(Token)match(input,15,FOLLOW_105); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
               		
             }
-            // InternalChartDSL.g:5657:3: ( (lv_cases_11_0= ruleXCasePart ) )*
-            loop94:
+            // InternalChartDSL.g:5961:3: ( (lv_cases_11_0= ruleXCasePart ) )*
+            loop106:
             do {
-                int alt94=2;
-                int LA94_0 = input.LA(1);
+                int alt106=2;
+                int LA106_0 = input.LA(1);
 
-                if ( (LA94_0==RULE_ID||(LA94_0>=71 && LA94_0<=72)||LA94_0==96||LA94_0==113||LA94_0==115) ) {
-                    alt94=1;
+                if ( (LA106_0==RULE_ID||(LA106_0>=81 && LA106_0<=82)||LA106_0==106||LA106_0==123||LA106_0==125) ) {
+                    alt106=1;
                 }
 
 
-                switch (alt94) {
+                switch (alt106) {
             	case 1 :
-            	    // InternalChartDSL.g:5658:4: (lv_cases_11_0= ruleXCasePart )
+            	    // InternalChartDSL.g:5962:4: (lv_cases_11_0= ruleXCasePart )
             	    {
-            	    // InternalChartDSL.g:5658:4: (lv_cases_11_0= ruleXCasePart )
-            	    // InternalChartDSL.g:5659:5: lv_cases_11_0= ruleXCasePart
+            	    // InternalChartDSL.g:5962:4: (lv_cases_11_0= ruleXCasePart )
+            	    // InternalChartDSL.g:5963:5: lv_cases_11_0= ruleXCasePart
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      					newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0());
             	      				
             	    }
-            	    pushFollow(FOLLOW_92);
+            	    pushFollow(FOLLOW_105);
             	    lv_cases_11_0=ruleXCasePart();
 
             	    state._fsp--;
@@ -15946,45 +16720,45 @@
             	    break;
 
             	default :
-            	    break loop94;
+            	    break loop106;
                 }
             } while (true);
 
-            // InternalChartDSL.g:5676:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
-            int alt95=2;
-            int LA95_0 = input.LA(1);
+            // InternalChartDSL.g:5980:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
+            int alt107=2;
+            int LA107_0 = input.LA(1);
 
-            if ( (LA95_0==114) ) {
-                alt95=1;
+            if ( (LA107_0==124) ) {
+                alt107=1;
             }
-            switch (alt95) {
+            switch (alt107) {
                 case 1 :
-                    // InternalChartDSL.g:5677:4: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
+                    // InternalChartDSL.g:5981:4: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
                     {
-                    otherlv_12=(Token)match(input,114,FOLLOW_91); if (state.failed) return current;
+                    otherlv_12=(Token)match(input,124,FOLLOW_104); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
                       			
                     }
-                    otherlv_13=(Token)match(input,113,FOLLOW_50); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,123,FOLLOW_63); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
                       			
                     }
-                    // InternalChartDSL.g:5685:4: ( (lv_default_14_0= ruleXExpression ) )
-                    // InternalChartDSL.g:5686:5: (lv_default_14_0= ruleXExpression )
+                    // InternalChartDSL.g:5989:4: ( (lv_default_14_0= ruleXExpression ) )
+                    // InternalChartDSL.g:5990:5: (lv_default_14_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:5686:5: (lv_default_14_0= ruleXExpression )
-                    // InternalChartDSL.g:5687:6: lv_default_14_0= ruleXExpression
+                    // InternalChartDSL.g:5990:5: (lv_default_14_0= ruleXExpression )
+                    // InternalChartDSL.g:5991:6: lv_default_14_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0());
                       					
                     }
-                    pushFollow(FOLLOW_93);
+                    pushFollow(FOLLOW_106);
                     lv_default_14_0=ruleXExpression();
 
                     state._fsp--;
@@ -16014,7 +16788,7 @@
 
             }
 
-            otherlv_15=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
+            otherlv_15=(Token)match(input,16,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_15, grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6());
@@ -16045,7 +16819,7 @@
 
 
     // $ANTLR start "entryRuleXCasePart"
-    // InternalChartDSL.g:5713:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
+    // InternalChartDSL.g:6017:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
     public final EObject entryRuleXCasePart() throws RecognitionException {
         EObject current = null;
 
@@ -16053,8 +16827,8 @@
 
 
         try {
-            // InternalChartDSL.g:5713:50: (iv_ruleXCasePart= ruleXCasePart EOF )
-            // InternalChartDSL.g:5714:2: iv_ruleXCasePart= ruleXCasePart EOF
+            // InternalChartDSL.g:6017:50: (iv_ruleXCasePart= ruleXCasePart EOF )
+            // InternalChartDSL.g:6018:2: iv_ruleXCasePart= ruleXCasePart EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCasePartRule()); 
@@ -16085,7 +16859,7 @@
 
 
     // $ANTLR start "ruleXCasePart"
-    // InternalChartDSL.g:5720:1: ruleXCasePart returns [EObject current=null] : ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) ;
+    // InternalChartDSL.g:6024:1: ruleXCasePart returns [EObject current=null] : ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) ;
     public final EObject ruleXCasePart() throws RecognitionException {
         EObject current = null;
 
@@ -16103,14 +16877,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:5726:2: ( ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) )
-            // InternalChartDSL.g:5727:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
+            // InternalChartDSL.g:6030:2: ( ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) )
+            // InternalChartDSL.g:6031:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
             {
-            // InternalChartDSL.g:5727:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
-            // InternalChartDSL.g:5728:3: () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
+            // InternalChartDSL.g:6031:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
+            // InternalChartDSL.g:6032:3: () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
             {
-            // InternalChartDSL.g:5728:3: ()
-            // InternalChartDSL.g:5729:4: 
+            // InternalChartDSL.g:6032:3: ()
+            // InternalChartDSL.g:6033:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16122,26 +16896,26 @@
 
             }
 
-            // InternalChartDSL.g:5735:3: ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )?
-            int alt96=2;
-            int LA96_0 = input.LA(1);
+            // InternalChartDSL.g:6039:3: ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )?
+            int alt108=2;
+            int LA108_0 = input.LA(1);
 
-            if ( (LA96_0==RULE_ID||LA96_0==71||LA96_0==96) ) {
-                alt96=1;
+            if ( (LA108_0==RULE_ID||LA108_0==81||LA108_0==106) ) {
+                alt108=1;
             }
-            switch (alt96) {
+            switch (alt108) {
                 case 1 :
-                    // InternalChartDSL.g:5736:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    // InternalChartDSL.g:6040:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
                     {
-                    // InternalChartDSL.g:5736:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
-                    // InternalChartDSL.g:5737:5: lv_typeGuard_1_0= ruleJvmTypeReference
+                    // InternalChartDSL.g:6040:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    // InternalChartDSL.g:6041:5: lv_typeGuard_1_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       					newCompositeNode(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0());
                       				
                     }
-                    pushFollow(FOLLOW_94);
+                    pushFollow(FOLLOW_107);
                     lv_typeGuard_1_0=ruleJvmTypeReference();
 
                     state._fsp--;
@@ -16168,35 +16942,35 @@
 
             }
 
-            // InternalChartDSL.g:5754:3: (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )?
-            int alt97=2;
-            int LA97_0 = input.LA(1);
+            // InternalChartDSL.g:6058:3: (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )?
+            int alt109=2;
+            int LA109_0 = input.LA(1);
 
-            if ( (LA97_0==115) ) {
-                alt97=1;
+            if ( (LA109_0==125) ) {
+                alt109=1;
             }
-            switch (alt97) {
+            switch (alt109) {
                 case 1 :
-                    // InternalChartDSL.g:5755:4: otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) )
+                    // InternalChartDSL.g:6059:4: otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) )
                     {
-                    otherlv_2=(Token)match(input,115,FOLLOW_50); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,125,FOLLOW_63); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_2, grammarAccess.getXCasePartAccess().getCaseKeyword_2_0());
                       			
                     }
-                    // InternalChartDSL.g:5759:4: ( (lv_case_3_0= ruleXExpression ) )
-                    // InternalChartDSL.g:5760:5: (lv_case_3_0= ruleXExpression )
+                    // InternalChartDSL.g:6063:4: ( (lv_case_3_0= ruleXExpression ) )
+                    // InternalChartDSL.g:6064:5: (lv_case_3_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:5760:5: (lv_case_3_0= ruleXExpression )
-                    // InternalChartDSL.g:5761:6: lv_case_3_0= ruleXExpression
+                    // InternalChartDSL.g:6064:5: (lv_case_3_0= ruleXExpression )
+                    // InternalChartDSL.g:6065:6: lv_case_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_95);
+                    pushFollow(FOLLOW_108);
                     lv_case_3_0=ruleXExpression();
 
                     state._fsp--;
@@ -16226,41 +17000,41 @@
 
             }
 
-            // InternalChartDSL.g:5779:3: ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
-            int alt98=2;
-            int LA98_0 = input.LA(1);
+            // InternalChartDSL.g:6083:3: ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
+            int alt110=2;
+            int LA110_0 = input.LA(1);
 
-            if ( (LA98_0==113) ) {
-                alt98=1;
+            if ( (LA110_0==123) ) {
+                alt110=1;
             }
-            else if ( (LA98_0==72) ) {
-                alt98=2;
+            else if ( (LA110_0==82) ) {
+                alt110=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 98, 0, input);
+                    new NoViableAltException("", 110, 0, input);
 
                 throw nvae;
             }
-            switch (alt98) {
+            switch (alt110) {
                 case 1 :
-                    // InternalChartDSL.g:5780:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    // InternalChartDSL.g:6084:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
                     {
-                    // InternalChartDSL.g:5780:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
-                    // InternalChartDSL.g:5781:5: otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) )
+                    // InternalChartDSL.g:6084:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    // InternalChartDSL.g:6085:5: otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) )
                     {
-                    otherlv_4=(Token)match(input,113,FOLLOW_50); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,123,FOLLOW_63); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_4, grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0());
                       				
                     }
-                    // InternalChartDSL.g:5785:5: ( (lv_then_5_0= ruleXExpression ) )
-                    // InternalChartDSL.g:5786:6: (lv_then_5_0= ruleXExpression )
+                    // InternalChartDSL.g:6089:5: ( (lv_then_5_0= ruleXExpression ) )
+                    // InternalChartDSL.g:6090:6: (lv_then_5_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:5786:6: (lv_then_5_0= ruleXExpression )
-                    // InternalChartDSL.g:5787:7: lv_then_5_0= ruleXExpression
+                    // InternalChartDSL.g:6090:6: (lv_then_5_0= ruleXExpression )
+                    // InternalChartDSL.g:6091:7: lv_then_5_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16298,15 +17072,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:5806:4: ( (lv_fallThrough_6_0= ',' ) )
+                    // InternalChartDSL.g:6110:4: ( (lv_fallThrough_6_0= ',' ) )
                     {
-                    // InternalChartDSL.g:5806:4: ( (lv_fallThrough_6_0= ',' ) )
-                    // InternalChartDSL.g:5807:5: (lv_fallThrough_6_0= ',' )
+                    // InternalChartDSL.g:6110:4: ( (lv_fallThrough_6_0= ',' ) )
+                    // InternalChartDSL.g:6111:5: (lv_fallThrough_6_0= ',' )
                     {
-                    // InternalChartDSL.g:5807:5: (lv_fallThrough_6_0= ',' )
-                    // InternalChartDSL.g:5808:6: lv_fallThrough_6_0= ','
+                    // InternalChartDSL.g:6111:5: (lv_fallThrough_6_0= ',' )
+                    // InternalChartDSL.g:6112:6: lv_fallThrough_6_0= ','
                     {
-                    lv_fallThrough_6_0=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
+                    lv_fallThrough_6_0=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_fallThrough_6_0, grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0());
@@ -16357,7 +17131,7 @@
 
 
     // $ANTLR start "entryRuleXForLoopExpression"
-    // InternalChartDSL.g:5825:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
+    // InternalChartDSL.g:6129:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
     public final EObject entryRuleXForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16365,8 +17139,8 @@
 
 
         try {
-            // InternalChartDSL.g:5825:59: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
-            // InternalChartDSL.g:5826:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
+            // InternalChartDSL.g:6129:59: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
+            // InternalChartDSL.g:6130:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXForLoopExpressionRule()); 
@@ -16397,7 +17171,7 @@
 
 
     // $ANTLR start "ruleXForLoopExpression"
-    // InternalChartDSL.g:5832:1: ruleXForLoopExpression returns [EObject current=null] : ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) ;
+    // InternalChartDSL.g:6136:1: ruleXForLoopExpression returns [EObject current=null] : ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) ;
     public final EObject ruleXForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16416,20 +17190,20 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:5838:2: ( ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) )
-            // InternalChartDSL.g:5839:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:6142:2: ( ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) )
+            // InternalChartDSL.g:6143:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
             {
-            // InternalChartDSL.g:5839:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
-            // InternalChartDSL.g:5840:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) )
+            // InternalChartDSL.g:6143:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:6144:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) )
             {
-            // InternalChartDSL.g:5840:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
-            // InternalChartDSL.g:5841:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            // InternalChartDSL.g:6144:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+            // InternalChartDSL.g:6145:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
             {
-            // InternalChartDSL.g:5854:4: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
-            // InternalChartDSL.g:5855:5: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+            // InternalChartDSL.g:6158:4: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            // InternalChartDSL.g:6159:5: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
             {
-            // InternalChartDSL.g:5855:5: ()
-            // InternalChartDSL.g:5856:6: 
+            // InternalChartDSL.g:6159:5: ()
+            // InternalChartDSL.g:6160:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16441,30 +17215,30 @@
 
             }
 
-            otherlv_1=(Token)match(input,116,FOLLOW_88); if (state.failed) return current;
+            otherlv_1=(Token)match(input,126,FOLLOW_101); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1());
               				
             }
-            otherlv_2=(Token)match(input,71,FOLLOW_63); if (state.failed) return current;
+            otherlv_2=(Token)match(input,81,FOLLOW_76); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2());
               				
             }
-            // InternalChartDSL.g:5870:5: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
-            // InternalChartDSL.g:5871:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            // InternalChartDSL.g:6174:5: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+            // InternalChartDSL.g:6175:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
             {
-            // InternalChartDSL.g:5871:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
-            // InternalChartDSL.g:5872:7: lv_declaredParam_3_0= ruleJvmFormalParameter
+            // InternalChartDSL.g:6175:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            // InternalChartDSL.g:6176:7: lv_declaredParam_3_0= ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
 
               							newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0());
               						
             }
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_104);
             lv_declaredParam_3_0=ruleJvmFormalParameter();
 
             state._fsp--;
@@ -16488,7 +17262,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,113,FOLLOW_50); if (state.failed) return current;
+            otherlv_4=(Token)match(input,123,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4());
@@ -16500,18 +17274,18 @@
 
             }
 
-            // InternalChartDSL.g:5895:3: ( (lv_forExpression_5_0= ruleXExpression ) )
-            // InternalChartDSL.g:5896:4: (lv_forExpression_5_0= ruleXExpression )
+            // InternalChartDSL.g:6199:3: ( (lv_forExpression_5_0= ruleXExpression ) )
+            // InternalChartDSL.g:6200:4: (lv_forExpression_5_0= ruleXExpression )
             {
-            // InternalChartDSL.g:5896:4: (lv_forExpression_5_0= ruleXExpression )
-            // InternalChartDSL.g:5897:5: lv_forExpression_5_0= ruleXExpression
+            // InternalChartDSL.g:6200:4: (lv_forExpression_5_0= ruleXExpression )
+            // InternalChartDSL.g:6201:5: lv_forExpression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0());
               				
             }
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_61);
             lv_forExpression_5_0=ruleXExpression();
 
             state._fsp--;
@@ -16535,17 +17309,17 @@
 
             }
 
-            otherlv_6=(Token)match(input,73,FOLLOW_50); if (state.failed) return current;
+            otherlv_6=(Token)match(input,83,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2());
               		
             }
-            // InternalChartDSL.g:5918:3: ( (lv_eachExpression_7_0= ruleXExpression ) )
-            // InternalChartDSL.g:5919:4: (lv_eachExpression_7_0= ruleXExpression )
+            // InternalChartDSL.g:6222:3: ( (lv_eachExpression_7_0= ruleXExpression ) )
+            // InternalChartDSL.g:6223:4: (lv_eachExpression_7_0= ruleXExpression )
             {
-            // InternalChartDSL.g:5919:4: (lv_eachExpression_7_0= ruleXExpression )
-            // InternalChartDSL.g:5920:5: lv_eachExpression_7_0= ruleXExpression
+            // InternalChartDSL.g:6223:4: (lv_eachExpression_7_0= ruleXExpression )
+            // InternalChartDSL.g:6224:5: lv_eachExpression_7_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -16601,7 +17375,7 @@
 
 
     // $ANTLR start "entryRuleXBasicForLoopExpression"
-    // InternalChartDSL.g:5941:1: entryRuleXBasicForLoopExpression returns [EObject current=null] : iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF ;
+    // InternalChartDSL.g:6245:1: entryRuleXBasicForLoopExpression returns [EObject current=null] : iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF ;
     public final EObject entryRuleXBasicForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16609,8 +17383,8 @@
 
 
         try {
-            // InternalChartDSL.g:5941:64: (iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF )
-            // InternalChartDSL.g:5942:2: iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF
+            // InternalChartDSL.g:6245:64: (iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF )
+            // InternalChartDSL.g:6246:2: iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBasicForLoopExpressionRule()); 
@@ -16641,7 +17415,7 @@
 
 
     // $ANTLR start "ruleXBasicForLoopExpression"
-    // InternalChartDSL.g:5948:1: ruleXBasicForLoopExpression returns [EObject current=null] : ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) ;
+    // InternalChartDSL.g:6252:1: ruleXBasicForLoopExpression returns [EObject current=null] : ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) ;
     public final EObject ruleXBasicForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -16669,14 +17443,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:5954:2: ( ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) )
-            // InternalChartDSL.g:5955:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:6258:2: ( ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) )
+            // InternalChartDSL.g:6259:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
             {
-            // InternalChartDSL.g:5955:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
-            // InternalChartDSL.g:5956:3: () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) )
+            // InternalChartDSL.g:6259:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:6260:3: () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) )
             {
-            // InternalChartDSL.g:5956:3: ()
-            // InternalChartDSL.g:5957:4: 
+            // InternalChartDSL.g:6260:3: ()
+            // InternalChartDSL.g:6261:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16688,41 +17462,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,116,FOLLOW_88); if (state.failed) return current;
+            otherlv_1=(Token)match(input,126,FOLLOW_101); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,71,FOLLOW_96); if (state.failed) return current;
+            otherlv_2=(Token)match(input,81,FOLLOW_109); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalChartDSL.g:5971:3: ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )?
-            int alt100=2;
-            int LA100_0 = input.LA(1);
+            // InternalChartDSL.g:6275:3: ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )?
+            int alt112=2;
+            int LA112_0 = input.LA(1);
 
-            if ( ((LA100_0>=RULE_ID && LA100_0<=RULE_DECIMAL)||LA100_0==14||(LA100_0>=63 && LA100_0<=66)||LA100_0==71||(LA100_0>=75 && LA100_0<=76)||LA100_0==83||LA100_0==99||LA100_0==103||LA100_0==110||LA100_0==112||(LA100_0>=116 && LA100_0<=130)||LA100_0==132) ) {
-                alt100=1;
+            if ( ((LA112_0>=RULE_STRING && LA112_0<=RULE_DECIMAL)||LA112_0==15||(LA112_0>=73 && LA112_0<=76)||LA112_0==81||(LA112_0>=85 && LA112_0<=86)||LA112_0==93||LA112_0==109||LA112_0==113||LA112_0==120||LA112_0==122||(LA112_0>=126 && LA112_0<=140)||LA112_0==142) ) {
+                alt112=1;
             }
-            switch (alt100) {
+            switch (alt112) {
                 case 1 :
-                    // InternalChartDSL.g:5972:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    // InternalChartDSL.g:6276:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
                     {
-                    // InternalChartDSL.g:5972:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) )
-                    // InternalChartDSL.g:5973:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    // InternalChartDSL.g:6276:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) )
+                    // InternalChartDSL.g:6277:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
                     {
-                    // InternalChartDSL.g:5973:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
-                    // InternalChartDSL.g:5974:6: lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration
+                    // InternalChartDSL.g:6277:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    // InternalChartDSL.g:6278:6: lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_97);
+                    pushFollow(FOLLOW_110);
                     lv_initExpressions_3_0=ruleXExpressionOrVarDeclaration();
 
                     state._fsp--;
@@ -16746,39 +17520,39 @@
 
                     }
 
-                    // InternalChartDSL.g:5991:4: (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
-                    loop99:
+                    // InternalChartDSL.g:6295:4: (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    loop111:
                     do {
-                        int alt99=2;
-                        int LA99_0 = input.LA(1);
+                        int alt111=2;
+                        int LA111_0 = input.LA(1);
 
-                        if ( (LA99_0==72) ) {
-                            alt99=1;
+                        if ( (LA111_0==82) ) {
+                            alt111=1;
                         }
 
 
-                        switch (alt99) {
+                        switch (alt111) {
                     	case 1 :
-                    	    // InternalChartDSL.g:5992:5: otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    // InternalChartDSL.g:6296:5: otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,72,FOLLOW_98); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,82,FOLLOW_111); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalChartDSL.g:5996:5: ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
-                    	    // InternalChartDSL.g:5997:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    // InternalChartDSL.g:6300:5: ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    // InternalChartDSL.g:6301:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
                     	    {
-                    	    // InternalChartDSL.g:5997:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
-                    	    // InternalChartDSL.g:5998:7: lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration
+                    	    // InternalChartDSL.g:6301:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    // InternalChartDSL.g:6302:7: lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_97);
+                    	    pushFollow(FOLLOW_110);
                     	    lv_initExpressions_5_0=ruleXExpressionOrVarDeclaration();
 
                     	    state._fsp--;
@@ -16807,7 +17581,7 @@
                     	    break;
 
                     	default :
-                    	    break loop99;
+                    	    break loop111;
                         }
                     } while (true);
 
@@ -16817,32 +17591,32 @@
 
             }
 
-            otherlv_6=(Token)match(input,69,FOLLOW_99); if (state.failed) return current;
+            otherlv_6=(Token)match(input,79,FOLLOW_112); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4());
               		
             }
-            // InternalChartDSL.g:6021:3: ( (lv_expression_7_0= ruleXExpression ) )?
-            int alt101=2;
-            int LA101_0 = input.LA(1);
+            // InternalChartDSL.g:6325:3: ( (lv_expression_7_0= ruleXExpression ) )?
+            int alt113=2;
+            int LA113_0 = input.LA(1);
 
-            if ( ((LA101_0>=RULE_ID && LA101_0<=RULE_DECIMAL)||LA101_0==14||(LA101_0>=63 && LA101_0<=66)||LA101_0==71||(LA101_0>=75 && LA101_0<=76)||LA101_0==83||LA101_0==99||LA101_0==103||LA101_0==110||LA101_0==112||(LA101_0>=116 && LA101_0<=118)||(LA101_0>=121 && LA101_0<=130)||LA101_0==132) ) {
-                alt101=1;
+            if ( ((LA113_0>=RULE_STRING && LA113_0<=RULE_DECIMAL)||LA113_0==15||(LA113_0>=73 && LA113_0<=76)||LA113_0==81||(LA113_0>=85 && LA113_0<=86)||LA113_0==93||LA113_0==109||LA113_0==113||LA113_0==120||LA113_0==122||(LA113_0>=126 && LA113_0<=128)||(LA113_0>=131 && LA113_0<=140)||LA113_0==142) ) {
+                alt113=1;
             }
-            switch (alt101) {
+            switch (alt113) {
                 case 1 :
-                    // InternalChartDSL.g:6022:4: (lv_expression_7_0= ruleXExpression )
+                    // InternalChartDSL.g:6326:4: (lv_expression_7_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:6022:4: (lv_expression_7_0= ruleXExpression )
-                    // InternalChartDSL.g:6023:5: lv_expression_7_0= ruleXExpression
+                    // InternalChartDSL.g:6326:4: (lv_expression_7_0= ruleXExpression )
+                    // InternalChartDSL.g:6327:5: lv_expression_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       					newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0());
                       				
                     }
-                    pushFollow(FOLLOW_100);
+                    pushFollow(FOLLOW_113);
                     lv_expression_7_0=ruleXExpression();
 
                     state._fsp--;
@@ -16869,35 +17643,35 @@
 
             }
 
-            otherlv_8=(Token)match(input,69,FOLLOW_46); if (state.failed) return current;
+            otherlv_8=(Token)match(input,79,FOLLOW_59); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_8, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6());
               		
             }
-            // InternalChartDSL.g:6044:3: ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )?
-            int alt103=2;
-            int LA103_0 = input.LA(1);
+            // InternalChartDSL.g:6348:3: ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )?
+            int alt115=2;
+            int LA115_0 = input.LA(1);
 
-            if ( ((LA103_0>=RULE_ID && LA103_0<=RULE_DECIMAL)||LA103_0==14||(LA103_0>=63 && LA103_0<=66)||LA103_0==71||(LA103_0>=75 && LA103_0<=76)||LA103_0==83||LA103_0==99||LA103_0==103||LA103_0==110||LA103_0==112||(LA103_0>=116 && LA103_0<=118)||(LA103_0>=121 && LA103_0<=130)||LA103_0==132) ) {
-                alt103=1;
+            if ( ((LA115_0>=RULE_STRING && LA115_0<=RULE_DECIMAL)||LA115_0==15||(LA115_0>=73 && LA115_0<=76)||LA115_0==81||(LA115_0>=85 && LA115_0<=86)||LA115_0==93||LA115_0==109||LA115_0==113||LA115_0==120||LA115_0==122||(LA115_0>=126 && LA115_0<=128)||(LA115_0>=131 && LA115_0<=140)||LA115_0==142) ) {
+                alt115=1;
             }
-            switch (alt103) {
+            switch (alt115) {
                 case 1 :
-                    // InternalChartDSL.g:6045:4: ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    // InternalChartDSL.g:6349:4: ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
                     {
-                    // InternalChartDSL.g:6045:4: ( (lv_updateExpressions_9_0= ruleXExpression ) )
-                    // InternalChartDSL.g:6046:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    // InternalChartDSL.g:6349:4: ( (lv_updateExpressions_9_0= ruleXExpression ) )
+                    // InternalChartDSL.g:6350:5: (lv_updateExpressions_9_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:6046:5: (lv_updateExpressions_9_0= ruleXExpression )
-                    // InternalChartDSL.g:6047:6: lv_updateExpressions_9_0= ruleXExpression
+                    // InternalChartDSL.g:6350:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    // InternalChartDSL.g:6351:6: lv_updateExpressions_9_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_47);
+                    pushFollow(FOLLOW_60);
                     lv_updateExpressions_9_0=ruleXExpression();
 
                     state._fsp--;
@@ -16921,39 +17695,39 @@
 
                     }
 
-                    // InternalChartDSL.g:6064:4: (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
-                    loop102:
+                    // InternalChartDSL.g:6368:4: (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    loop114:
                     do {
-                        int alt102=2;
-                        int LA102_0 = input.LA(1);
+                        int alt114=2;
+                        int LA114_0 = input.LA(1);
 
-                        if ( (LA102_0==72) ) {
-                            alt102=1;
+                        if ( (LA114_0==82) ) {
+                            alt114=1;
                         }
 
 
-                        switch (alt102) {
+                        switch (alt114) {
                     	case 1 :
-                    	    // InternalChartDSL.g:6065:5: otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    // InternalChartDSL.g:6369:5: otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_10=(Token)match(input,72,FOLLOW_50); if (state.failed) return current;
+                    	    otherlv_10=(Token)match(input,82,FOLLOW_63); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_10, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0());
                     	      				
                     	    }
-                    	    // InternalChartDSL.g:6069:5: ( (lv_updateExpressions_11_0= ruleXExpression ) )
-                    	    // InternalChartDSL.g:6070:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    // InternalChartDSL.g:6373:5: ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    // InternalChartDSL.g:6374:6: (lv_updateExpressions_11_0= ruleXExpression )
                     	    {
-                    	    // InternalChartDSL.g:6070:6: (lv_updateExpressions_11_0= ruleXExpression )
-                    	    // InternalChartDSL.g:6071:7: lv_updateExpressions_11_0= ruleXExpression
+                    	    // InternalChartDSL.g:6374:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    // InternalChartDSL.g:6375:7: lv_updateExpressions_11_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_47);
+                    	    pushFollow(FOLLOW_60);
                     	    lv_updateExpressions_11_0=ruleXExpression();
 
                     	    state._fsp--;
@@ -16982,7 +17756,7 @@
                     	    break;
 
                     	default :
-                    	    break loop102;
+                    	    break loop114;
                         }
                     } while (true);
 
@@ -16992,17 +17766,17 @@
 
             }
 
-            otherlv_12=(Token)match(input,73,FOLLOW_50); if (state.failed) return current;
+            otherlv_12=(Token)match(input,83,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_12, grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8());
               		
             }
-            // InternalChartDSL.g:6094:3: ( (lv_eachExpression_13_0= ruleXExpression ) )
-            // InternalChartDSL.g:6095:4: (lv_eachExpression_13_0= ruleXExpression )
+            // InternalChartDSL.g:6398:3: ( (lv_eachExpression_13_0= ruleXExpression ) )
+            // InternalChartDSL.g:6399:4: (lv_eachExpression_13_0= ruleXExpression )
             {
-            // InternalChartDSL.g:6095:4: (lv_eachExpression_13_0= ruleXExpression )
-            // InternalChartDSL.g:6096:5: lv_eachExpression_13_0= ruleXExpression
+            // InternalChartDSL.g:6399:4: (lv_eachExpression_13_0= ruleXExpression )
+            // InternalChartDSL.g:6400:5: lv_eachExpression_13_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -17058,7 +17832,7 @@
 
 
     // $ANTLR start "entryRuleXWhileExpression"
-    // InternalChartDSL.g:6117:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
+    // InternalChartDSL.g:6421:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
     public final EObject entryRuleXWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17066,8 +17840,8 @@
 
 
         try {
-            // InternalChartDSL.g:6117:57: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
-            // InternalChartDSL.g:6118:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
+            // InternalChartDSL.g:6421:57: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
+            // InternalChartDSL.g:6422:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXWhileExpressionRule()); 
@@ -17098,7 +17872,7 @@
 
 
     // $ANTLR start "ruleXWhileExpression"
-    // InternalChartDSL.g:6124:1: ruleXWhileExpression returns [EObject current=null] : ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) ;
+    // InternalChartDSL.g:6428:1: ruleXWhileExpression returns [EObject current=null] : ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17114,14 +17888,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:6130:2: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
-            // InternalChartDSL.g:6131:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:6434:2: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
+            // InternalChartDSL.g:6435:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
             {
-            // InternalChartDSL.g:6131:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
-            // InternalChartDSL.g:6132:3: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
+            // InternalChartDSL.g:6435:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:6436:3: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
             {
-            // InternalChartDSL.g:6132:3: ()
-            // InternalChartDSL.g:6133:4: 
+            // InternalChartDSL.g:6436:3: ()
+            // InternalChartDSL.g:6437:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17133,30 +17907,30 @@
 
             }
 
-            otherlv_1=(Token)match(input,117,FOLLOW_88); if (state.failed) return current;
+            otherlv_1=(Token)match(input,127,FOLLOW_101); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,71,FOLLOW_50); if (state.failed) return current;
+            otherlv_2=(Token)match(input,81,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalChartDSL.g:6147:3: ( (lv_predicate_3_0= ruleXExpression ) )
-            // InternalChartDSL.g:6148:4: (lv_predicate_3_0= ruleXExpression )
+            // InternalChartDSL.g:6451:3: ( (lv_predicate_3_0= ruleXExpression ) )
+            // InternalChartDSL.g:6452:4: (lv_predicate_3_0= ruleXExpression )
             {
-            // InternalChartDSL.g:6148:4: (lv_predicate_3_0= ruleXExpression )
-            // InternalChartDSL.g:6149:5: lv_predicate_3_0= ruleXExpression
+            // InternalChartDSL.g:6452:4: (lv_predicate_3_0= ruleXExpression )
+            // InternalChartDSL.g:6453:5: lv_predicate_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0());
               				
             }
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_61);
             lv_predicate_3_0=ruleXExpression();
 
             state._fsp--;
@@ -17180,17 +17954,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,73,FOLLOW_50); if (state.failed) return current;
+            otherlv_4=(Token)match(input,83,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
               		
             }
-            // InternalChartDSL.g:6170:3: ( (lv_body_5_0= ruleXExpression ) )
-            // InternalChartDSL.g:6171:4: (lv_body_5_0= ruleXExpression )
+            // InternalChartDSL.g:6474:3: ( (lv_body_5_0= ruleXExpression ) )
+            // InternalChartDSL.g:6475:4: (lv_body_5_0= ruleXExpression )
             {
-            // InternalChartDSL.g:6171:4: (lv_body_5_0= ruleXExpression )
-            // InternalChartDSL.g:6172:5: lv_body_5_0= ruleXExpression
+            // InternalChartDSL.g:6475:4: (lv_body_5_0= ruleXExpression )
+            // InternalChartDSL.g:6476:5: lv_body_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -17246,7 +18020,7 @@
 
 
     // $ANTLR start "entryRuleXDoWhileExpression"
-    // InternalChartDSL.g:6193:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
+    // InternalChartDSL.g:6497:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
     public final EObject entryRuleXDoWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17254,8 +18028,8 @@
 
 
         try {
-            // InternalChartDSL.g:6193:59: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
-            // InternalChartDSL.g:6194:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
+            // InternalChartDSL.g:6497:59: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
+            // InternalChartDSL.g:6498:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXDoWhileExpressionRule()); 
@@ -17286,7 +18060,7 @@
 
 
     // $ANTLR start "ruleXDoWhileExpression"
-    // InternalChartDSL.g:6200:1: ruleXDoWhileExpression returns [EObject current=null] : ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) ;
+    // InternalChartDSL.g:6504:1: ruleXDoWhileExpression returns [EObject current=null] : ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) ;
     public final EObject ruleXDoWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17303,14 +18077,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:6206:2: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
-            // InternalChartDSL.g:6207:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            // InternalChartDSL.g:6510:2: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
+            // InternalChartDSL.g:6511:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
             {
-            // InternalChartDSL.g:6207:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
-            // InternalChartDSL.g:6208:3: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
+            // InternalChartDSL.g:6511:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            // InternalChartDSL.g:6512:3: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
             {
-            // InternalChartDSL.g:6208:3: ()
-            // InternalChartDSL.g:6209:4: 
+            // InternalChartDSL.g:6512:3: ()
+            // InternalChartDSL.g:6513:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17322,24 +18096,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,118,FOLLOW_50); if (state.failed) return current;
+            otherlv_1=(Token)match(input,128,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
               		
             }
-            // InternalChartDSL.g:6219:3: ( (lv_body_2_0= ruleXExpression ) )
-            // InternalChartDSL.g:6220:4: (lv_body_2_0= ruleXExpression )
+            // InternalChartDSL.g:6523:3: ( (lv_body_2_0= ruleXExpression ) )
+            // InternalChartDSL.g:6524:4: (lv_body_2_0= ruleXExpression )
             {
-            // InternalChartDSL.g:6220:4: (lv_body_2_0= ruleXExpression )
-            // InternalChartDSL.g:6221:5: lv_body_2_0= ruleXExpression
+            // InternalChartDSL.g:6524:4: (lv_body_2_0= ruleXExpression )
+            // InternalChartDSL.g:6525:5: lv_body_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_101);
+            pushFollow(FOLLOW_114);
             lv_body_2_0=ruleXExpression();
 
             state._fsp--;
@@ -17363,30 +18137,30 @@
 
             }
 
-            otherlv_3=(Token)match(input,117,FOLLOW_88); if (state.failed) return current;
+            otherlv_3=(Token)match(input,127,FOLLOW_101); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
               		
             }
-            otherlv_4=(Token)match(input,71,FOLLOW_50); if (state.failed) return current;
+            otherlv_4=(Token)match(input,81,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
               		
             }
-            // InternalChartDSL.g:6246:3: ( (lv_predicate_5_0= ruleXExpression ) )
-            // InternalChartDSL.g:6247:4: (lv_predicate_5_0= ruleXExpression )
+            // InternalChartDSL.g:6550:3: ( (lv_predicate_5_0= ruleXExpression ) )
+            // InternalChartDSL.g:6551:4: (lv_predicate_5_0= ruleXExpression )
             {
-            // InternalChartDSL.g:6247:4: (lv_predicate_5_0= ruleXExpression )
-            // InternalChartDSL.g:6248:5: lv_predicate_5_0= ruleXExpression
+            // InternalChartDSL.g:6551:4: (lv_predicate_5_0= ruleXExpression )
+            // InternalChartDSL.g:6552:5: lv_predicate_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0());
               				
             }
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_61);
             lv_predicate_5_0=ruleXExpression();
 
             state._fsp--;
@@ -17410,7 +18184,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
+            otherlv_6=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
@@ -17441,7 +18215,7 @@
 
 
     // $ANTLR start "entryRuleXBlockExpression"
-    // InternalChartDSL.g:6273:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
+    // InternalChartDSL.g:6577:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
     public final EObject entryRuleXBlockExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17449,8 +18223,8 @@
 
 
         try {
-            // InternalChartDSL.g:6273:57: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
-            // InternalChartDSL.g:6274:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
+            // InternalChartDSL.g:6577:57: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
+            // InternalChartDSL.g:6578:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBlockExpressionRule()); 
@@ -17481,7 +18255,7 @@
 
 
     // $ANTLR start "ruleXBlockExpression"
-    // InternalChartDSL.g:6280:1: ruleXBlockExpression returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) ;
+    // InternalChartDSL.g:6584:1: ruleXBlockExpression returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) ;
     public final EObject ruleXBlockExpression() throws RecognitionException {
         EObject current = null;
 
@@ -17495,14 +18269,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:6286:2: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
-            // InternalChartDSL.g:6287:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            // InternalChartDSL.g:6590:2: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
+            // InternalChartDSL.g:6591:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
             {
-            // InternalChartDSL.g:6287:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
-            // InternalChartDSL.g:6288:3: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
+            // InternalChartDSL.g:6591:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            // InternalChartDSL.g:6592:3: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
             {
-            // InternalChartDSL.g:6288:3: ()
-            // InternalChartDSL.g:6289:4: 
+            // InternalChartDSL.g:6592:3: ()
+            // InternalChartDSL.g:6593:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17514,39 +18288,39 @@
 
             }
 
-            otherlv_1=(Token)match(input,14,FOLLOW_102); if (state.failed) return current;
+            otherlv_1=(Token)match(input,15,FOLLOW_115); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
               		
             }
-            // InternalChartDSL.g:6299:3: ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )*
-            loop105:
+            // InternalChartDSL.g:6603:3: ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )*
+            loop117:
             do {
-                int alt105=2;
-                int LA105_0 = input.LA(1);
+                int alt117=2;
+                int LA117_0 = input.LA(1);
 
-                if ( ((LA105_0>=RULE_ID && LA105_0<=RULE_DECIMAL)||LA105_0==14||(LA105_0>=63 && LA105_0<=66)||LA105_0==71||(LA105_0>=75 && LA105_0<=76)||LA105_0==83||LA105_0==99||LA105_0==103||LA105_0==110||LA105_0==112||(LA105_0>=116 && LA105_0<=130)||LA105_0==132) ) {
-                    alt105=1;
+                if ( ((LA117_0>=RULE_STRING && LA117_0<=RULE_DECIMAL)||LA117_0==15||(LA117_0>=73 && LA117_0<=76)||LA117_0==81||(LA117_0>=85 && LA117_0<=86)||LA117_0==93||LA117_0==109||LA117_0==113||LA117_0==120||LA117_0==122||(LA117_0>=126 && LA117_0<=140)||LA117_0==142) ) {
+                    alt117=1;
                 }
 
 
-                switch (alt105) {
+                switch (alt117) {
             	case 1 :
-            	    // InternalChartDSL.g:6300:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )?
+            	    // InternalChartDSL.g:6604:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )?
             	    {
-            	    // InternalChartDSL.g:6300:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) )
-            	    // InternalChartDSL.g:6301:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalChartDSL.g:6604:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalChartDSL.g:6605:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
             	    {
-            	    // InternalChartDSL.g:6301:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
-            	    // InternalChartDSL.g:6302:6: lv_expressions_2_0= ruleXExpressionOrVarDeclaration
+            	    // InternalChartDSL.g:6605:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalChartDSL.g:6606:6: lv_expressions_2_0= ruleXExpressionOrVarDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_103);
+            	    pushFollow(FOLLOW_116);
             	    lv_expressions_2_0=ruleXExpressionOrVarDeclaration();
 
             	    state._fsp--;
@@ -17570,18 +18344,18 @@
 
             	    }
 
-            	    // InternalChartDSL.g:6319:4: (otherlv_3= ';' )?
-            	    int alt104=2;
-            	    int LA104_0 = input.LA(1);
+            	    // InternalChartDSL.g:6623:4: (otherlv_3= ';' )?
+            	    int alt116=2;
+            	    int LA116_0 = input.LA(1);
 
-            	    if ( (LA104_0==69) ) {
-            	        alt104=1;
+            	    if ( (LA116_0==79) ) {
+            	        alt116=1;
             	    }
-            	    switch (alt104) {
+            	    switch (alt116) {
             	        case 1 :
-            	            // InternalChartDSL.g:6320:5: otherlv_3= ';'
+            	            // InternalChartDSL.g:6624:5: otherlv_3= ';'
             	            {
-            	            otherlv_3=(Token)match(input,69,FOLLOW_102); if (state.failed) return current;
+            	            otherlv_3=(Token)match(input,79,FOLLOW_115); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              					newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
@@ -17598,11 +18372,11 @@
             	    break;
 
             	default :
-            	    break loop105;
+            	    break loop117;
                 }
             } while (true);
 
-            otherlv_4=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
+            otherlv_4=(Token)match(input,16,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3());
@@ -17633,7 +18407,7 @@
 
 
     // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
-    // InternalChartDSL.g:6334:1: entryRuleXExpressionOrVarDeclaration returns [EObject current=null] : iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF ;
+    // InternalChartDSL.g:6638:1: entryRuleXExpressionOrVarDeclaration returns [EObject current=null] : iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF ;
     public final EObject entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -17641,8 +18415,8 @@
 
 
         try {
-            // InternalChartDSL.g:6334:68: (iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF )
-            // InternalChartDSL.g:6335:2: iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF
+            // InternalChartDSL.g:6638:68: (iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF )
+            // InternalChartDSL.g:6639:2: iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationRule()); 
@@ -17673,7 +18447,7 @@
 
 
     // $ANTLR start "ruleXExpressionOrVarDeclaration"
-    // InternalChartDSL.g:6341:1: ruleXExpressionOrVarDeclaration returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
+    // InternalChartDSL.g:6645:1: ruleXExpressionOrVarDeclaration returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
     public final EObject ruleXExpressionOrVarDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -17686,29 +18460,29 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:6347:2: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
-            // InternalChartDSL.g:6348:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            // InternalChartDSL.g:6651:2: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
+            // InternalChartDSL.g:6652:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
             {
-            // InternalChartDSL.g:6348:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
-            int alt106=2;
-            int LA106_0 = input.LA(1);
+            // InternalChartDSL.g:6652:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            int alt118=2;
+            int LA118_0 = input.LA(1);
 
-            if ( ((LA106_0>=119 && LA106_0<=120)) ) {
-                alt106=1;
+            if ( ((LA118_0>=129 && LA118_0<=130)) ) {
+                alt118=1;
             }
-            else if ( ((LA106_0>=RULE_ID && LA106_0<=RULE_DECIMAL)||LA106_0==14||(LA106_0>=63 && LA106_0<=66)||LA106_0==71||(LA106_0>=75 && LA106_0<=76)||LA106_0==83||LA106_0==99||LA106_0==103||LA106_0==110||LA106_0==112||(LA106_0>=116 && LA106_0<=118)||(LA106_0>=121 && LA106_0<=130)||LA106_0==132) ) {
-                alt106=2;
+            else if ( ((LA118_0>=RULE_STRING && LA118_0<=RULE_DECIMAL)||LA118_0==15||(LA118_0>=73 && LA118_0<=76)||LA118_0==81||(LA118_0>=85 && LA118_0<=86)||LA118_0==93||LA118_0==109||LA118_0==113||LA118_0==120||LA118_0==122||(LA118_0>=126 && LA118_0<=128)||(LA118_0>=131 && LA118_0<=140)||LA118_0==142) ) {
+                alt118=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 106, 0, input);
+                    new NoViableAltException("", 118, 0, input);
 
                 throw nvae;
             }
-            switch (alt106) {
+            switch (alt118) {
                 case 1 :
-                    // InternalChartDSL.g:6349:3: this_XVariableDeclaration_0= ruleXVariableDeclaration
+                    // InternalChartDSL.g:6653:3: this_XVariableDeclaration_0= ruleXVariableDeclaration
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17730,7 +18504,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:6358:3: this_XExpression_1= ruleXExpression
+                    // InternalChartDSL.g:6662:3: this_XExpression_1= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17776,7 +18550,7 @@
 
 
     // $ANTLR start "entryRuleXVariableDeclaration"
-    // InternalChartDSL.g:6370:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
+    // InternalChartDSL.g:6674:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
     public final EObject entryRuleXVariableDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -17784,8 +18558,8 @@
 
 
         try {
-            // InternalChartDSL.g:6370:61: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
-            // InternalChartDSL.g:6371:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
+            // InternalChartDSL.g:6674:61: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
+            // InternalChartDSL.g:6675:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXVariableDeclarationRule()); 
@@ -17816,7 +18590,7 @@
 
 
     // $ANTLR start "ruleXVariableDeclaration"
-    // InternalChartDSL.g:6377:1: ruleXVariableDeclaration returns [EObject current=null] : ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) ;
+    // InternalChartDSL.g:6681:1: ruleXVariableDeclaration returns [EObject current=null] : ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) ;
     public final EObject ruleXVariableDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -17836,14 +18610,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:6383:2: ( ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) )
-            // InternalChartDSL.g:6384:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+            // InternalChartDSL.g:6687:2: ( ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) )
+            // InternalChartDSL.g:6688:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
             {
-            // InternalChartDSL.g:6384:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
-            // InternalChartDSL.g:6385:3: () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+            // InternalChartDSL.g:6688:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+            // InternalChartDSL.g:6689:3: () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
             {
-            // InternalChartDSL.g:6385:3: ()
-            // InternalChartDSL.g:6386:4: 
+            // InternalChartDSL.g:6689:3: ()
+            // InternalChartDSL.g:6690:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17855,34 +18629,34 @@
 
             }
 
-            // InternalChartDSL.g:6392:3: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
-            int alt107=2;
-            int LA107_0 = input.LA(1);
+            // InternalChartDSL.g:6696:3: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
+            int alt119=2;
+            int LA119_0 = input.LA(1);
 
-            if ( (LA107_0==119) ) {
-                alt107=1;
+            if ( (LA119_0==129) ) {
+                alt119=1;
             }
-            else if ( (LA107_0==120) ) {
-                alt107=2;
+            else if ( (LA119_0==130) ) {
+                alt119=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 107, 0, input);
+                    new NoViableAltException("", 119, 0, input);
 
                 throw nvae;
             }
-            switch (alt107) {
+            switch (alt119) {
                 case 1 :
-                    // InternalChartDSL.g:6393:4: ( (lv_writeable_1_0= 'var' ) )
+                    // InternalChartDSL.g:6697:4: ( (lv_writeable_1_0= 'var' ) )
                     {
-                    // InternalChartDSL.g:6393:4: ( (lv_writeable_1_0= 'var' ) )
-                    // InternalChartDSL.g:6394:5: (lv_writeable_1_0= 'var' )
+                    // InternalChartDSL.g:6697:4: ( (lv_writeable_1_0= 'var' ) )
+                    // InternalChartDSL.g:6698:5: (lv_writeable_1_0= 'var' )
                     {
-                    // InternalChartDSL.g:6394:5: (lv_writeable_1_0= 'var' )
-                    // InternalChartDSL.g:6395:6: lv_writeable_1_0= 'var'
+                    // InternalChartDSL.g:6698:5: (lv_writeable_1_0= 'var' )
+                    // InternalChartDSL.g:6699:6: lv_writeable_1_0= 'var'
                     {
-                    lv_writeable_1_0=(Token)match(input,119,FOLLOW_63); if (state.failed) return current;
+                    lv_writeable_1_0=(Token)match(input,129,FOLLOW_76); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
@@ -17906,9 +18680,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:6408:4: otherlv_2= 'val'
+                    // InternalChartDSL.g:6712:4: otherlv_2= 'val'
                     {
-                    otherlv_2=(Token)match(input,120,FOLLOW_63); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,130,FOLLOW_76); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
@@ -17920,55 +18694,55 @@
 
             }
 
-            // InternalChartDSL.g:6413:3: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
-            int alt108=2;
-            int LA108_0 = input.LA(1);
+            // InternalChartDSL.g:6717:3: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
+            int alt120=2;
+            int LA120_0 = input.LA(1);
 
-            if ( (LA108_0==RULE_ID) ) {
-                int LA108_1 = input.LA(2);
+            if ( (LA120_0==RULE_ID) ) {
+                int LA120_1 = input.LA(2);
 
                 if ( (synpred35_InternalChartDSL()) ) {
-                    alt108=1;
+                    alt120=1;
                 }
                 else if ( (true) ) {
-                    alt108=2;
+                    alt120=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 108, 1, input);
+                        new NoViableAltException("", 120, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA108_0==71) && (synpred35_InternalChartDSL())) {
-                alt108=1;
+            else if ( (LA120_0==81) && (synpred35_InternalChartDSL())) {
+                alt120=1;
             }
-            else if ( (LA108_0==96) && (synpred35_InternalChartDSL())) {
-                alt108=1;
+            else if ( (LA120_0==106) && (synpred35_InternalChartDSL())) {
+                alt120=1;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 108, 0, input);
+                    new NoViableAltException("", 120, 0, input);
 
                 throw nvae;
             }
-            switch (alt108) {
+            switch (alt120) {
                 case 1 :
-                    // InternalChartDSL.g:6414:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    // InternalChartDSL.g:6718:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
                     {
-                    // InternalChartDSL.g:6414:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
-                    // InternalChartDSL.g:6415:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    // InternalChartDSL.g:6718:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    // InternalChartDSL.g:6719:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
                     {
-                    // InternalChartDSL.g:6428:5: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
-                    // InternalChartDSL.g:6429:6: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
+                    // InternalChartDSL.g:6732:5: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    // InternalChartDSL.g:6733:6: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
                     {
-                    // InternalChartDSL.g:6429:6: ( (lv_type_3_0= ruleJvmTypeReference ) )
-                    // InternalChartDSL.g:6430:7: (lv_type_3_0= ruleJvmTypeReference )
+                    // InternalChartDSL.g:6733:6: ( (lv_type_3_0= ruleJvmTypeReference ) )
+                    // InternalChartDSL.g:6734:7: (lv_type_3_0= ruleJvmTypeReference )
                     {
-                    // InternalChartDSL.g:6430:7: (lv_type_3_0= ruleJvmTypeReference )
-                    // InternalChartDSL.g:6431:8: lv_type_3_0= ruleJvmTypeReference
+                    // InternalChartDSL.g:6734:7: (lv_type_3_0= ruleJvmTypeReference )
+                    // InternalChartDSL.g:6735:8: lv_type_3_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17999,18 +18773,18 @@
 
                     }
 
-                    // InternalChartDSL.g:6448:6: ( (lv_name_4_0= ruleValidID ) )
-                    // InternalChartDSL.g:6449:7: (lv_name_4_0= ruleValidID )
+                    // InternalChartDSL.g:6752:6: ( (lv_name_4_0= ruleValidID ) )
+                    // InternalChartDSL.g:6753:7: (lv_name_4_0= ruleValidID )
                     {
-                    // InternalChartDSL.g:6449:7: (lv_name_4_0= ruleValidID )
-                    // InternalChartDSL.g:6450:8: lv_name_4_0= ruleValidID
+                    // InternalChartDSL.g:6753:7: (lv_name_4_0= ruleValidID )
+                    // InternalChartDSL.g:6754:8: lv_name_4_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
                       								newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0());
                       							
                     }
-                    pushFollow(FOLLOW_104);
+                    pushFollow(FOLLOW_117);
                     lv_name_4_0=ruleValidID();
 
                     state._fsp--;
@@ -18044,20 +18818,20 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:6470:4: ( (lv_name_5_0= ruleValidID ) )
+                    // InternalChartDSL.g:6774:4: ( (lv_name_5_0= ruleValidID ) )
                     {
-                    // InternalChartDSL.g:6470:4: ( (lv_name_5_0= ruleValidID ) )
-                    // InternalChartDSL.g:6471:5: (lv_name_5_0= ruleValidID )
+                    // InternalChartDSL.g:6774:4: ( (lv_name_5_0= ruleValidID ) )
+                    // InternalChartDSL.g:6775:5: (lv_name_5_0= ruleValidID )
                     {
-                    // InternalChartDSL.g:6471:5: (lv_name_5_0= ruleValidID )
-                    // InternalChartDSL.g:6472:6: lv_name_5_0= ruleValidID
+                    // InternalChartDSL.g:6775:5: (lv_name_5_0= ruleValidID )
+                    // InternalChartDSL.g:6776:6: lv_name_5_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_104);
+                    pushFollow(FOLLOW_117);
                     lv_name_5_0=ruleValidID();
 
                     state._fsp--;
@@ -18087,28 +18861,28 @@
 
             }
 
-            // InternalChartDSL.g:6490:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
-            int alt109=2;
-            int LA109_0 = input.LA(1);
+            // InternalChartDSL.g:6794:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+            int alt121=2;
+            int LA121_0 = input.LA(1);
 
-            if ( (LA109_0==74) ) {
-                alt109=1;
+            if ( (LA121_0==84) ) {
+                alt121=1;
             }
-            switch (alt109) {
+            switch (alt121) {
                 case 1 :
-                    // InternalChartDSL.g:6491:4: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
+                    // InternalChartDSL.g:6795:4: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
                     {
-                    otherlv_6=(Token)match(input,74,FOLLOW_50); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,84,FOLLOW_63); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
                       			
                     }
-                    // InternalChartDSL.g:6495:4: ( (lv_right_7_0= ruleXExpression ) )
-                    // InternalChartDSL.g:6496:5: (lv_right_7_0= ruleXExpression )
+                    // InternalChartDSL.g:6799:4: ( (lv_right_7_0= ruleXExpression ) )
+                    // InternalChartDSL.g:6800:5: (lv_right_7_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:6496:5: (lv_right_7_0= ruleXExpression )
-                    // InternalChartDSL.g:6497:6: lv_right_7_0= ruleXExpression
+                    // InternalChartDSL.g:6800:5: (lv_right_7_0= ruleXExpression )
+                    // InternalChartDSL.g:6801:6: lv_right_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18170,7 +18944,7 @@
 
 
     // $ANTLR start "entryRuleJvmFormalParameter"
-    // InternalChartDSL.g:6519:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
+    // InternalChartDSL.g:6823:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
     public final EObject entryRuleJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -18178,8 +18952,8 @@
 
 
         try {
-            // InternalChartDSL.g:6519:59: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
-            // InternalChartDSL.g:6520:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
+            // InternalChartDSL.g:6823:59: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
+            // InternalChartDSL.g:6824:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmFormalParameterRule()); 
@@ -18210,7 +18984,7 @@
 
 
     // $ANTLR start "ruleJvmFormalParameter"
-    // InternalChartDSL.g:6526:1: ruleJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) ;
+    // InternalChartDSL.g:6830:1: ruleJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) ;
     public final EObject ruleJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -18223,32 +18997,32 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:6532:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
-            // InternalChartDSL.g:6533:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalChartDSL.g:6836:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalChartDSL.g:6837:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
             {
-            // InternalChartDSL.g:6533:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
-            // InternalChartDSL.g:6534:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
+            // InternalChartDSL.g:6837:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalChartDSL.g:6838:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
             {
-            // InternalChartDSL.g:6534:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
-            int alt110=2;
-            int LA110_0 = input.LA(1);
+            // InternalChartDSL.g:6838:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
+            int alt122=2;
+            int LA122_0 = input.LA(1);
 
-            if ( (LA110_0==RULE_ID) ) {
-                int LA110_1 = input.LA(2);
+            if ( (LA122_0==RULE_ID) ) {
+                int LA122_1 = input.LA(2);
 
-                if ( (LA110_1==RULE_ID||LA110_1==76||LA110_1==83||LA110_1==106) ) {
-                    alt110=1;
+                if ( (LA122_1==RULE_ID||LA122_1==86||LA122_1==93||LA122_1==116) ) {
+                    alt122=1;
                 }
             }
-            else if ( (LA110_0==71||LA110_0==96) ) {
-                alt110=1;
+            else if ( (LA122_0==81||LA122_0==106) ) {
+                alt122=1;
             }
-            switch (alt110) {
+            switch (alt122) {
                 case 1 :
-                    // InternalChartDSL.g:6535:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    // InternalChartDSL.g:6839:4: (lv_parameterType_0_0= ruleJvmTypeReference )
                     {
-                    // InternalChartDSL.g:6535:4: (lv_parameterType_0_0= ruleJvmTypeReference )
-                    // InternalChartDSL.g:6536:5: lv_parameterType_0_0= ruleJvmTypeReference
+                    // InternalChartDSL.g:6839:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    // InternalChartDSL.g:6840:5: lv_parameterType_0_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18282,11 +19056,11 @@
 
             }
 
-            // InternalChartDSL.g:6553:3: ( (lv_name_1_0= ruleValidID ) )
-            // InternalChartDSL.g:6554:4: (lv_name_1_0= ruleValidID )
+            // InternalChartDSL.g:6857:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalChartDSL.g:6858:4: (lv_name_1_0= ruleValidID )
             {
-            // InternalChartDSL.g:6554:4: (lv_name_1_0= ruleValidID )
-            // InternalChartDSL.g:6555:5: lv_name_1_0= ruleValidID
+            // InternalChartDSL.g:6858:4: (lv_name_1_0= ruleValidID )
+            // InternalChartDSL.g:6859:5: lv_name_1_0= ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -18342,7 +19116,7 @@
 
 
     // $ANTLR start "entryRuleFullJvmFormalParameter"
-    // InternalChartDSL.g:6576:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
+    // InternalChartDSL.g:6880:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
     public final EObject entryRuleFullJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -18350,8 +19124,8 @@
 
 
         try {
-            // InternalChartDSL.g:6576:63: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
-            // InternalChartDSL.g:6577:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
+            // InternalChartDSL.g:6880:63: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
+            // InternalChartDSL.g:6881:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFullJvmFormalParameterRule()); 
@@ -18382,7 +19156,7 @@
 
 
     // $ANTLR start "ruleFullJvmFormalParameter"
-    // InternalChartDSL.g:6583:1: ruleFullJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) ;
+    // InternalChartDSL.g:6887:1: ruleFullJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) ;
     public final EObject ruleFullJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -18395,17 +19169,17 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:6589:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
-            // InternalChartDSL.g:6590:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalChartDSL.g:6893:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalChartDSL.g:6894:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
             {
-            // InternalChartDSL.g:6590:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
-            // InternalChartDSL.g:6591:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
+            // InternalChartDSL.g:6894:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalChartDSL.g:6895:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
             {
-            // InternalChartDSL.g:6591:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
-            // InternalChartDSL.g:6592:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:6895:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+            // InternalChartDSL.g:6896:4: (lv_parameterType_0_0= ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:6592:4: (lv_parameterType_0_0= ruleJvmTypeReference )
-            // InternalChartDSL.g:6593:5: lv_parameterType_0_0= ruleJvmTypeReference
+            // InternalChartDSL.g:6896:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:6897:5: lv_parameterType_0_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -18436,11 +19210,11 @@
 
             }
 
-            // InternalChartDSL.g:6610:3: ( (lv_name_1_0= ruleValidID ) )
-            // InternalChartDSL.g:6611:4: (lv_name_1_0= ruleValidID )
+            // InternalChartDSL.g:6914:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalChartDSL.g:6915:4: (lv_name_1_0= ruleValidID )
             {
-            // InternalChartDSL.g:6611:4: (lv_name_1_0= ruleValidID )
-            // InternalChartDSL.g:6612:5: lv_name_1_0= ruleValidID
+            // InternalChartDSL.g:6915:4: (lv_name_1_0= ruleValidID )
+            // InternalChartDSL.g:6916:5: lv_name_1_0= ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -18496,7 +19270,7 @@
 
 
     // $ANTLR start "entryRuleXFeatureCall"
-    // InternalChartDSL.g:6633:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
+    // InternalChartDSL.g:6937:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
     public final EObject entryRuleXFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -18504,8 +19278,8 @@
 
 
         try {
-            // InternalChartDSL.g:6633:53: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
-            // InternalChartDSL.g:6634:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
+            // InternalChartDSL.g:6937:53: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
+            // InternalChartDSL.g:6938:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXFeatureCallRule()); 
@@ -18536,7 +19310,7 @@
 
 
     // $ANTLR start "ruleXFeatureCall"
-    // InternalChartDSL.g:6640:1: ruleXFeatureCall returns [EObject current=null] : ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) ;
+    // InternalChartDSL.g:6944:1: ruleXFeatureCall returns [EObject current=null] : ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) ;
     public final EObject ruleXFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -18563,14 +19337,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:6646:2: ( ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) )
-            // InternalChartDSL.g:6647:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+            // InternalChartDSL.g:6950:2: ( ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) )
+            // InternalChartDSL.g:6951:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
             {
-            // InternalChartDSL.g:6647:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
-            // InternalChartDSL.g:6648:3: () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+            // InternalChartDSL.g:6951:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+            // InternalChartDSL.g:6952:3: () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
             {
-            // InternalChartDSL.g:6648:3: ()
-            // InternalChartDSL.g:6649:4: 
+            // InternalChartDSL.g:6952:3: ()
+            // InternalChartDSL.g:6953:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18582,35 +19356,35 @@
 
             }
 
-            // InternalChartDSL.g:6655:3: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
-            int alt112=2;
-            int LA112_0 = input.LA(1);
+            // InternalChartDSL.g:6959:3: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
+            int alt124=2;
+            int LA124_0 = input.LA(1);
 
-            if ( (LA112_0==83) ) {
-                alt112=1;
+            if ( (LA124_0==93) ) {
+                alt124=1;
             }
-            switch (alt112) {
+            switch (alt124) {
                 case 1 :
-                    // InternalChartDSL.g:6656:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
+                    // InternalChartDSL.g:6960:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
                     {
-                    otherlv_1=(Token)match(input,83,FOLLOW_75); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,93,FOLLOW_88); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
                       			
                     }
-                    // InternalChartDSL.g:6660:4: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
-                    // InternalChartDSL.g:6661:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalChartDSL.g:6964:4: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalChartDSL.g:6965:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalChartDSL.g:6661:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
-                    // InternalChartDSL.g:6662:6: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
+                    // InternalChartDSL.g:6965:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalChartDSL.g:6966:6: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_76);
+                    pushFollow(FOLLOW_89);
                     lv_typeArguments_2_0=ruleJvmArgumentTypeReference();
 
                     state._fsp--;
@@ -18634,39 +19408,39 @@
 
                     }
 
-                    // InternalChartDSL.g:6679:4: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop111:
+                    // InternalChartDSL.g:6983:4: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop123:
                     do {
-                        int alt111=2;
-                        int LA111_0 = input.LA(1);
+                        int alt123=2;
+                        int LA123_0 = input.LA(1);
 
-                        if ( (LA111_0==72) ) {
-                            alt111=1;
+                        if ( (LA123_0==82) ) {
+                            alt123=1;
                         }
 
 
-                        switch (alt111) {
+                        switch (alt123) {
                     	case 1 :
-                    	    // InternalChartDSL.g:6680:5: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalChartDSL.g:6984:5: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,72,FOLLOW_75); if (state.failed) return current;
+                    	    otherlv_3=(Token)match(input,82,FOLLOW_88); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
                     	      				
                     	    }
-                    	    // InternalChartDSL.g:6684:5: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalChartDSL.g:6685:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalChartDSL.g:6988:5: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalChartDSL.g:6989:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalChartDSL.g:6685:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
-                    	    // InternalChartDSL.g:6686:7: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    	    // InternalChartDSL.g:6989:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalChartDSL.g:6990:7: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_76);
+                    	    pushFollow(FOLLOW_89);
                     	    lv_typeArguments_4_0=ruleJvmArgumentTypeReference();
 
                     	    state._fsp--;
@@ -18695,11 +19469,11 @@
                     	    break;
 
                     	default :
-                    	    break loop111;
+                    	    break loop123;
                         }
                     } while (true);
 
-                    otherlv_5=(Token)match(input,84,FOLLOW_74); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,94,FOLLOW_87); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
@@ -18711,11 +19485,11 @@
 
             }
 
-            // InternalChartDSL.g:6709:3: ( ( ruleIdOrSuper ) )
-            // InternalChartDSL.g:6710:4: ( ruleIdOrSuper )
+            // InternalChartDSL.g:7013:3: ( ( ruleIdOrSuper ) )
+            // InternalChartDSL.g:7014:4: ( ruleIdOrSuper )
             {
-            // InternalChartDSL.g:6710:4: ( ruleIdOrSuper )
-            // InternalChartDSL.g:6711:5: ruleIdOrSuper
+            // InternalChartDSL.g:7014:4: ( ruleIdOrSuper )
+            // InternalChartDSL.g:7015:5: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
 
@@ -18729,7 +19503,7 @@
               					newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_105);
+            pushFollow(FOLLOW_118);
             ruleIdOrSuper();
 
             state._fsp--;
@@ -18745,20 +19519,20 @@
 
             }
 
-            // InternalChartDSL.g:6725:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?
-            int alt115=2;
-            alt115 = dfa115.predict(input);
-            switch (alt115) {
+            // InternalChartDSL.g:7029:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?
+            int alt127=2;
+            alt127 = dfa127.predict(input);
+            switch (alt127) {
                 case 1 :
-                    // InternalChartDSL.g:6726:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')'
+                    // InternalChartDSL.g:7030:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')'
                     {
-                    // InternalChartDSL.g:6726:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
-                    // InternalChartDSL.g:6727:5: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
+                    // InternalChartDSL.g:7030:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
+                    // InternalChartDSL.g:7031:5: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
                     {
-                    // InternalChartDSL.g:6731:5: (lv_explicitOperationCall_7_0= '(' )
-                    // InternalChartDSL.g:6732:6: lv_explicitOperationCall_7_0= '('
+                    // InternalChartDSL.g:7035:5: (lv_explicitOperationCall_7_0= '(' )
+                    // InternalChartDSL.g:7036:6: lv_explicitOperationCall_7_0= '('
                     {
-                    lv_explicitOperationCall_7_0=(Token)match(input,71,FOLLOW_78); if (state.failed) return current;
+                    lv_explicitOperationCall_7_0=(Token)match(input,81,FOLLOW_91); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
@@ -18778,25 +19552,25 @@
 
                     }
 
-                    // InternalChartDSL.g:6744:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
-                    int alt114=3;
-                    alt114 = dfa114.predict(input);
-                    switch (alt114) {
+                    // InternalChartDSL.g:7048:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
+                    int alt126=3;
+                    alt126 = dfa126.predict(input);
+                    switch (alt126) {
                         case 1 :
-                            // InternalChartDSL.g:6745:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            // InternalChartDSL.g:7049:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
                             {
-                            // InternalChartDSL.g:6745:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
-                            // InternalChartDSL.g:6746:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            // InternalChartDSL.g:7049:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            // InternalChartDSL.g:7050:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
                             {
-                            // InternalChartDSL.g:6771:6: (lv_featureCallArguments_8_0= ruleXShortClosure )
-                            // InternalChartDSL.g:6772:7: lv_featureCallArguments_8_0= ruleXShortClosure
+                            // InternalChartDSL.g:7075:6: (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            // InternalChartDSL.g:7076:7: lv_featureCallArguments_8_0= ruleXShortClosure
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_48);
+                            pushFollow(FOLLOW_61);
                             lv_featureCallArguments_8_0=ruleXShortClosure();
 
                             state._fsp--;
@@ -18824,23 +19598,23 @@
                             }
                             break;
                         case 2 :
-                            // InternalChartDSL.g:6790:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            // InternalChartDSL.g:7094:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
                             {
-                            // InternalChartDSL.g:6790:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
-                            // InternalChartDSL.g:6791:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            // InternalChartDSL.g:7094:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            // InternalChartDSL.g:7095:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
                             {
-                            // InternalChartDSL.g:6791:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
-                            // InternalChartDSL.g:6792:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            // InternalChartDSL.g:7095:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
+                            // InternalChartDSL.g:7096:7: (lv_featureCallArguments_9_0= ruleXExpression )
                             {
-                            // InternalChartDSL.g:6792:7: (lv_featureCallArguments_9_0= ruleXExpression )
-                            // InternalChartDSL.g:6793:8: lv_featureCallArguments_9_0= ruleXExpression
+                            // InternalChartDSL.g:7096:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            // InternalChartDSL.g:7097:8: lv_featureCallArguments_9_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_47);
+                            pushFollow(FOLLOW_60);
                             lv_featureCallArguments_9_0=ruleXExpression();
 
                             state._fsp--;
@@ -18864,39 +19638,39 @@
 
                             }
 
-                            // InternalChartDSL.g:6810:6: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
-                            loop113:
+                            // InternalChartDSL.g:7114:6: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            loop125:
                             do {
-                                int alt113=2;
-                                int LA113_0 = input.LA(1);
+                                int alt125=2;
+                                int LA125_0 = input.LA(1);
 
-                                if ( (LA113_0==72) ) {
-                                    alt113=1;
+                                if ( (LA125_0==82) ) {
+                                    alt125=1;
                                 }
 
 
-                                switch (alt113) {
+                                switch (alt125) {
                             	case 1 :
-                            	    // InternalChartDSL.g:6811:7: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    // InternalChartDSL.g:7115:7: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
                             	    {
-                            	    otherlv_10=(Token)match(input,72,FOLLOW_50); if (state.failed) return current;
+                            	    otherlv_10=(Token)match(input,82,FOLLOW_63); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
                             	      						
                             	    }
-                            	    // InternalChartDSL.g:6815:7: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
-                            	    // InternalChartDSL.g:6816:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    // InternalChartDSL.g:7119:7: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    // InternalChartDSL.g:7120:8: (lv_featureCallArguments_11_0= ruleXExpression )
                             	    {
-                            	    // InternalChartDSL.g:6816:8: (lv_featureCallArguments_11_0= ruleXExpression )
-                            	    // InternalChartDSL.g:6817:9: lv_featureCallArguments_11_0= ruleXExpression
+                            	    // InternalChartDSL.g:7120:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    // InternalChartDSL.g:7121:9: lv_featureCallArguments_11_0= ruleXExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_47);
+                            	    pushFollow(FOLLOW_60);
                             	    lv_featureCallArguments_11_0=ruleXExpression();
 
                             	    state._fsp--;
@@ -18925,7 +19699,7 @@
                             	    break;
 
                             	default :
-                            	    break loop113;
+                            	    break loop125;
                                 }
                             } while (true);
 
@@ -18938,7 +19712,7 @@
 
                     }
 
-                    otherlv_12=(Token)match(input,73,FOLLOW_106); if (state.failed) return current;
+                    otherlv_12=(Token)match(input,83,FOLLOW_119); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
@@ -18950,15 +19724,15 @@
 
             }
 
-            // InternalChartDSL.g:6842:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
-            int alt116=2;
-            alt116 = dfa116.predict(input);
-            switch (alt116) {
+            // InternalChartDSL.g:7146:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+            int alt128=2;
+            alt128 = dfa128.predict(input);
+            switch (alt128) {
                 case 1 :
-                    // InternalChartDSL.g:6843:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
+                    // InternalChartDSL.g:7147:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
                     {
-                    // InternalChartDSL.g:6849:4: (lv_featureCallArguments_13_0= ruleXClosure )
-                    // InternalChartDSL.g:6850:5: lv_featureCallArguments_13_0= ruleXClosure
+                    // InternalChartDSL.g:7153:4: (lv_featureCallArguments_13_0= ruleXClosure )
+                    // InternalChartDSL.g:7154:5: lv_featureCallArguments_13_0= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19017,7 +19791,7 @@
 
 
     // $ANTLR start "entryRuleFeatureCallID"
-    // InternalChartDSL.g:6871:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
+    // InternalChartDSL.g:7175:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
     public final String entryRuleFeatureCallID() throws RecognitionException {
         String current = null;
 
@@ -19025,8 +19799,8 @@
 
 
         try {
-            // InternalChartDSL.g:6871:53: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
-            // InternalChartDSL.g:6872:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
+            // InternalChartDSL.g:7175:53: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
+            // InternalChartDSL.g:7176:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFeatureCallIDRule()); 
@@ -19057,7 +19831,7 @@
 
 
     // $ANTLR start "ruleFeatureCallID"
-    // InternalChartDSL.g:6878:1: ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) ;
+    // InternalChartDSL.g:7182:1: ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) ;
     public final AntlrDatatypeRuleToken ruleFeatureCallID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -19069,48 +19843,48 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:6884:2: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
-            // InternalChartDSL.g:6885:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            // InternalChartDSL.g:7188:2: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
+            // InternalChartDSL.g:7189:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
             {
-            // InternalChartDSL.g:6885:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
-            int alt117=5;
+            // InternalChartDSL.g:7189:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            int alt129=5;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                alt117=1;
+                alt129=1;
                 }
                 break;
-            case 121:
+            case 131:
                 {
-                alt117=2;
+                alt129=2;
                 }
                 break;
-            case 65:
+            case 75:
                 {
-                alt117=3;
+                alt129=3;
                 }
                 break;
-            case 64:
+            case 74:
                 {
-                alt117=4;
+                alt129=4;
                 }
                 break;
-            case 66:
+            case 76:
                 {
-                alt117=5;
+                alt129=5;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 117, 0, input);
+                    new NoViableAltException("", 129, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt117) {
+            switch (alt129) {
                 case 1 :
-                    // InternalChartDSL.g:6886:3: this_ValidID_0= ruleValidID
+                    // InternalChartDSL.g:7190:3: this_ValidID_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19136,9 +19910,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:6897:3: kw= 'extends'
+                    // InternalChartDSL.g:7201:3: kw= 'extends'
                     {
-                    kw=(Token)match(input,121,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,131,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -19149,9 +19923,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:6903:3: kw= 'static'
+                    // InternalChartDSL.g:7207:3: kw= 'static'
                     {
-                    kw=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -19162,9 +19936,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:6909:3: kw= 'import'
+                    // InternalChartDSL.g:7213:3: kw= 'import'
                     {
-                    kw=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -19175,9 +19949,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:6915:3: kw= 'extension'
+                    // InternalChartDSL.g:7219:3: kw= 'extension'
                     {
-                    kw=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -19212,7 +19986,7 @@
 
 
     // $ANTLR start "entryRuleIdOrSuper"
-    // InternalChartDSL.g:6924:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
+    // InternalChartDSL.g:7228:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
     public final String entryRuleIdOrSuper() throws RecognitionException {
         String current = null;
 
@@ -19220,8 +19994,8 @@
 
 
         try {
-            // InternalChartDSL.g:6924:49: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
-            // InternalChartDSL.g:6925:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
+            // InternalChartDSL.g:7228:49: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
+            // InternalChartDSL.g:7229:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIdOrSuperRule()); 
@@ -19252,7 +20026,7 @@
 
 
     // $ANTLR start "ruleIdOrSuper"
-    // InternalChartDSL.g:6931:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
+    // InternalChartDSL.g:7235:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
     public final AntlrDatatypeRuleToken ruleIdOrSuper() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -19264,29 +20038,29 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:6937:2: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
-            // InternalChartDSL.g:6938:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            // InternalChartDSL.g:7241:2: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
+            // InternalChartDSL.g:7242:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
             {
-            // InternalChartDSL.g:6938:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
-            int alt118=2;
-            int LA118_0 = input.LA(1);
+            // InternalChartDSL.g:7242:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            int alt130=2;
+            int LA130_0 = input.LA(1);
 
-            if ( (LA118_0==RULE_ID||(LA118_0>=64 && LA118_0<=66)||LA118_0==121) ) {
-                alt118=1;
+            if ( (LA130_0==RULE_ID||(LA130_0>=74 && LA130_0<=76)||LA130_0==131) ) {
+                alt130=1;
             }
-            else if ( (LA118_0==122) ) {
-                alt118=2;
+            else if ( (LA130_0==132) ) {
+                alt130=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 118, 0, input);
+                    new NoViableAltException("", 130, 0, input);
 
                 throw nvae;
             }
-            switch (alt118) {
+            switch (alt130) {
                 case 1 :
-                    // InternalChartDSL.g:6939:3: this_FeatureCallID_0= ruleFeatureCallID
+                    // InternalChartDSL.g:7243:3: this_FeatureCallID_0= ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19312,9 +20086,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:6950:3: kw= 'super'
+                    // InternalChartDSL.g:7254:3: kw= 'super'
                     {
-                    kw=(Token)match(input,122,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,132,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -19349,7 +20123,7 @@
 
 
     // $ANTLR start "entryRuleXConstructorCall"
-    // InternalChartDSL.g:6959:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
+    // InternalChartDSL.g:7263:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
     public final EObject entryRuleXConstructorCall() throws RecognitionException {
         EObject current = null;
 
@@ -19357,8 +20131,8 @@
 
 
         try {
-            // InternalChartDSL.g:6959:57: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
-            // InternalChartDSL.g:6960:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
+            // InternalChartDSL.g:7263:57: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
+            // InternalChartDSL.g:7264:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXConstructorCallRule()); 
@@ -19389,7 +20163,7 @@
 
 
     // $ANTLR start "ruleXConstructorCall"
-    // InternalChartDSL.g:6966:1: ruleXConstructorCall returns [EObject current=null] : ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) ;
+    // InternalChartDSL.g:7270:1: ruleXConstructorCall returns [EObject current=null] : ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) ;
     public final EObject ruleXConstructorCall() throws RecognitionException {
         EObject current = null;
 
@@ -19417,14 +20191,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:6972:2: ( ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) )
-            // InternalChartDSL.g:6973:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+            // InternalChartDSL.g:7276:2: ( ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) )
+            // InternalChartDSL.g:7277:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
             {
-            // InternalChartDSL.g:6973:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
-            // InternalChartDSL.g:6974:3: () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+            // InternalChartDSL.g:7277:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+            // InternalChartDSL.g:7278:3: () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
             {
-            // InternalChartDSL.g:6974:3: ()
-            // InternalChartDSL.g:6975:4: 
+            // InternalChartDSL.g:7278:3: ()
+            // InternalChartDSL.g:7279:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -19436,17 +20210,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,123,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,133,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
               		
             }
-            // InternalChartDSL.g:6985:3: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:6986:4: ( ruleQualifiedName )
+            // InternalChartDSL.g:7289:3: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:7290:4: ( ruleQualifiedName )
             {
-            // InternalChartDSL.g:6986:4: ( ruleQualifiedName )
-            // InternalChartDSL.g:6987:5: ruleQualifiedName
+            // InternalChartDSL.g:7290:4: ( ruleQualifiedName )
+            // InternalChartDSL.g:7291:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -19460,7 +20234,7 @@
               					newCompositeNode(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_107);
+            pushFollow(FOLLOW_120);
             ruleQualifiedName();
 
             state._fsp--;
@@ -19476,17 +20250,17 @@
 
             }
 
-            // InternalChartDSL.g:7001:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
-            int alt120=2;
-            alt120 = dfa120.predict(input);
-            switch (alt120) {
+            // InternalChartDSL.g:7305:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
+            int alt132=2;
+            alt132 = dfa132.predict(input);
+            switch (alt132) {
                 case 1 :
-                    // InternalChartDSL.g:7002:4: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
+                    // InternalChartDSL.g:7306:4: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
                     {
-                    // InternalChartDSL.g:7002:4: ( ( '<' )=>otherlv_3= '<' )
-                    // InternalChartDSL.g:7003:5: ( '<' )=>otherlv_3= '<'
+                    // InternalChartDSL.g:7306:4: ( ( '<' )=>otherlv_3= '<' )
+                    // InternalChartDSL.g:7307:5: ( '<' )=>otherlv_3= '<'
                     {
-                    otherlv_3=(Token)match(input,83,FOLLOW_75); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,93,FOLLOW_88); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
@@ -19495,18 +20269,18 @@
 
                     }
 
-                    // InternalChartDSL.g:7009:4: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
-                    // InternalChartDSL.g:7010:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    // InternalChartDSL.g:7313:4: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    // InternalChartDSL.g:7314:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalChartDSL.g:7010:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
-                    // InternalChartDSL.g:7011:6: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    // InternalChartDSL.g:7314:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    // InternalChartDSL.g:7315:6: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_76);
+                    pushFollow(FOLLOW_89);
                     lv_typeArguments_4_0=ruleJvmArgumentTypeReference();
 
                     state._fsp--;
@@ -19530,39 +20304,39 @@
 
                     }
 
-                    // InternalChartDSL.g:7028:4: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop119:
+                    // InternalChartDSL.g:7332:4: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop131:
                     do {
-                        int alt119=2;
-                        int LA119_0 = input.LA(1);
+                        int alt131=2;
+                        int LA131_0 = input.LA(1);
 
-                        if ( (LA119_0==72) ) {
-                            alt119=1;
+                        if ( (LA131_0==82) ) {
+                            alt131=1;
                         }
 
 
-                        switch (alt119) {
+                        switch (alt131) {
                     	case 1 :
-                    	    // InternalChartDSL.g:7029:5: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalChartDSL.g:7333:5: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_5=(Token)match(input,72,FOLLOW_75); if (state.failed) return current;
+                    	    otherlv_5=(Token)match(input,82,FOLLOW_88); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
                     	      				
                     	    }
-                    	    // InternalChartDSL.g:7033:5: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalChartDSL.g:7034:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    // InternalChartDSL.g:7337:5: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalChartDSL.g:7338:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalChartDSL.g:7034:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
-                    	    // InternalChartDSL.g:7035:7: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
+                    	    // InternalChartDSL.g:7338:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    // InternalChartDSL.g:7339:7: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_76);
+                    	    pushFollow(FOLLOW_89);
                     	    lv_typeArguments_6_0=ruleJvmArgumentTypeReference();
 
                     	    state._fsp--;
@@ -19591,11 +20365,11 @@
                     	    break;
 
                     	default :
-                    	    break loop119;
+                    	    break loop131;
                         }
                     } while (true);
 
-                    otherlv_7=(Token)match(input,84,FOLLOW_105); if (state.failed) return current;
+                    otherlv_7=(Token)match(input,94,FOLLOW_118); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
@@ -19607,20 +20381,20 @@
 
             }
 
-            // InternalChartDSL.g:7058:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?
-            int alt123=2;
-            alt123 = dfa123.predict(input);
-            switch (alt123) {
+            // InternalChartDSL.g:7362:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?
+            int alt135=2;
+            alt135 = dfa135.predict(input);
+            switch (alt135) {
                 case 1 :
-                    // InternalChartDSL.g:7059:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')'
+                    // InternalChartDSL.g:7363:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')'
                     {
-                    // InternalChartDSL.g:7059:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) )
-                    // InternalChartDSL.g:7060:5: ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' )
+                    // InternalChartDSL.g:7363:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) )
+                    // InternalChartDSL.g:7364:5: ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' )
                     {
-                    // InternalChartDSL.g:7064:5: (lv_explicitConstructorCall_8_0= '(' )
-                    // InternalChartDSL.g:7065:6: lv_explicitConstructorCall_8_0= '('
+                    // InternalChartDSL.g:7368:5: (lv_explicitConstructorCall_8_0= '(' )
+                    // InternalChartDSL.g:7369:6: lv_explicitConstructorCall_8_0= '('
                     {
-                    lv_explicitConstructorCall_8_0=(Token)match(input,71,FOLLOW_78); if (state.failed) return current;
+                    lv_explicitConstructorCall_8_0=(Token)match(input,81,FOLLOW_91); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_explicitConstructorCall_8_0, grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0());
@@ -19640,25 +20414,25 @@
 
                     }
 
-                    // InternalChartDSL.g:7077:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
-                    int alt122=3;
-                    alt122 = dfa122.predict(input);
-                    switch (alt122) {
+                    // InternalChartDSL.g:7381:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
+                    int alt134=3;
+                    alt134 = dfa134.predict(input);
+                    switch (alt134) {
                         case 1 :
-                            // InternalChartDSL.g:7078:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            // InternalChartDSL.g:7382:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
                             {
-                            // InternalChartDSL.g:7078:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
-                            // InternalChartDSL.g:7079:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
+                            // InternalChartDSL.g:7382:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            // InternalChartDSL.g:7383:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
                             {
-                            // InternalChartDSL.g:7104:6: (lv_arguments_9_0= ruleXShortClosure )
-                            // InternalChartDSL.g:7105:7: lv_arguments_9_0= ruleXShortClosure
+                            // InternalChartDSL.g:7408:6: (lv_arguments_9_0= ruleXShortClosure )
+                            // InternalChartDSL.g:7409:7: lv_arguments_9_0= ruleXShortClosure
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_48);
+                            pushFollow(FOLLOW_61);
                             lv_arguments_9_0=ruleXShortClosure();
 
                             state._fsp--;
@@ -19686,23 +20460,23 @@
                             }
                             break;
                         case 2 :
-                            // InternalChartDSL.g:7123:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            // InternalChartDSL.g:7427:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
                             {
-                            // InternalChartDSL.g:7123:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
-                            // InternalChartDSL.g:7124:6: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            // InternalChartDSL.g:7427:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            // InternalChartDSL.g:7428:6: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
                             {
-                            // InternalChartDSL.g:7124:6: ( (lv_arguments_10_0= ruleXExpression ) )
-                            // InternalChartDSL.g:7125:7: (lv_arguments_10_0= ruleXExpression )
+                            // InternalChartDSL.g:7428:6: ( (lv_arguments_10_0= ruleXExpression ) )
+                            // InternalChartDSL.g:7429:7: (lv_arguments_10_0= ruleXExpression )
                             {
-                            // InternalChartDSL.g:7125:7: (lv_arguments_10_0= ruleXExpression )
-                            // InternalChartDSL.g:7126:8: lv_arguments_10_0= ruleXExpression
+                            // InternalChartDSL.g:7429:7: (lv_arguments_10_0= ruleXExpression )
+                            // InternalChartDSL.g:7430:8: lv_arguments_10_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_47);
+                            pushFollow(FOLLOW_60);
                             lv_arguments_10_0=ruleXExpression();
 
                             state._fsp--;
@@ -19726,39 +20500,39 @@
 
                             }
 
-                            // InternalChartDSL.g:7143:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
-                            loop121:
+                            // InternalChartDSL.g:7447:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            loop133:
                             do {
-                                int alt121=2;
-                                int LA121_0 = input.LA(1);
+                                int alt133=2;
+                                int LA133_0 = input.LA(1);
 
-                                if ( (LA121_0==72) ) {
-                                    alt121=1;
+                                if ( (LA133_0==82) ) {
+                                    alt133=1;
                                 }
 
 
-                                switch (alt121) {
+                                switch (alt133) {
                             	case 1 :
-                            	    // InternalChartDSL.g:7144:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    // InternalChartDSL.g:7448:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
                             	    {
-                            	    otherlv_11=(Token)match(input,72,FOLLOW_50); if (state.failed) return current;
+                            	    otherlv_11=(Token)match(input,82,FOLLOW_63); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
                             	      						
                             	    }
-                            	    // InternalChartDSL.g:7148:7: ( (lv_arguments_12_0= ruleXExpression ) )
-                            	    // InternalChartDSL.g:7149:8: (lv_arguments_12_0= ruleXExpression )
+                            	    // InternalChartDSL.g:7452:7: ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    // InternalChartDSL.g:7453:8: (lv_arguments_12_0= ruleXExpression )
                             	    {
-                            	    // InternalChartDSL.g:7149:8: (lv_arguments_12_0= ruleXExpression )
-                            	    // InternalChartDSL.g:7150:9: lv_arguments_12_0= ruleXExpression
+                            	    // InternalChartDSL.g:7453:8: (lv_arguments_12_0= ruleXExpression )
+                            	    // InternalChartDSL.g:7454:9: lv_arguments_12_0= ruleXExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_47);
+                            	    pushFollow(FOLLOW_60);
                             	    lv_arguments_12_0=ruleXExpression();
 
                             	    state._fsp--;
@@ -19787,7 +20561,7 @@
                             	    break;
 
                             	default :
-                            	    break loop121;
+                            	    break loop133;
                                 }
                             } while (true);
 
@@ -19800,7 +20574,7 @@
 
                     }
 
-                    otherlv_13=(Token)match(input,73,FOLLOW_106); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,83,FOLLOW_119); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
@@ -19812,15 +20586,15 @@
 
             }
 
-            // InternalChartDSL.g:7175:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
-            int alt124=2;
-            alt124 = dfa124.predict(input);
-            switch (alt124) {
+            // InternalChartDSL.g:7479:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+            int alt136=2;
+            alt136 = dfa136.predict(input);
+            switch (alt136) {
                 case 1 :
-                    // InternalChartDSL.g:7176:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
+                    // InternalChartDSL.g:7480:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
                     {
-                    // InternalChartDSL.g:7182:4: (lv_arguments_14_0= ruleXClosure )
-                    // InternalChartDSL.g:7183:5: lv_arguments_14_0= ruleXClosure
+                    // InternalChartDSL.g:7486:4: (lv_arguments_14_0= ruleXClosure )
+                    // InternalChartDSL.g:7487:5: lv_arguments_14_0= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19879,7 +20653,7 @@
 
 
     // $ANTLR start "entryRuleXBooleanLiteral"
-    // InternalChartDSL.g:7204:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
+    // InternalChartDSL.g:7508:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
     public final EObject entryRuleXBooleanLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -19887,8 +20661,8 @@
 
 
         try {
-            // InternalChartDSL.g:7204:56: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
-            // InternalChartDSL.g:7205:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
+            // InternalChartDSL.g:7508:56: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
+            // InternalChartDSL.g:7509:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBooleanLiteralRule()); 
@@ -19919,7 +20693,7 @@
 
 
     // $ANTLR start "ruleXBooleanLiteral"
-    // InternalChartDSL.g:7211:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
+    // InternalChartDSL.g:7515:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
     public final EObject ruleXBooleanLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -19930,14 +20704,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7217:2: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
-            // InternalChartDSL.g:7218:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            // InternalChartDSL.g:7521:2: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
+            // InternalChartDSL.g:7522:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
             {
-            // InternalChartDSL.g:7218:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
-            // InternalChartDSL.g:7219:3: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            // InternalChartDSL.g:7522:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            // InternalChartDSL.g:7523:3: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
             {
-            // InternalChartDSL.g:7219:3: ()
-            // InternalChartDSL.g:7220:4: 
+            // InternalChartDSL.g:7523:3: ()
+            // InternalChartDSL.g:7524:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -19949,28 +20723,28 @@
 
             }
 
-            // InternalChartDSL.g:7226:3: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
-            int alt125=2;
-            int LA125_0 = input.LA(1);
+            // InternalChartDSL.g:7530:3: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            int alt137=2;
+            int LA137_0 = input.LA(1);
 
-            if ( (LA125_0==124) ) {
-                alt125=1;
+            if ( (LA137_0==134) ) {
+                alt137=1;
             }
-            else if ( (LA125_0==125) ) {
-                alt125=2;
+            else if ( (LA137_0==135) ) {
+                alt137=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 125, 0, input);
+                    new NoViableAltException("", 137, 0, input);
 
                 throw nvae;
             }
-            switch (alt125) {
+            switch (alt137) {
                 case 1 :
-                    // InternalChartDSL.g:7227:4: otherlv_1= 'false'
+                    // InternalChartDSL.g:7531:4: otherlv_1= 'false'
                     {
-                    otherlv_1=(Token)match(input,124,FOLLOW_2); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,134,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
@@ -19980,15 +20754,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:7232:4: ( (lv_isTrue_2_0= 'true' ) )
+                    // InternalChartDSL.g:7536:4: ( (lv_isTrue_2_0= 'true' ) )
                     {
-                    // InternalChartDSL.g:7232:4: ( (lv_isTrue_2_0= 'true' ) )
-                    // InternalChartDSL.g:7233:5: (lv_isTrue_2_0= 'true' )
+                    // InternalChartDSL.g:7536:4: ( (lv_isTrue_2_0= 'true' ) )
+                    // InternalChartDSL.g:7537:5: (lv_isTrue_2_0= 'true' )
                     {
-                    // InternalChartDSL.g:7233:5: (lv_isTrue_2_0= 'true' )
-                    // InternalChartDSL.g:7234:6: lv_isTrue_2_0= 'true'
+                    // InternalChartDSL.g:7537:5: (lv_isTrue_2_0= 'true' )
+                    // InternalChartDSL.g:7538:6: lv_isTrue_2_0= 'true'
                     {
-                    lv_isTrue_2_0=(Token)match(input,125,FOLLOW_2); if (state.failed) return current;
+                    lv_isTrue_2_0=(Token)match(input,135,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
@@ -20039,7 +20813,7 @@
 
 
     // $ANTLR start "entryRuleXNullLiteral"
-    // InternalChartDSL.g:7251:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
+    // InternalChartDSL.g:7555:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
     public final EObject entryRuleXNullLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20047,8 +20821,8 @@
 
 
         try {
-            // InternalChartDSL.g:7251:53: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
-            // InternalChartDSL.g:7252:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
+            // InternalChartDSL.g:7555:53: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
+            // InternalChartDSL.g:7556:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXNullLiteralRule()); 
@@ -20079,7 +20853,7 @@
 
 
     // $ANTLR start "ruleXNullLiteral"
-    // InternalChartDSL.g:7258:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
+    // InternalChartDSL.g:7562:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
     public final EObject ruleXNullLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20089,14 +20863,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7264:2: ( ( () otherlv_1= 'null' ) )
-            // InternalChartDSL.g:7265:2: ( () otherlv_1= 'null' )
+            // InternalChartDSL.g:7568:2: ( ( () otherlv_1= 'null' ) )
+            // InternalChartDSL.g:7569:2: ( () otherlv_1= 'null' )
             {
-            // InternalChartDSL.g:7265:2: ( () otherlv_1= 'null' )
-            // InternalChartDSL.g:7266:3: () otherlv_1= 'null'
+            // InternalChartDSL.g:7569:2: ( () otherlv_1= 'null' )
+            // InternalChartDSL.g:7570:3: () otherlv_1= 'null'
             {
-            // InternalChartDSL.g:7266:3: ()
-            // InternalChartDSL.g:7267:4: 
+            // InternalChartDSL.g:7570:3: ()
+            // InternalChartDSL.g:7571:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20108,7 +20882,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,126,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,136,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
@@ -20139,7 +20913,7 @@
 
 
     // $ANTLR start "entryRuleXNumberLiteral"
-    // InternalChartDSL.g:7281:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
+    // InternalChartDSL.g:7585:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
     public final EObject entryRuleXNumberLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20147,8 +20921,8 @@
 
 
         try {
-            // InternalChartDSL.g:7281:55: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
-            // InternalChartDSL.g:7282:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
+            // InternalChartDSL.g:7585:55: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
+            // InternalChartDSL.g:7586:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXNumberLiteralRule()); 
@@ -20179,7 +20953,7 @@
 
 
     // $ANTLR start "ruleXNumberLiteral"
-    // InternalChartDSL.g:7288:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
+    // InternalChartDSL.g:7592:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
     public final EObject ruleXNumberLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20190,14 +20964,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7294:2: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
-            // InternalChartDSL.g:7295:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            // InternalChartDSL.g:7598:2: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
+            // InternalChartDSL.g:7599:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
             {
-            // InternalChartDSL.g:7295:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
-            // InternalChartDSL.g:7296:3: () ( (lv_value_1_0= ruleNumber ) )
+            // InternalChartDSL.g:7599:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            // InternalChartDSL.g:7600:3: () ( (lv_value_1_0= ruleNumber ) )
             {
-            // InternalChartDSL.g:7296:3: ()
-            // InternalChartDSL.g:7297:4: 
+            // InternalChartDSL.g:7600:3: ()
+            // InternalChartDSL.g:7601:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20209,11 +20983,11 @@
 
             }
 
-            // InternalChartDSL.g:7303:3: ( (lv_value_1_0= ruleNumber ) )
-            // InternalChartDSL.g:7304:4: (lv_value_1_0= ruleNumber )
+            // InternalChartDSL.g:7607:3: ( (lv_value_1_0= ruleNumber ) )
+            // InternalChartDSL.g:7608:4: (lv_value_1_0= ruleNumber )
             {
-            // InternalChartDSL.g:7304:4: (lv_value_1_0= ruleNumber )
-            // InternalChartDSL.g:7305:5: lv_value_1_0= ruleNumber
+            // InternalChartDSL.g:7608:4: (lv_value_1_0= ruleNumber )
+            // InternalChartDSL.g:7609:5: lv_value_1_0= ruleNumber
             {
             if ( state.backtracking==0 ) {
 
@@ -20269,7 +21043,7 @@
 
 
     // $ANTLR start "entryRuleXStringLiteral"
-    // InternalChartDSL.g:7326:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
+    // InternalChartDSL.g:7630:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
     public final EObject entryRuleXStringLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20277,8 +21051,8 @@
 
 
         try {
-            // InternalChartDSL.g:7326:55: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
-            // InternalChartDSL.g:7327:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
+            // InternalChartDSL.g:7630:55: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
+            // InternalChartDSL.g:7631:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXStringLiteralRule()); 
@@ -20309,7 +21083,7 @@
 
 
     // $ANTLR start "ruleXStringLiteral"
-    // InternalChartDSL.g:7333:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
+    // InternalChartDSL.g:7637:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
     public final EObject ruleXStringLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20319,14 +21093,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7339:2: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
-            // InternalChartDSL.g:7340:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            // InternalChartDSL.g:7643:2: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
+            // InternalChartDSL.g:7644:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
             {
-            // InternalChartDSL.g:7340:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
-            // InternalChartDSL.g:7341:3: () ( (lv_value_1_0= RULE_STRING ) )
+            // InternalChartDSL.g:7644:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            // InternalChartDSL.g:7645:3: () ( (lv_value_1_0= RULE_STRING ) )
             {
-            // InternalChartDSL.g:7341:3: ()
-            // InternalChartDSL.g:7342:4: 
+            // InternalChartDSL.g:7645:3: ()
+            // InternalChartDSL.g:7646:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20338,11 +21112,11 @@
 
             }
 
-            // InternalChartDSL.g:7348:3: ( (lv_value_1_0= RULE_STRING ) )
-            // InternalChartDSL.g:7349:4: (lv_value_1_0= RULE_STRING )
+            // InternalChartDSL.g:7652:3: ( (lv_value_1_0= RULE_STRING ) )
+            // InternalChartDSL.g:7653:4: (lv_value_1_0= RULE_STRING )
             {
-            // InternalChartDSL.g:7349:4: (lv_value_1_0= RULE_STRING )
-            // InternalChartDSL.g:7350:5: lv_value_1_0= RULE_STRING
+            // InternalChartDSL.g:7653:4: (lv_value_1_0= RULE_STRING )
+            // InternalChartDSL.g:7654:5: lv_value_1_0= RULE_STRING
             {
             lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -20393,7 +21167,7 @@
 
 
     // $ANTLR start "entryRuleXTypeLiteral"
-    // InternalChartDSL.g:7370:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
+    // InternalChartDSL.g:7674:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
     public final EObject entryRuleXTypeLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20401,8 +21175,8 @@
 
 
         try {
-            // InternalChartDSL.g:7370:53: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
-            // InternalChartDSL.g:7371:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
+            // InternalChartDSL.g:7674:53: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
+            // InternalChartDSL.g:7675:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXTypeLiteralRule()); 
@@ -20433,7 +21207,7 @@
 
 
     // $ANTLR start "ruleXTypeLiteral"
-    // InternalChartDSL.g:7377:1: ruleXTypeLiteral returns [EObject current=null] : ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) ;
+    // InternalChartDSL.g:7681:1: ruleXTypeLiteral returns [EObject current=null] : ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) ;
     public final EObject ruleXTypeLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -20447,14 +21221,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7383:2: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
-            // InternalChartDSL.g:7384:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            // InternalChartDSL.g:7687:2: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
+            // InternalChartDSL.g:7688:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
             {
-            // InternalChartDSL.g:7384:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
-            // InternalChartDSL.g:7385:3: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
+            // InternalChartDSL.g:7688:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            // InternalChartDSL.g:7689:3: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
             {
-            // InternalChartDSL.g:7385:3: ()
-            // InternalChartDSL.g:7386:4: 
+            // InternalChartDSL.g:7689:3: ()
+            // InternalChartDSL.g:7690:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20466,23 +21240,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,127,FOLLOW_88); if (state.failed) return current;
+            otherlv_1=(Token)match(input,137,FOLLOW_101); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,71,FOLLOW_4); if (state.failed) return current;
+            otherlv_2=(Token)match(input,81,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalChartDSL.g:7400:3: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:7401:4: ( ruleQualifiedName )
+            // InternalChartDSL.g:7704:3: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:7705:4: ( ruleQualifiedName )
             {
-            // InternalChartDSL.g:7401:4: ( ruleQualifiedName )
-            // InternalChartDSL.g:7402:5: ruleQualifiedName
+            // InternalChartDSL.g:7705:4: ( ruleQualifiedName )
+            // InternalChartDSL.g:7706:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -20496,7 +21270,7 @@
               					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0());
               				
             }
-            pushFollow(FOLLOW_108);
+            pushFollow(FOLLOW_121);
             ruleQualifiedName();
 
             state._fsp--;
@@ -20512,30 +21286,30 @@
 
             }
 
-            // InternalChartDSL.g:7416:3: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
-            loop126:
+            // InternalChartDSL.g:7720:3: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
+            loop138:
             do {
-                int alt126=2;
-                int LA126_0 = input.LA(1);
+                int alt138=2;
+                int LA138_0 = input.LA(1);
 
-                if ( (LA126_0==76) ) {
-                    alt126=1;
+                if ( (LA138_0==86) ) {
+                    alt138=1;
                 }
 
 
-                switch (alt126) {
+                switch (alt138) {
             	case 1 :
-            	    // InternalChartDSL.g:7417:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    // InternalChartDSL.g:7721:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
             	    {
-            	    // InternalChartDSL.g:7417:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
-            	    // InternalChartDSL.g:7418:5: lv_arrayDimensions_4_0= ruleArrayBrackets
+            	    // InternalChartDSL.g:7721:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    // InternalChartDSL.g:7722:5: lv_arrayDimensions_4_0= ruleArrayBrackets
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0());
             	      				
             	    }
-            	    pushFollow(FOLLOW_108);
+            	    pushFollow(FOLLOW_121);
             	    lv_arrayDimensions_4_0=ruleArrayBrackets();
 
             	    state._fsp--;
@@ -20561,11 +21335,11 @@
             	    break;
 
             	default :
-            	    break loop126;
+            	    break loop138;
                 }
             } while (true);
 
-            otherlv_5=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
+            otherlv_5=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
@@ -20596,7 +21370,7 @@
 
 
     // $ANTLR start "entryRuleXThrowExpression"
-    // InternalChartDSL.g:7443:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
+    // InternalChartDSL.g:7747:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
     public final EObject entryRuleXThrowExpression() throws RecognitionException {
         EObject current = null;
 
@@ -20604,8 +21378,8 @@
 
 
         try {
-            // InternalChartDSL.g:7443:57: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
-            // InternalChartDSL.g:7444:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
+            // InternalChartDSL.g:7747:57: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
+            // InternalChartDSL.g:7748:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXThrowExpressionRule()); 
@@ -20636,7 +21410,7 @@
 
 
     // $ANTLR start "ruleXThrowExpression"
-    // InternalChartDSL.g:7450:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
+    // InternalChartDSL.g:7754:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
     public final EObject ruleXThrowExpression() throws RecognitionException {
         EObject current = null;
 
@@ -20648,14 +21422,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7456:2: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
-            // InternalChartDSL.g:7457:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:7760:2: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
+            // InternalChartDSL.g:7761:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
             {
-            // InternalChartDSL.g:7457:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
-            // InternalChartDSL.g:7458:3: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalChartDSL.g:7761:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:7762:3: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
             {
-            // InternalChartDSL.g:7458:3: ()
-            // InternalChartDSL.g:7459:4: 
+            // InternalChartDSL.g:7762:3: ()
+            // InternalChartDSL.g:7763:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20667,17 +21441,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,128,FOLLOW_50); if (state.failed) return current;
+            otherlv_1=(Token)match(input,138,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
               		
             }
-            // InternalChartDSL.g:7469:3: ( (lv_expression_2_0= ruleXExpression ) )
-            // InternalChartDSL.g:7470:4: (lv_expression_2_0= ruleXExpression )
+            // InternalChartDSL.g:7773:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalChartDSL.g:7774:4: (lv_expression_2_0= ruleXExpression )
             {
-            // InternalChartDSL.g:7470:4: (lv_expression_2_0= ruleXExpression )
-            // InternalChartDSL.g:7471:5: lv_expression_2_0= ruleXExpression
+            // InternalChartDSL.g:7774:4: (lv_expression_2_0= ruleXExpression )
+            // InternalChartDSL.g:7775:5: lv_expression_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -20733,7 +21507,7 @@
 
 
     // $ANTLR start "entryRuleXReturnExpression"
-    // InternalChartDSL.g:7492:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
+    // InternalChartDSL.g:7796:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
     public final EObject entryRuleXReturnExpression() throws RecognitionException {
         EObject current = null;
 
@@ -20741,8 +21515,8 @@
 
 
         try {
-            // InternalChartDSL.g:7492:58: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
-            // InternalChartDSL.g:7493:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
+            // InternalChartDSL.g:7796:58: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
+            // InternalChartDSL.g:7797:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXReturnExpressionRule()); 
@@ -20773,7 +21547,7 @@
 
 
     // $ANTLR start "ruleXReturnExpression"
-    // InternalChartDSL.g:7499:1: ruleXReturnExpression returns [EObject current=null] : ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) ;
+    // InternalChartDSL.g:7803:1: ruleXReturnExpression returns [EObject current=null] : ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) ;
     public final EObject ruleXReturnExpression() throws RecognitionException {
         EObject current = null;
 
@@ -20785,14 +21559,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7505:2: ( ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) )
-            // InternalChartDSL.g:7506:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
+            // InternalChartDSL.g:7809:2: ( ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) )
+            // InternalChartDSL.g:7810:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
             {
-            // InternalChartDSL.g:7506:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
-            // InternalChartDSL.g:7507:3: () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
+            // InternalChartDSL.g:7810:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
+            // InternalChartDSL.g:7811:3: () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
             {
-            // InternalChartDSL.g:7507:3: ()
-            // InternalChartDSL.g:7508:4: 
+            // InternalChartDSL.g:7811:3: ()
+            // InternalChartDSL.g:7812:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20804,21 +21578,21 @@
 
             }
 
-            otherlv_1=(Token)match(input,129,FOLLOW_109); if (state.failed) return current;
+            otherlv_1=(Token)match(input,139,FOLLOW_122); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
               		
             }
-            // InternalChartDSL.g:7518:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
-            int alt127=2;
-            alt127 = dfa127.predict(input);
-            switch (alt127) {
+            // InternalChartDSL.g:7822:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
+            int alt139=2;
+            alt139 = dfa139.predict(input);
+            switch (alt139) {
                 case 1 :
-                    // InternalChartDSL.g:7519:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression )
+                    // InternalChartDSL.g:7823:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:7520:4: (lv_expression_2_0= ruleXExpression )
-                    // InternalChartDSL.g:7521:5: lv_expression_2_0= ruleXExpression
+                    // InternalChartDSL.g:7824:4: (lv_expression_2_0= ruleXExpression )
+                    // InternalChartDSL.g:7825:5: lv_expression_2_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -20877,7 +21651,7 @@
 
 
     // $ANTLR start "entryRuleXTryCatchFinallyExpression"
-    // InternalChartDSL.g:7542:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
+    // InternalChartDSL.g:7846:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
     public final EObject entryRuleXTryCatchFinallyExpression() throws RecognitionException {
         EObject current = null;
 
@@ -20885,8 +21659,8 @@
 
 
         try {
-            // InternalChartDSL.g:7542:67: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
-            // InternalChartDSL.g:7543:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
+            // InternalChartDSL.g:7846:67: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
+            // InternalChartDSL.g:7847:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionRule()); 
@@ -20917,7 +21691,7 @@
 
 
     // $ANTLR start "ruleXTryCatchFinallyExpression"
-    // InternalChartDSL.g:7549:1: ruleXTryCatchFinallyExpression returns [EObject current=null] : ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) ;
+    // InternalChartDSL.g:7853:1: ruleXTryCatchFinallyExpression returns [EObject current=null] : ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) ;
     public final EObject ruleXTryCatchFinallyExpression() throws RecognitionException {
         EObject current = null;
 
@@ -20937,14 +21711,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7555:2: ( ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) )
-            // InternalChartDSL.g:7556:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+            // InternalChartDSL.g:7859:2: ( ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) )
+            // InternalChartDSL.g:7860:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
             {
-            // InternalChartDSL.g:7556:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
-            // InternalChartDSL.g:7557:3: () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+            // InternalChartDSL.g:7860:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+            // InternalChartDSL.g:7861:3: () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
             {
-            // InternalChartDSL.g:7557:3: ()
-            // InternalChartDSL.g:7558:4: 
+            // InternalChartDSL.g:7861:3: ()
+            // InternalChartDSL.g:7862:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20956,24 +21730,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,130,FOLLOW_50); if (state.failed) return current;
+            otherlv_1=(Token)match(input,140,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
               		
             }
-            // InternalChartDSL.g:7568:3: ( (lv_expression_2_0= ruleXExpression ) )
-            // InternalChartDSL.g:7569:4: (lv_expression_2_0= ruleXExpression )
+            // InternalChartDSL.g:7872:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalChartDSL.g:7873:4: (lv_expression_2_0= ruleXExpression )
             {
-            // InternalChartDSL.g:7569:4: (lv_expression_2_0= ruleXExpression )
-            // InternalChartDSL.g:7570:5: lv_expression_2_0= ruleXExpression
+            // InternalChartDSL.g:7873:4: (lv_expression_2_0= ruleXExpression )
+            // InternalChartDSL.g:7874:5: lv_expression_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_110);
+            pushFollow(FOLLOW_123);
             lv_expression_2_0=ruleXExpression();
 
             state._fsp--;
@@ -20997,61 +21771,61 @@
 
             }
 
-            // InternalChartDSL.g:7587:3: ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
-            int alt130=2;
-            int LA130_0 = input.LA(1);
+            // InternalChartDSL.g:7891:3: ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+            int alt142=2;
+            int LA142_0 = input.LA(1);
 
-            if ( (LA130_0==133) ) {
-                alt130=1;
+            if ( (LA142_0==143) ) {
+                alt142=1;
             }
-            else if ( (LA130_0==131) ) {
-                alt130=2;
+            else if ( (LA142_0==141) ) {
+                alt142=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 130, 0, input);
+                    new NoViableAltException("", 142, 0, input);
 
                 throw nvae;
             }
-            switch (alt130) {
+            switch (alt142) {
                 case 1 :
-                    // InternalChartDSL.g:7588:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    // InternalChartDSL.g:7892:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
                     {
-                    // InternalChartDSL.g:7588:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
-                    // InternalChartDSL.g:7589:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    // InternalChartDSL.g:7892:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    // InternalChartDSL.g:7893:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
                     {
-                    // InternalChartDSL.g:7589:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
-                    int cnt128=0;
-                    loop128:
+                    // InternalChartDSL.g:7893:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
+                    int cnt140=0;
+                    loop140:
                     do {
-                        int alt128=2;
-                        int LA128_0 = input.LA(1);
+                        int alt140=2;
+                        int LA140_0 = input.LA(1);
 
-                        if ( (LA128_0==133) ) {
-                            int LA128_2 = input.LA(2);
+                        if ( (LA140_0==143) ) {
+                            int LA140_2 = input.LA(2);
 
                             if ( (synpred44_InternalChartDSL()) ) {
-                                alt128=1;
+                                alt140=1;
                             }
 
 
                         }
 
 
-                        switch (alt128) {
+                        switch (alt140) {
                     	case 1 :
-                    	    // InternalChartDSL.g:7590:6: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    // InternalChartDSL.g:7894:6: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
                     	    {
-                    	    // InternalChartDSL.g:7591:6: (lv_catchClauses_3_0= ruleXCatchClause )
-                    	    // InternalChartDSL.g:7592:7: lv_catchClauses_3_0= ruleXCatchClause
+                    	    // InternalChartDSL.g:7895:6: (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    // InternalChartDSL.g:7896:7: lv_catchClauses_3_0= ruleXCatchClause
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_111);
+                    	    pushFollow(FOLLOW_124);
                     	    lv_catchClauses_3_0=ruleXCatchClause();
 
                     	    state._fsp--;
@@ -21077,34 +21851,34 @@
                     	    break;
 
                     	default :
-                    	    if ( cnt128 >= 1 ) break loop128;
+                    	    if ( cnt140 >= 1 ) break loop140;
                     	    if (state.backtracking>0) {state.failed=true; return current;}
                                 EarlyExitException eee =
-                                    new EarlyExitException(128, input);
+                                    new EarlyExitException(140, input);
                                 throw eee;
                         }
-                        cnt128++;
+                        cnt140++;
                     } while (true);
 
-                    // InternalChartDSL.g:7609:5: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
-                    int alt129=2;
-                    int LA129_0 = input.LA(1);
+                    // InternalChartDSL.g:7913:5: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    int alt141=2;
+                    int LA141_0 = input.LA(1);
 
-                    if ( (LA129_0==131) ) {
-                        int LA129_1 = input.LA(2);
+                    if ( (LA141_0==141) ) {
+                        int LA141_1 = input.LA(2);
 
                         if ( (synpred45_InternalChartDSL()) ) {
-                            alt129=1;
+                            alt141=1;
                         }
                     }
-                    switch (alt129) {
+                    switch (alt141) {
                         case 1 :
-                            // InternalChartDSL.g:7610:6: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            // InternalChartDSL.g:7914:6: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
                             {
-                            // InternalChartDSL.g:7610:6: ( ( 'finally' )=>otherlv_4= 'finally' )
-                            // InternalChartDSL.g:7611:7: ( 'finally' )=>otherlv_4= 'finally'
+                            // InternalChartDSL.g:7914:6: ( ( 'finally' )=>otherlv_4= 'finally' )
+                            // InternalChartDSL.g:7915:7: ( 'finally' )=>otherlv_4= 'finally'
                             {
-                            otherlv_4=(Token)match(input,131,FOLLOW_50); if (state.failed) return current;
+                            otherlv_4=(Token)match(input,141,FOLLOW_63); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(otherlv_4, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
@@ -21113,11 +21887,11 @@
 
                             }
 
-                            // InternalChartDSL.g:7617:6: ( (lv_finallyExpression_5_0= ruleXExpression ) )
-                            // InternalChartDSL.g:7618:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            // InternalChartDSL.g:7921:6: ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            // InternalChartDSL.g:7922:7: (lv_finallyExpression_5_0= ruleXExpression )
                             {
-                            // InternalChartDSL.g:7618:7: (lv_finallyExpression_5_0= ruleXExpression )
-                            // InternalChartDSL.g:7619:8: lv_finallyExpression_5_0= ruleXExpression
+                            // InternalChartDSL.g:7922:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            // InternalChartDSL.g:7923:8: lv_finallyExpression_5_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -21161,22 +21935,22 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:7639:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    // InternalChartDSL.g:7943:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
                     {
-                    // InternalChartDSL.g:7639:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
-                    // InternalChartDSL.g:7640:5: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    // InternalChartDSL.g:7943:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    // InternalChartDSL.g:7944:5: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
                     {
-                    otherlv_6=(Token)match(input,131,FOLLOW_50); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,141,FOLLOW_63); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
                       				
                     }
-                    // InternalChartDSL.g:7644:5: ( (lv_finallyExpression_7_0= ruleXExpression ) )
-                    // InternalChartDSL.g:7645:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    // InternalChartDSL.g:7948:5: ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    // InternalChartDSL.g:7949:6: (lv_finallyExpression_7_0= ruleXExpression )
                     {
-                    // InternalChartDSL.g:7645:6: (lv_finallyExpression_7_0= ruleXExpression )
-                    // InternalChartDSL.g:7646:7: lv_finallyExpression_7_0= ruleXExpression
+                    // InternalChartDSL.g:7949:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    // InternalChartDSL.g:7950:7: lv_finallyExpression_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -21241,7 +22015,7 @@
 
 
     // $ANTLR start "entryRuleXSynchronizedExpression"
-    // InternalChartDSL.g:7669:1: entryRuleXSynchronizedExpression returns [EObject current=null] : iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF ;
+    // InternalChartDSL.g:7973:1: entryRuleXSynchronizedExpression returns [EObject current=null] : iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF ;
     public final EObject entryRuleXSynchronizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -21249,8 +22023,8 @@
 
 
         try {
-            // InternalChartDSL.g:7669:64: (iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF )
-            // InternalChartDSL.g:7670:2: iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF
+            // InternalChartDSL.g:7973:64: (iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF )
+            // InternalChartDSL.g:7974:2: iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSynchronizedExpressionRule()); 
@@ -21281,7 +22055,7 @@
 
 
     // $ANTLR start "ruleXSynchronizedExpression"
-    // InternalChartDSL.g:7676:1: ruleXSynchronizedExpression returns [EObject current=null] : ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) ;
+    // InternalChartDSL.g:7980:1: ruleXSynchronizedExpression returns [EObject current=null] : ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXSynchronizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -21297,20 +22071,20 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7682:2: ( ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) )
-            // InternalChartDSL.g:7683:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:7986:2: ( ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) )
+            // InternalChartDSL.g:7987:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
             {
-            // InternalChartDSL.g:7683:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
-            // InternalChartDSL.g:7684:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalChartDSL.g:7987:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:7988:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) )
             {
-            // InternalChartDSL.g:7684:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) )
-            // InternalChartDSL.g:7685:4: ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            // InternalChartDSL.g:7988:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) )
+            // InternalChartDSL.g:7989:4: ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' )
             {
-            // InternalChartDSL.g:7692:4: ( () otherlv_1= 'synchronized' otherlv_2= '(' )
-            // InternalChartDSL.g:7693:5: () otherlv_1= 'synchronized' otherlv_2= '('
+            // InternalChartDSL.g:7996:4: ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            // InternalChartDSL.g:7997:5: () otherlv_1= 'synchronized' otherlv_2= '('
             {
-            // InternalChartDSL.g:7693:5: ()
-            // InternalChartDSL.g:7694:6: 
+            // InternalChartDSL.g:7997:5: ()
+            // InternalChartDSL.g:7998:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -21322,13 +22096,13 @@
 
             }
 
-            otherlv_1=(Token)match(input,132,FOLLOW_88); if (state.failed) return current;
+            otherlv_1=(Token)match(input,142,FOLLOW_101); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1());
               				
             }
-            otherlv_2=(Token)match(input,71,FOLLOW_50); if (state.failed) return current;
+            otherlv_2=(Token)match(input,81,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_2, grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2());
@@ -21340,18 +22114,18 @@
 
             }
 
-            // InternalChartDSL.g:7710:3: ( (lv_param_3_0= ruleXExpression ) )
-            // InternalChartDSL.g:7711:4: (lv_param_3_0= ruleXExpression )
+            // InternalChartDSL.g:8014:3: ( (lv_param_3_0= ruleXExpression ) )
+            // InternalChartDSL.g:8015:4: (lv_param_3_0= ruleXExpression )
             {
-            // InternalChartDSL.g:7711:4: (lv_param_3_0= ruleXExpression )
-            // InternalChartDSL.g:7712:5: lv_param_3_0= ruleXExpression
+            // InternalChartDSL.g:8015:4: (lv_param_3_0= ruleXExpression )
+            // InternalChartDSL.g:8016:5: lv_param_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0());
               				
             }
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_61);
             lv_param_3_0=ruleXExpression();
 
             state._fsp--;
@@ -21375,17 +22149,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,73,FOLLOW_50); if (state.failed) return current;
+            otherlv_4=(Token)match(input,83,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2());
               		
             }
-            // InternalChartDSL.g:7733:3: ( (lv_expression_5_0= ruleXExpression ) )
-            // InternalChartDSL.g:7734:4: (lv_expression_5_0= ruleXExpression )
+            // InternalChartDSL.g:8037:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalChartDSL.g:8038:4: (lv_expression_5_0= ruleXExpression )
             {
-            // InternalChartDSL.g:7734:4: (lv_expression_5_0= ruleXExpression )
-            // InternalChartDSL.g:7735:5: lv_expression_5_0= ruleXExpression
+            // InternalChartDSL.g:8038:4: (lv_expression_5_0= ruleXExpression )
+            // InternalChartDSL.g:8039:5: lv_expression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -21441,7 +22215,7 @@
 
 
     // $ANTLR start "entryRuleXCatchClause"
-    // InternalChartDSL.g:7756:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
+    // InternalChartDSL.g:8060:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
     public final EObject entryRuleXCatchClause() throws RecognitionException {
         EObject current = null;
 
@@ -21449,8 +22223,8 @@
 
 
         try {
-            // InternalChartDSL.g:7756:53: (iv_ruleXCatchClause= ruleXCatchClause EOF )
-            // InternalChartDSL.g:7757:2: iv_ruleXCatchClause= ruleXCatchClause EOF
+            // InternalChartDSL.g:8060:53: (iv_ruleXCatchClause= ruleXCatchClause EOF )
+            // InternalChartDSL.g:8061:2: iv_ruleXCatchClause= ruleXCatchClause EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCatchClauseRule()); 
@@ -21481,7 +22255,7 @@
 
 
     // $ANTLR start "ruleXCatchClause"
-    // InternalChartDSL.g:7763:1: ruleXCatchClause returns [EObject current=null] : ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
+    // InternalChartDSL.g:8067:1: ruleXCatchClause returns [EObject current=null] : ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
     public final EObject ruleXCatchClause() throws RecognitionException {
         EObject current = null;
 
@@ -21497,16 +22271,16 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7769:2: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
-            // InternalChartDSL.g:7770:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:8073:2: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
+            // InternalChartDSL.g:8074:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
             {
-            // InternalChartDSL.g:7770:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
-            // InternalChartDSL.g:7771:3: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
+            // InternalChartDSL.g:8074:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            // InternalChartDSL.g:8075:3: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
             {
-            // InternalChartDSL.g:7771:3: ( ( 'catch' )=>otherlv_0= 'catch' )
-            // InternalChartDSL.g:7772:4: ( 'catch' )=>otherlv_0= 'catch'
+            // InternalChartDSL.g:8075:3: ( ( 'catch' )=>otherlv_0= 'catch' )
+            // InternalChartDSL.g:8076:4: ( 'catch' )=>otherlv_0= 'catch'
             {
-            otherlv_0=(Token)match(input,133,FOLLOW_88); if (state.failed) return current;
+            otherlv_0=(Token)match(input,143,FOLLOW_101); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               				newLeafNode(otherlv_0, grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
@@ -21515,24 +22289,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,71,FOLLOW_63); if (state.failed) return current;
+            otherlv_1=(Token)match(input,81,FOLLOW_76); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
               		
             }
-            // InternalChartDSL.g:7782:3: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
-            // InternalChartDSL.g:7783:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            // InternalChartDSL.g:8086:3: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
+            // InternalChartDSL.g:8087:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
             {
-            // InternalChartDSL.g:7783:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
-            // InternalChartDSL.g:7784:5: lv_declaredParam_2_0= ruleFullJvmFormalParameter
+            // InternalChartDSL.g:8087:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            // InternalChartDSL.g:8088:5: lv_declaredParam_2_0= ruleFullJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_61);
             lv_declaredParam_2_0=ruleFullJvmFormalParameter();
 
             state._fsp--;
@@ -21556,17 +22330,17 @@
 
             }
 
-            otherlv_3=(Token)match(input,73,FOLLOW_50); if (state.failed) return current;
+            otherlv_3=(Token)match(input,83,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_3, grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
               		
             }
-            // InternalChartDSL.g:7805:3: ( (lv_expression_4_0= ruleXExpression ) )
-            // InternalChartDSL.g:7806:4: (lv_expression_4_0= ruleXExpression )
+            // InternalChartDSL.g:8109:3: ( (lv_expression_4_0= ruleXExpression ) )
+            // InternalChartDSL.g:8110:4: (lv_expression_4_0= ruleXExpression )
             {
-            // InternalChartDSL.g:7806:4: (lv_expression_4_0= ruleXExpression )
-            // InternalChartDSL.g:7807:5: lv_expression_4_0= ruleXExpression
+            // InternalChartDSL.g:8110:4: (lv_expression_4_0= ruleXExpression )
+            // InternalChartDSL.g:8111:5: lv_expression_4_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -21622,7 +22396,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalChartDSL.g:7828:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalChartDSL.g:8132:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -21630,8 +22404,8 @@
 
 
         try {
-            // InternalChartDSL.g:7828:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalChartDSL.g:7829:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalChartDSL.g:8132:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalChartDSL.g:8133:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameRule()); 
@@ -21662,7 +22436,7 @@
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalChartDSL.g:7835:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
+    // InternalChartDSL.g:8139:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -21676,18 +22450,18 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7841:2: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
-            // InternalChartDSL.g:7842:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // InternalChartDSL.g:8145:2: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
+            // InternalChartDSL.g:8146:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
             {
-            // InternalChartDSL.g:7842:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
-            // InternalChartDSL.g:7843:3: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            // InternalChartDSL.g:8146:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // InternalChartDSL.g:8147:3: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_112);
+            pushFollow(FOLLOW_125);
             this_ValidID_0=ruleValidID();
 
             state._fsp--;
@@ -21702,20 +22476,20 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalChartDSL.g:7853:3: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
-            loop131:
+            // InternalChartDSL.g:8157:3: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            loop143:
             do {
-                int alt131=2;
-                int LA131_0 = input.LA(1);
+                int alt143=2;
+                int LA143_0 = input.LA(1);
 
-                if ( (LA131_0==106) ) {
-                    int LA131_2 = input.LA(2);
+                if ( (LA143_0==116) ) {
+                    int LA143_2 = input.LA(2);
 
-                    if ( (LA131_2==RULE_ID) ) {
-                        int LA131_3 = input.LA(3);
+                    if ( (LA143_2==RULE_ID) ) {
+                        int LA143_3 = input.LA(3);
 
                         if ( (synpred48_InternalChartDSL()) ) {
-                            alt131=1;
+                            alt143=1;
                         }
 
 
@@ -21725,14 +22499,14 @@
                 }
 
 
-                switch (alt131) {
+                switch (alt143) {
             	case 1 :
-            	    // InternalChartDSL.g:7854:4: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
+            	    // InternalChartDSL.g:8158:4: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
             	    {
-            	    // InternalChartDSL.g:7854:4: ( ( '.' )=>kw= '.' )
-            	    // InternalChartDSL.g:7855:5: ( '.' )=>kw= '.'
+            	    // InternalChartDSL.g:8158:4: ( ( '.' )=>kw= '.' )
+            	    // InternalChartDSL.g:8159:5: ( '.' )=>kw= '.'
             	    {
-            	    kw=(Token)match(input,106,FOLLOW_4); if (state.failed) return current;
+            	    kw=(Token)match(input,116,FOLLOW_4); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      					current.merge(kw);
@@ -21747,7 +22521,7 @@
             	      				newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1());
             	      			
             	    }
-            	    pushFollow(FOLLOW_112);
+            	    pushFollow(FOLLOW_125);
             	    this_ValidID_2=ruleValidID();
 
             	    state._fsp--;
@@ -21767,7 +22541,7 @@
             	    break;
 
             	default :
-            	    break loop131;
+            	    break loop143;
                 }
             } while (true);
 
@@ -21796,7 +22570,7 @@
 
 
     // $ANTLR start "entryRuleNumber"
-    // InternalChartDSL.g:7877:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
+    // InternalChartDSL.g:8181:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
     public final String entryRuleNumber() throws RecognitionException {
         String current = null;
 
@@ -21807,8 +22581,8 @@
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalChartDSL.g:7879:2: (iv_ruleNumber= ruleNumber EOF )
-            // InternalChartDSL.g:7880:2: iv_ruleNumber= ruleNumber EOF
+            // InternalChartDSL.g:8183:2: (iv_ruleNumber= ruleNumber EOF )
+            // InternalChartDSL.g:8184:2: iv_ruleNumber= ruleNumber EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNumberRule()); 
@@ -21842,7 +22616,7 @@
 
 
     // $ANTLR start "ruleNumber"
-    // InternalChartDSL.g:7889:1: ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) ;
+    // InternalChartDSL.g:8193:1: ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) ;
     public final AntlrDatatypeRuleToken ruleNumber() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -21858,29 +22632,29 @@
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalChartDSL.g:7896:2: ( (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) )
-            // InternalChartDSL.g:7897:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+            // InternalChartDSL.g:8200:2: ( (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) )
+            // InternalChartDSL.g:8201:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
             {
-            // InternalChartDSL.g:7897:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
-            int alt135=2;
-            int LA135_0 = input.LA(1);
+            // InternalChartDSL.g:8201:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+            int alt147=2;
+            int LA147_0 = input.LA(1);
 
-            if ( (LA135_0==RULE_HEX) ) {
-                alt135=1;
+            if ( (LA147_0==RULE_HEX) ) {
+                alt147=1;
             }
-            else if ( (LA135_0==RULE_INT||LA135_0==RULE_DECIMAL) ) {
-                alt135=2;
+            else if ( (LA147_0==RULE_INT||LA147_0==RULE_DECIMAL) ) {
+                alt147=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 135, 0, input);
+                    new NoViableAltException("", 147, 0, input);
 
                 throw nvae;
             }
-            switch (alt135) {
+            switch (alt147) {
                 case 1 :
-                    // InternalChartDSL.g:7898:3: this_HEX_0= RULE_HEX
+                    // InternalChartDSL.g:8202:3: this_HEX_0= RULE_HEX
                     {
                     this_HEX_0=(Token)match(input,RULE_HEX,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -21897,33 +22671,33 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:7906:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    // InternalChartDSL.g:8210:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
                     {
-                    // InternalChartDSL.g:7906:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
-                    // InternalChartDSL.g:7907:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    // InternalChartDSL.g:8210:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    // InternalChartDSL.g:8211:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
                     {
-                    // InternalChartDSL.g:7907:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
-                    int alt132=2;
-                    int LA132_0 = input.LA(1);
+                    // InternalChartDSL.g:8211:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
+                    int alt144=2;
+                    int LA144_0 = input.LA(1);
 
-                    if ( (LA132_0==RULE_INT) ) {
-                        alt132=1;
+                    if ( (LA144_0==RULE_INT) ) {
+                        alt144=1;
                     }
-                    else if ( (LA132_0==RULE_DECIMAL) ) {
-                        alt132=2;
+                    else if ( (LA144_0==RULE_DECIMAL) ) {
+                        alt144=2;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 132, 0, input);
+                            new NoViableAltException("", 144, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt132) {
+                    switch (alt144) {
                         case 1 :
-                            // InternalChartDSL.g:7908:5: this_INT_1= RULE_INT
+                            // InternalChartDSL.g:8212:5: this_INT_1= RULE_INT
                             {
-                            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_112); if (state.failed) return current;
+                            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_125); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(this_INT_1);
@@ -21938,9 +22712,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalChartDSL.g:7916:5: this_DECIMAL_2= RULE_DECIMAL
+                            // InternalChartDSL.g:8220:5: this_DECIMAL_2= RULE_DECIMAL
                             {
-                            this_DECIMAL_2=(Token)match(input,RULE_DECIMAL,FOLLOW_112); if (state.failed) return current;
+                            this_DECIMAL_2=(Token)match(input,RULE_DECIMAL,FOLLOW_125); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(this_DECIMAL_2);
@@ -21957,48 +22731,48 @@
 
                     }
 
-                    // InternalChartDSL.g:7924:4: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
-                    int alt134=2;
-                    int LA134_0 = input.LA(1);
+                    // InternalChartDSL.g:8228:4: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    int alt146=2;
+                    int LA146_0 = input.LA(1);
 
-                    if ( (LA134_0==106) ) {
-                        int LA134_1 = input.LA(2);
+                    if ( (LA146_0==116) ) {
+                        int LA146_1 = input.LA(2);
 
-                        if ( (LA134_1==RULE_INT||LA134_1==RULE_DECIMAL) ) {
-                            alt134=1;
+                        if ( (LA146_1==RULE_INT||LA146_1==RULE_DECIMAL) ) {
+                            alt146=1;
                         }
                     }
-                    switch (alt134) {
+                    switch (alt146) {
                         case 1 :
-                            // InternalChartDSL.g:7925:5: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            // InternalChartDSL.g:8229:5: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
                             {
-                            kw=(Token)match(input,106,FOLLOW_113); if (state.failed) return current;
+                            kw=(Token)match(input,116,FOLLOW_126); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
                               					newLeafNode(kw, grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0());
                               				
                             }
-                            // InternalChartDSL.g:7930:5: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
-                            int alt133=2;
-                            int LA133_0 = input.LA(1);
+                            // InternalChartDSL.g:8234:5: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            int alt145=2;
+                            int LA145_0 = input.LA(1);
 
-                            if ( (LA133_0==RULE_INT) ) {
-                                alt133=1;
+                            if ( (LA145_0==RULE_INT) ) {
+                                alt145=1;
                             }
-                            else if ( (LA133_0==RULE_DECIMAL) ) {
-                                alt133=2;
+                            else if ( (LA145_0==RULE_DECIMAL) ) {
+                                alt145=2;
                             }
                             else {
                                 if (state.backtracking>0) {state.failed=true; return current;}
                                 NoViableAltException nvae =
-                                    new NoViableAltException("", 133, 0, input);
+                                    new NoViableAltException("", 145, 0, input);
 
                                 throw nvae;
                             }
-                            switch (alt133) {
+                            switch (alt145) {
                                 case 1 :
-                                    // InternalChartDSL.g:7931:6: this_INT_4= RULE_INT
+                                    // InternalChartDSL.g:8235:6: this_INT_4= RULE_INT
                                     {
                                     this_INT_4=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
                                     if ( state.backtracking==0 ) {
@@ -22015,7 +22789,7 @@
                                     }
                                     break;
                                 case 2 :
-                                    // InternalChartDSL.g:7939:6: this_DECIMAL_5= RULE_DECIMAL
+                                    // InternalChartDSL.g:8243:6: this_DECIMAL_5= RULE_DECIMAL
                                     {
                                     this_DECIMAL_5=(Token)match(input,RULE_DECIMAL,FOLLOW_2); if (state.failed) return current;
                                     if ( state.backtracking==0 ) {
@@ -22074,7 +22848,7 @@
 
 
     // $ANTLR start "entryRuleJvmTypeReference"
-    // InternalChartDSL.g:7956:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
+    // InternalChartDSL.g:8260:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
     public final EObject entryRuleJvmTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -22082,8 +22856,8 @@
 
 
         try {
-            // InternalChartDSL.g:7956:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
-            // InternalChartDSL.g:7957:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
+            // InternalChartDSL.g:8260:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
+            // InternalChartDSL.g:8261:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); 
@@ -22114,7 +22888,7 @@
 
 
     // $ANTLR start "ruleJvmTypeReference"
-    // InternalChartDSL.g:7963:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ;
+    // InternalChartDSL.g:8267:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ;
     public final EObject ruleJvmTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -22127,39 +22901,39 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:7969:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
-            // InternalChartDSL.g:7970:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            // InternalChartDSL.g:8273:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
+            // InternalChartDSL.g:8274:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
             {
-            // InternalChartDSL.g:7970:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
-            int alt137=2;
-            int LA137_0 = input.LA(1);
+            // InternalChartDSL.g:8274:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            int alt149=2;
+            int LA149_0 = input.LA(1);
 
-            if ( (LA137_0==RULE_ID) ) {
-                alt137=1;
+            if ( (LA149_0==RULE_ID) ) {
+                alt149=1;
             }
-            else if ( (LA137_0==71||LA137_0==96) ) {
-                alt137=2;
+            else if ( (LA149_0==81||LA149_0==106) ) {
+                alt149=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 137, 0, input);
+                    new NoViableAltException("", 149, 0, input);
 
                 throw nvae;
             }
-            switch (alt137) {
+            switch (alt149) {
                 case 1 :
-                    // InternalChartDSL.g:7971:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    // InternalChartDSL.g:8275:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
                     {
-                    // InternalChartDSL.g:7971:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
-                    // InternalChartDSL.g:7972:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    // InternalChartDSL.g:8275:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    // InternalChartDSL.g:8276:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
                     {
                     if ( state.backtracking==0 ) {
 
                       				newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0());
                       			
                     }
-                    pushFollow(FOLLOW_106);
+                    pushFollow(FOLLOW_119);
                     this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference();
 
                     state._fsp--;
@@ -22170,20 +22944,20 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalChartDSL.g:7980:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
-                    loop136:
+                    // InternalChartDSL.g:8284:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    loop148:
                     do {
-                        int alt136=2;
-                        int LA136_0 = input.LA(1);
+                        int alt148=2;
+                        int LA148_0 = input.LA(1);
 
-                        if ( (LA136_0==76) ) {
-                            int LA136_2 = input.LA(2);
+                        if ( (LA148_0==86) ) {
+                            int LA148_2 = input.LA(2);
 
-                            if ( (LA136_2==77) ) {
-                                int LA136_3 = input.LA(3);
+                            if ( (LA148_2==87) ) {
+                                int LA148_3 = input.LA(3);
 
                                 if ( (synpred49_InternalChartDSL()) ) {
-                                    alt136=1;
+                                    alt148=1;
                                 }
 
 
@@ -22193,15 +22967,15 @@
                         }
 
 
-                        switch (alt136) {
+                        switch (alt148) {
                     	case 1 :
-                    	    // InternalChartDSL.g:7981:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
+                    	    // InternalChartDSL.g:8285:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
                     	    {
-                    	    // InternalChartDSL.g:7987:5: ( () ruleArrayBrackets )
-                    	    // InternalChartDSL.g:7988:6: () ruleArrayBrackets
+                    	    // InternalChartDSL.g:8291:5: ( () ruleArrayBrackets )
+                    	    // InternalChartDSL.g:8292:6: () ruleArrayBrackets
                     	    {
-                    	    // InternalChartDSL.g:7988:6: ()
-                    	    // InternalChartDSL.g:7989:7: 
+                    	    // InternalChartDSL.g:8292:6: ()
+                    	    // InternalChartDSL.g:8293:7: 
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -22218,7 +22992,7 @@
                     	      						newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1());
                     	      					
                     	    }
-                    	    pushFollow(FOLLOW_106);
+                    	    pushFollow(FOLLOW_119);
                     	    ruleArrayBrackets();
 
                     	    state._fsp--;
@@ -22236,7 +23010,7 @@
                     	    break;
 
                     	default :
-                    	    break loop136;
+                    	    break loop148;
                         }
                     } while (true);
 
@@ -22247,7 +23021,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:8006:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
+                    // InternalChartDSL.g:8310:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
                     {
                     if ( state.backtracking==0 ) {
 
@@ -22293,7 +23067,7 @@
 
 
     // $ANTLR start "entryRuleArrayBrackets"
-    // InternalChartDSL.g:8018:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
+    // InternalChartDSL.g:8322:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
     public final String entryRuleArrayBrackets() throws RecognitionException {
         String current = null;
 
@@ -22301,8 +23075,8 @@
 
 
         try {
-            // InternalChartDSL.g:8018:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
-            // InternalChartDSL.g:8019:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
+            // InternalChartDSL.g:8322:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
+            // InternalChartDSL.g:8323:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getArrayBracketsRule()); 
@@ -22333,7 +23107,7 @@
 
 
     // $ANTLR start "ruleArrayBrackets"
-    // InternalChartDSL.g:8025:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
+    // InternalChartDSL.g:8329:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
     public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -22343,20 +23117,20 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8031:2: ( (kw= '[' kw= ']' ) )
-            // InternalChartDSL.g:8032:2: (kw= '[' kw= ']' )
+            // InternalChartDSL.g:8335:2: ( (kw= '[' kw= ']' ) )
+            // InternalChartDSL.g:8336:2: (kw= '[' kw= ']' )
             {
-            // InternalChartDSL.g:8032:2: (kw= '[' kw= ']' )
-            // InternalChartDSL.g:8033:3: kw= '[' kw= ']'
+            // InternalChartDSL.g:8336:2: (kw= '[' kw= ']' )
+            // InternalChartDSL.g:8337:3: kw= '[' kw= ']'
             {
-            kw=(Token)match(input,76,FOLLOW_85); if (state.failed) return current;
+            kw=(Token)match(input,86,FOLLOW_98); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
               			newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0());
               		
             }
-            kw=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
@@ -22388,7 +23162,7 @@
 
 
     // $ANTLR start "entryRuleXFunctionTypeRef"
-    // InternalChartDSL.g:8047:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
+    // InternalChartDSL.g:8351:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
     public final EObject entryRuleXFunctionTypeRef() throws RecognitionException {
         EObject current = null;
 
@@ -22396,8 +23170,8 @@
 
 
         try {
-            // InternalChartDSL.g:8047:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
-            // InternalChartDSL.g:8048:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
+            // InternalChartDSL.g:8351:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
+            // InternalChartDSL.g:8352:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); 
@@ -22428,7 +23202,7 @@
 
 
     // $ANTLR start "ruleXFunctionTypeRef"
-    // InternalChartDSL.g:8054:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ;
+    // InternalChartDSL.g:8358:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleXFunctionTypeRef() throws RecognitionException {
         EObject current = null;
 
@@ -22447,52 +23221,52 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8060:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) )
-            // InternalChartDSL.g:8061:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+            // InternalChartDSL.g:8364:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) )
+            // InternalChartDSL.g:8365:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
             {
-            // InternalChartDSL.g:8061:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
-            // InternalChartDSL.g:8062:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+            // InternalChartDSL.g:8365:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+            // InternalChartDSL.g:8366:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) )
             {
-            // InternalChartDSL.g:8062:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
-            int alt140=2;
-            int LA140_0 = input.LA(1);
+            // InternalChartDSL.g:8366:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
+            int alt152=2;
+            int LA152_0 = input.LA(1);
 
-            if ( (LA140_0==71) ) {
-                alt140=1;
+            if ( (LA152_0==81) ) {
+                alt152=1;
             }
-            switch (alt140) {
+            switch (alt152) {
                 case 1 :
-                    // InternalChartDSL.g:8063:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
+                    // InternalChartDSL.g:8367:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
                     {
-                    otherlv_0=(Token)match(input,71,FOLLOW_114); if (state.failed) return current;
+                    otherlv_0=(Token)match(input,81,FOLLOW_127); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
                       			
                     }
-                    // InternalChartDSL.g:8067:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
-                    int alt139=2;
-                    int LA139_0 = input.LA(1);
+                    // InternalChartDSL.g:8371:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
+                    int alt151=2;
+                    int LA151_0 = input.LA(1);
 
-                    if ( (LA139_0==RULE_ID||LA139_0==71||LA139_0==96) ) {
-                        alt139=1;
+                    if ( (LA151_0==RULE_ID||LA151_0==81||LA151_0==106) ) {
+                        alt151=1;
                     }
-                    switch (alt139) {
+                    switch (alt151) {
                         case 1 :
-                            // InternalChartDSL.g:8068:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            // InternalChartDSL.g:8372:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
                             {
-                            // InternalChartDSL.g:8068:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
-                            // InternalChartDSL.g:8069:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            // InternalChartDSL.g:8372:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
+                            // InternalChartDSL.g:8373:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
                             {
-                            // InternalChartDSL.g:8069:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
-                            // InternalChartDSL.g:8070:7: lv_paramTypes_1_0= ruleJvmTypeReference
+                            // InternalChartDSL.g:8373:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            // InternalChartDSL.g:8374:7: lv_paramTypes_1_0= ruleJvmTypeReference
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_47);
+                            pushFollow(FOLLOW_60);
                             lv_paramTypes_1_0=ruleJvmTypeReference();
 
                             state._fsp--;
@@ -22516,39 +23290,39 @@
 
                             }
 
-                            // InternalChartDSL.g:8087:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
-                            loop138:
+                            // InternalChartDSL.g:8391:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            loop150:
                             do {
-                                int alt138=2;
-                                int LA138_0 = input.LA(1);
+                                int alt150=2;
+                                int LA150_0 = input.LA(1);
 
-                                if ( (LA138_0==72) ) {
-                                    alt138=1;
+                                if ( (LA150_0==82) ) {
+                                    alt150=1;
                                 }
 
 
-                                switch (alt138) {
+                                switch (alt150) {
                             	case 1 :
-                            	    // InternalChartDSL.g:8088:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    // InternalChartDSL.g:8392:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
                             	    {
-                            	    otherlv_2=(Token)match(input,72,FOLLOW_63); if (state.failed) return current;
+                            	    otherlv_2=(Token)match(input,82,FOLLOW_76); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalChartDSL.g:8092:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
-                            	    // InternalChartDSL.g:8093:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    // InternalChartDSL.g:8396:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    // InternalChartDSL.g:8397:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
                             	    {
-                            	    // InternalChartDSL.g:8093:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
-                            	    // InternalChartDSL.g:8094:8: lv_paramTypes_3_0= ruleJvmTypeReference
+                            	    // InternalChartDSL.g:8397:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    // InternalChartDSL.g:8398:8: lv_paramTypes_3_0= ruleJvmTypeReference
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_47);
+                            	    pushFollow(FOLLOW_60);
                             	    lv_paramTypes_3_0=ruleJvmTypeReference();
 
                             	    state._fsp--;
@@ -22577,7 +23351,7 @@
                             	    break;
 
                             	default :
-                            	    break loop138;
+                            	    break loop150;
                                 }
                             } while (true);
 
@@ -22587,7 +23361,7 @@
 
                     }
 
-                    otherlv_4=(Token)match(input,73,FOLLOW_115); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,83,FOLLOW_128); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
@@ -22599,17 +23373,17 @@
 
             }
 
-            otherlv_5=(Token)match(input,96,FOLLOW_63); if (state.failed) return current;
+            otherlv_5=(Token)match(input,106,FOLLOW_76); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
               		
             }
-            // InternalChartDSL.g:8122:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
-            // InternalChartDSL.g:8123:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:8426:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+            // InternalChartDSL.g:8427:4: (lv_returnType_6_0= ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:8123:4: (lv_returnType_6_0= ruleJvmTypeReference )
-            // InternalChartDSL.g:8124:5: lv_returnType_6_0= ruleJvmTypeReference
+            // InternalChartDSL.g:8427:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:8428:5: lv_returnType_6_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -22665,7 +23439,7 @@
 
 
     // $ANTLR start "entryRuleJvmParameterizedTypeReference"
-    // InternalChartDSL.g:8145:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
+    // InternalChartDSL.g:8449:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
     public final EObject entryRuleJvmParameterizedTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -22673,8 +23447,8 @@
 
 
         try {
-            // InternalChartDSL.g:8145:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
-            // InternalChartDSL.g:8146:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
+            // InternalChartDSL.g:8449:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
+            // InternalChartDSL.g:8450:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
@@ -22705,7 +23479,7 @@
 
 
     // $ANTLR start "ruleJvmParameterizedTypeReference"
-    // InternalChartDSL.g:8152:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ;
+    // InternalChartDSL.g:8456:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ;
     public final EObject ruleJvmParameterizedTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -22729,17 +23503,17 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8158:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) )
-            // InternalChartDSL.g:8159:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
+            // InternalChartDSL.g:8462:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) )
+            // InternalChartDSL.g:8463:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
             {
-            // InternalChartDSL.g:8159:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
-            // InternalChartDSL.g:8160:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
+            // InternalChartDSL.g:8463:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
+            // InternalChartDSL.g:8464:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
             {
-            // InternalChartDSL.g:8160:3: ( ( ruleQualifiedName ) )
-            // InternalChartDSL.g:8161:4: ( ruleQualifiedName )
+            // InternalChartDSL.g:8464:3: ( ( ruleQualifiedName ) )
+            // InternalChartDSL.g:8465:4: ( ruleQualifiedName )
             {
-            // InternalChartDSL.g:8161:4: ( ruleQualifiedName )
-            // InternalChartDSL.g:8162:5: ruleQualifiedName
+            // InternalChartDSL.g:8465:4: ( ruleQualifiedName )
+            // InternalChartDSL.g:8466:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -22753,7 +23527,7 @@
               					newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0());
               				
             }
-            pushFollow(FOLLOW_116);
+            pushFollow(FOLLOW_129);
             ruleQualifiedName();
 
             state._fsp--;
@@ -22769,17 +23543,17 @@
 
             }
 
-            // InternalChartDSL.g:8176:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
-            int alt145=2;
-            alt145 = dfa145.predict(input);
-            switch (alt145) {
+            // InternalChartDSL.g:8480:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
+            int alt157=2;
+            alt157 = dfa157.predict(input);
+            switch (alt157) {
                 case 1 :
-                    // InternalChartDSL.g:8177:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
+                    // InternalChartDSL.g:8481:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
                     {
-                    // InternalChartDSL.g:8177:4: ( ( '<' )=>otherlv_1= '<' )
-                    // InternalChartDSL.g:8178:5: ( '<' )=>otherlv_1= '<'
+                    // InternalChartDSL.g:8481:4: ( ( '<' )=>otherlv_1= '<' )
+                    // InternalChartDSL.g:8482:5: ( '<' )=>otherlv_1= '<'
                     {
-                    otherlv_1=(Token)match(input,83,FOLLOW_75); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,93,FOLLOW_88); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
@@ -22788,18 +23562,18 @@
 
                     }
 
-                    // InternalChartDSL.g:8184:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
-                    // InternalChartDSL.g:8185:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalChartDSL.g:8488:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalChartDSL.g:8489:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalChartDSL.g:8185:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
-                    // InternalChartDSL.g:8186:6: lv_arguments_2_0= ruleJvmArgumentTypeReference
+                    // InternalChartDSL.g:8489:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalChartDSL.g:8490:6: lv_arguments_2_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_76);
+                    pushFollow(FOLLOW_89);
                     lv_arguments_2_0=ruleJvmArgumentTypeReference();
 
                     state._fsp--;
@@ -22823,39 +23597,39 @@
 
                     }
 
-                    // InternalChartDSL.g:8203:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop141:
+                    // InternalChartDSL.g:8507:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop153:
                     do {
-                        int alt141=2;
-                        int LA141_0 = input.LA(1);
+                        int alt153=2;
+                        int LA153_0 = input.LA(1);
 
-                        if ( (LA141_0==72) ) {
-                            alt141=1;
+                        if ( (LA153_0==82) ) {
+                            alt153=1;
                         }
 
 
-                        switch (alt141) {
+                        switch (alt153) {
                     	case 1 :
-                    	    // InternalChartDSL.g:8204:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalChartDSL.g:8508:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,72,FOLLOW_75); if (state.failed) return current;
+                    	    otherlv_3=(Token)match(input,82,FOLLOW_88); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
                     	      				
                     	    }
-                    	    // InternalChartDSL.g:8208:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalChartDSL.g:8209:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalChartDSL.g:8512:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalChartDSL.g:8513:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalChartDSL.g:8209:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
-                    	    // InternalChartDSL.g:8210:7: lv_arguments_4_0= ruleJvmArgumentTypeReference
+                    	    // InternalChartDSL.g:8513:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalChartDSL.g:8514:7: lv_arguments_4_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_76);
+                    	    pushFollow(FOLLOW_89);
                     	    lv_arguments_4_0=ruleJvmArgumentTypeReference();
 
                     	    state._fsp--;
@@ -22884,30 +23658,30 @@
                     	    break;
 
                     	default :
-                    	    break loop141;
+                    	    break loop153;
                         }
                     } while (true);
 
-                    otherlv_5=(Token)match(input,84,FOLLOW_112); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,94,FOLLOW_125); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
                       			
                     }
-                    // InternalChartDSL.g:8232:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
-                    loop144:
+                    // InternalChartDSL.g:8536:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
+                    loop156:
                     do {
-                        int alt144=2;
-                        int LA144_0 = input.LA(1);
+                        int alt156=2;
+                        int LA156_0 = input.LA(1);
 
-                        if ( (LA144_0==106) ) {
-                            int LA144_2 = input.LA(2);
+                        if ( (LA156_0==116) ) {
+                            int LA156_2 = input.LA(2);
 
-                            if ( (LA144_2==RULE_ID) ) {
-                                int LA144_3 = input.LA(3);
+                            if ( (LA156_2==RULE_ID) ) {
+                                int LA156_3 = input.LA(3);
 
                                 if ( (synpred51_InternalChartDSL()) ) {
-                                    alt144=1;
+                                    alt156=1;
                                 }
 
 
@@ -22917,18 +23691,18 @@
                         }
 
 
-                        switch (alt144) {
+                        switch (alt156) {
                     	case 1 :
-                    	    // InternalChartDSL.g:8233:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    // InternalChartDSL.g:8537:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
                     	    {
-                    	    // InternalChartDSL.g:8233:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) )
-                    	    // InternalChartDSL.g:8234:6: ( ( () '.' ) )=> ( () otherlv_7= '.' )
+                    	    // InternalChartDSL.g:8537:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) )
+                    	    // InternalChartDSL.g:8538:6: ( ( () '.' ) )=> ( () otherlv_7= '.' )
                     	    {
-                    	    // InternalChartDSL.g:8240:6: ( () otherlv_7= '.' )
-                    	    // InternalChartDSL.g:8241:7: () otherlv_7= '.'
+                    	    // InternalChartDSL.g:8544:6: ( () otherlv_7= '.' )
+                    	    // InternalChartDSL.g:8545:7: () otherlv_7= '.'
                     	    {
-                    	    // InternalChartDSL.g:8241:7: ()
-                    	    // InternalChartDSL.g:8242:8: 
+                    	    // InternalChartDSL.g:8545:7: ()
+                    	    // InternalChartDSL.g:8546:8: 
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -22940,7 +23714,7 @@
 
                     	    }
 
-                    	    otherlv_7=(Token)match(input,106,FOLLOW_4); if (state.failed) return current;
+                    	    otherlv_7=(Token)match(input,116,FOLLOW_4); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      							newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1());
@@ -22952,11 +23726,11 @@
 
                     	    }
 
-                    	    // InternalChartDSL.g:8254:5: ( ( ruleValidID ) )
-                    	    // InternalChartDSL.g:8255:6: ( ruleValidID )
+                    	    // InternalChartDSL.g:8558:5: ( ( ruleValidID ) )
+                    	    // InternalChartDSL.g:8559:6: ( ruleValidID )
                     	    {
-                    	    // InternalChartDSL.g:8255:6: ( ruleValidID )
-                    	    // InternalChartDSL.g:8256:7: ruleValidID
+                    	    // InternalChartDSL.g:8559:6: ( ruleValidID )
+                    	    // InternalChartDSL.g:8560:7: ruleValidID
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -22970,7 +23744,7 @@
                     	      							newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_117);
+                    	    pushFollow(FOLLOW_130);
                     	    ruleValidID();
 
                     	    state._fsp--;
@@ -22986,17 +23760,17 @@
 
                     	    }
 
-                    	    // InternalChartDSL.g:8270:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
-                    	    int alt143=2;
-                    	    alt143 = dfa143.predict(input);
-                    	    switch (alt143) {
+                    	    // InternalChartDSL.g:8574:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    int alt155=2;
+                    	    alt155 = dfa155.predict(input);
+                    	    switch (alt155) {
                     	        case 1 :
-                    	            // InternalChartDSL.g:8271:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>'
+                    	            // InternalChartDSL.g:8575:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>'
                     	            {
-                    	            // InternalChartDSL.g:8271:6: ( ( '<' )=>otherlv_9= '<' )
-                    	            // InternalChartDSL.g:8272:7: ( '<' )=>otherlv_9= '<'
+                    	            // InternalChartDSL.g:8575:6: ( ( '<' )=>otherlv_9= '<' )
+                    	            // InternalChartDSL.g:8576:7: ( '<' )=>otherlv_9= '<'
                     	            {
-                    	            otherlv_9=(Token)match(input,83,FOLLOW_75); if (state.failed) return current;
+                    	            otherlv_9=(Token)match(input,93,FOLLOW_88); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              							newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0());
@@ -23005,18 +23779,18 @@
 
                     	            }
 
-                    	            // InternalChartDSL.g:8278:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) )
-                    	            // InternalChartDSL.g:8279:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            // InternalChartDSL.g:8582:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) )
+                    	            // InternalChartDSL.g:8583:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
                     	            {
-                    	            // InternalChartDSL.g:8279:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
-                    	            // InternalChartDSL.g:8280:8: lv_arguments_10_0= ruleJvmArgumentTypeReference
+                    	            // InternalChartDSL.g:8583:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            // InternalChartDSL.g:8584:8: lv_arguments_10_0= ruleJvmArgumentTypeReference
                     	            {
                     	            if ( state.backtracking==0 ) {
 
                     	              								newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0());
                     	              							
                     	            }
-                    	            pushFollow(FOLLOW_76);
+                    	            pushFollow(FOLLOW_89);
                     	            lv_arguments_10_0=ruleJvmArgumentTypeReference();
 
                     	            state._fsp--;
@@ -23040,39 +23814,39 @@
 
                     	            }
 
-                    	            // InternalChartDSL.g:8297:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )*
-                    	            loop142:
+                    	            // InternalChartDSL.g:8601:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )*
+                    	            loop154:
                     	            do {
-                    	                int alt142=2;
-                    	                int LA142_0 = input.LA(1);
+                    	                int alt154=2;
+                    	                int LA154_0 = input.LA(1);
 
-                    	                if ( (LA142_0==72) ) {
-                    	                    alt142=1;
+                    	                if ( (LA154_0==82) ) {
+                    	                    alt154=1;
                     	                }
 
 
-                    	                switch (alt142) {
+                    	                switch (alt154) {
                     	            	case 1 :
-                    	            	    // InternalChartDSL.g:8298:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    // InternalChartDSL.g:8602:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
                     	            	    {
-                    	            	    otherlv_11=(Token)match(input,72,FOLLOW_75); if (state.failed) return current;
+                    	            	    otherlv_11=(Token)match(input,82,FOLLOW_88); if (state.failed) return current;
                     	            	    if ( state.backtracking==0 ) {
 
                     	            	      							newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0());
                     	            	      						
                     	            	    }
-                    	            	    // InternalChartDSL.g:8302:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
-                    	            	    // InternalChartDSL.g:8303:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    // InternalChartDSL.g:8606:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    // InternalChartDSL.g:8607:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
                     	            	    {
-                    	            	    // InternalChartDSL.g:8303:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
-                    	            	    // InternalChartDSL.g:8304:9: lv_arguments_12_0= ruleJvmArgumentTypeReference
+                    	            	    // InternalChartDSL.g:8607:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    // InternalChartDSL.g:8608:9: lv_arguments_12_0= ruleJvmArgumentTypeReference
                     	            	    {
                     	            	    if ( state.backtracking==0 ) {
 
                     	            	      									newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0());
                     	            	      								
                     	            	    }
-                    	            	    pushFollow(FOLLOW_76);
+                    	            	    pushFollow(FOLLOW_89);
                     	            	    lv_arguments_12_0=ruleJvmArgumentTypeReference();
 
                     	            	    state._fsp--;
@@ -23101,11 +23875,11 @@
                     	            	    break;
 
                     	            	default :
-                    	            	    break loop142;
+                    	            	    break loop154;
                     	                }
                     	            } while (true);
 
-                    	            otherlv_13=(Token)match(input,84,FOLLOW_112); if (state.failed) return current;
+                    	            otherlv_13=(Token)match(input,94,FOLLOW_125); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              						newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3());
@@ -23122,7 +23896,7 @@
                     	    break;
 
                     	default :
-                    	    break loop144;
+                    	    break loop156;
                         }
                     } while (true);
 
@@ -23157,7 +23931,7 @@
 
 
     // $ANTLR start "entryRuleJvmArgumentTypeReference"
-    // InternalChartDSL.g:8333:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
+    // InternalChartDSL.g:8637:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
     public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -23165,8 +23939,8 @@
 
 
         try {
-            // InternalChartDSL.g:8333:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
-            // InternalChartDSL.g:8334:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
+            // InternalChartDSL.g:8637:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
+            // InternalChartDSL.g:8638:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); 
@@ -23197,7 +23971,7 @@
 
 
     // $ANTLR start "ruleJvmArgumentTypeReference"
-    // InternalChartDSL.g:8340:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
+    // InternalChartDSL.g:8644:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
     public final EObject ruleJvmArgumentTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -23210,29 +23984,29 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8346:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
-            // InternalChartDSL.g:8347:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            // InternalChartDSL.g:8650:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
+            // InternalChartDSL.g:8651:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
             {
-            // InternalChartDSL.g:8347:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
-            int alt146=2;
-            int LA146_0 = input.LA(1);
+            // InternalChartDSL.g:8651:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            int alt158=2;
+            int LA158_0 = input.LA(1);
 
-            if ( (LA146_0==RULE_ID||LA146_0==71||LA146_0==96) ) {
-                alt146=1;
+            if ( (LA158_0==RULE_ID||LA158_0==81||LA158_0==106) ) {
+                alt158=1;
             }
-            else if ( (LA146_0==134) ) {
-                alt146=2;
+            else if ( (LA158_0==144) ) {
+                alt158=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 146, 0, input);
+                    new NoViableAltException("", 158, 0, input);
 
                 throw nvae;
             }
-            switch (alt146) {
+            switch (alt158) {
                 case 1 :
-                    // InternalChartDSL.g:8348:3: this_JvmTypeReference_0= ruleJvmTypeReference
+                    // InternalChartDSL.g:8652:3: this_JvmTypeReference_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -23254,7 +24028,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:8357:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
+                    // InternalChartDSL.g:8661:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -23300,7 +24074,7 @@
 
 
     // $ANTLR start "entryRuleJvmWildcardTypeReference"
-    // InternalChartDSL.g:8369:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
+    // InternalChartDSL.g:8673:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
     public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -23308,8 +24082,8 @@
 
 
         try {
-            // InternalChartDSL.g:8369:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
-            // InternalChartDSL.g:8370:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
+            // InternalChartDSL.g:8673:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
+            // InternalChartDSL.g:8674:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); 
@@ -23340,7 +24114,7 @@
 
 
     // $ANTLR start "ruleJvmWildcardTypeReference"
-    // InternalChartDSL.g:8376:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ;
+    // InternalChartDSL.g:8680:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ;
     public final EObject ruleJvmWildcardTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -23358,14 +24132,14 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8382:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) )
-            // InternalChartDSL.g:8383:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
+            // InternalChartDSL.g:8686:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) )
+            // InternalChartDSL.g:8687:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
             {
-            // InternalChartDSL.g:8383:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
-            // InternalChartDSL.g:8384:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
+            // InternalChartDSL.g:8687:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
+            // InternalChartDSL.g:8688:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
             {
-            // InternalChartDSL.g:8384:3: ()
-            // InternalChartDSL.g:8385:4: 
+            // InternalChartDSL.g:8688:3: ()
+            // InternalChartDSL.g:8689:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -23377,41 +24151,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,134,FOLLOW_118); if (state.failed) return current;
+            otherlv_1=(Token)match(input,144,FOLLOW_131); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
               		
             }
-            // InternalChartDSL.g:8395:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
-            int alt149=3;
-            int LA149_0 = input.LA(1);
+            // InternalChartDSL.g:8699:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
+            int alt161=3;
+            int LA161_0 = input.LA(1);
 
-            if ( (LA149_0==121) ) {
-                alt149=1;
+            if ( (LA161_0==131) ) {
+                alt161=1;
             }
-            else if ( (LA149_0==122) ) {
-                alt149=2;
+            else if ( (LA161_0==132) ) {
+                alt161=2;
             }
-            switch (alt149) {
+            switch (alt161) {
                 case 1 :
-                    // InternalChartDSL.g:8396:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    // InternalChartDSL.g:8700:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
                     {
-                    // InternalChartDSL.g:8396:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
-                    // InternalChartDSL.g:8397:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    // InternalChartDSL.g:8700:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    // InternalChartDSL.g:8701:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
                     {
-                    // InternalChartDSL.g:8397:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
-                    // InternalChartDSL.g:8398:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    // InternalChartDSL.g:8701:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
+                    // InternalChartDSL.g:8702:6: (lv_constraints_2_0= ruleJvmUpperBound )
                     {
-                    // InternalChartDSL.g:8398:6: (lv_constraints_2_0= ruleJvmUpperBound )
-                    // InternalChartDSL.g:8399:7: lv_constraints_2_0= ruleJvmUpperBound
+                    // InternalChartDSL.g:8702:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    // InternalChartDSL.g:8703:7: lv_constraints_2_0= ruleJvmUpperBound
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0());
                       						
                     }
-                    pushFollow(FOLLOW_119);
+                    pushFollow(FOLLOW_132);
                     lv_constraints_2_0=ruleJvmUpperBound();
 
                     state._fsp--;
@@ -23435,30 +24209,30 @@
 
                     }
 
-                    // InternalChartDSL.g:8416:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
-                    loop147:
+                    // InternalChartDSL.g:8720:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    loop159:
                     do {
-                        int alt147=2;
-                        int LA147_0 = input.LA(1);
+                        int alt159=2;
+                        int LA159_0 = input.LA(1);
 
-                        if ( (LA147_0==135) ) {
-                            alt147=1;
+                        if ( (LA159_0==145) ) {
+                            alt159=1;
                         }
 
 
-                        switch (alt147) {
+                        switch (alt159) {
                     	case 1 :
-                    	    // InternalChartDSL.g:8417:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    // InternalChartDSL.g:8721:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
                     	    {
-                    	    // InternalChartDSL.g:8417:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
-                    	    // InternalChartDSL.g:8418:7: lv_constraints_3_0= ruleJvmUpperBoundAnded
+                    	    // InternalChartDSL.g:8721:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    // InternalChartDSL.g:8722:7: lv_constraints_3_0= ruleJvmUpperBoundAnded
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_119);
+                    	    pushFollow(FOLLOW_132);
                     	    lv_constraints_3_0=ruleJvmUpperBoundAnded();
 
                     	    state._fsp--;
@@ -23484,7 +24258,7 @@
                     	    break;
 
                     	default :
-                    	    break loop147;
+                    	    break loop159;
                         }
                     } while (true);
 
@@ -23495,23 +24269,23 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:8437:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    // InternalChartDSL.g:8741:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
                     {
-                    // InternalChartDSL.g:8437:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
-                    // InternalChartDSL.g:8438:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    // InternalChartDSL.g:8741:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    // InternalChartDSL.g:8742:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
                     {
-                    // InternalChartDSL.g:8438:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) )
-                    // InternalChartDSL.g:8439:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    // InternalChartDSL.g:8742:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) )
+                    // InternalChartDSL.g:8743:6: (lv_constraints_4_0= ruleJvmLowerBound )
                     {
-                    // InternalChartDSL.g:8439:6: (lv_constraints_4_0= ruleJvmLowerBound )
-                    // InternalChartDSL.g:8440:7: lv_constraints_4_0= ruleJvmLowerBound
+                    // InternalChartDSL.g:8743:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    // InternalChartDSL.g:8744:7: lv_constraints_4_0= ruleJvmLowerBound
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0());
                       						
                     }
-                    pushFollow(FOLLOW_119);
+                    pushFollow(FOLLOW_132);
                     lv_constraints_4_0=ruleJvmLowerBound();
 
                     state._fsp--;
@@ -23535,30 +24309,30 @@
 
                     }
 
-                    // InternalChartDSL.g:8457:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
-                    loop148:
+                    // InternalChartDSL.g:8761:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    loop160:
                     do {
-                        int alt148=2;
-                        int LA148_0 = input.LA(1);
+                        int alt160=2;
+                        int LA160_0 = input.LA(1);
 
-                        if ( (LA148_0==135) ) {
-                            alt148=1;
+                        if ( (LA160_0==145) ) {
+                            alt160=1;
                         }
 
 
-                        switch (alt148) {
+                        switch (alt160) {
                     	case 1 :
-                    	    // InternalChartDSL.g:8458:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    // InternalChartDSL.g:8762:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
                     	    {
-                    	    // InternalChartDSL.g:8458:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
-                    	    // InternalChartDSL.g:8459:7: lv_constraints_5_0= ruleJvmLowerBoundAnded
+                    	    // InternalChartDSL.g:8762:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    // InternalChartDSL.g:8763:7: lv_constraints_5_0= ruleJvmLowerBoundAnded
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_119);
+                    	    pushFollow(FOLLOW_132);
                     	    lv_constraints_5_0=ruleJvmLowerBoundAnded();
 
                     	    state._fsp--;
@@ -23584,7 +24358,7 @@
                     	    break;
 
                     	default :
-                    	    break loop148;
+                    	    break loop160;
                         }
                     } while (true);
 
@@ -23622,7 +24396,7 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBound"
-    // InternalChartDSL.g:8482:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
+    // InternalChartDSL.g:8786:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
     public final EObject entryRuleJvmUpperBound() throws RecognitionException {
         EObject current = null;
 
@@ -23630,8 +24404,8 @@
 
 
         try {
-            // InternalChartDSL.g:8482:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
-            // InternalChartDSL.g:8483:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
+            // InternalChartDSL.g:8786:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
+            // InternalChartDSL.g:8787:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmUpperBoundRule()); 
@@ -23662,7 +24436,7 @@
 
 
     // $ANTLR start "ruleJvmUpperBound"
-    // InternalChartDSL.g:8489:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalChartDSL.g:8793:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmUpperBound() throws RecognitionException {
         EObject current = null;
 
@@ -23674,23 +24448,23 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8495:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalChartDSL.g:8496:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalChartDSL.g:8799:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalChartDSL.g:8800:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalChartDSL.g:8496:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalChartDSL.g:8497:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalChartDSL.g:8800:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalChartDSL.g:8801:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,121,FOLLOW_63); if (state.failed) return current;
+            otherlv_0=(Token)match(input,131,FOLLOW_76); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
               		
             }
-            // InternalChartDSL.g:8501:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalChartDSL.g:8502:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:8805:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalChartDSL.g:8806:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:8502:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalChartDSL.g:8503:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalChartDSL.g:8806:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:8807:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -23746,7 +24520,7 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBoundAnded"
-    // InternalChartDSL.g:8524:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
+    // InternalChartDSL.g:8828:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
     public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -23754,8 +24528,8 @@
 
 
         try {
-            // InternalChartDSL.g:8524:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
-            // InternalChartDSL.g:8525:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
+            // InternalChartDSL.g:8828:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
+            // InternalChartDSL.g:8829:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); 
@@ -23786,7 +24560,7 @@
 
 
     // $ANTLR start "ruleJvmUpperBoundAnded"
-    // InternalChartDSL.g:8531:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalChartDSL.g:8835:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmUpperBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -23798,23 +24572,23 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8537:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalChartDSL.g:8538:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalChartDSL.g:8841:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalChartDSL.g:8842:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalChartDSL.g:8538:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalChartDSL.g:8539:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalChartDSL.g:8842:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalChartDSL.g:8843:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,135,FOLLOW_63); if (state.failed) return current;
+            otherlv_0=(Token)match(input,145,FOLLOW_76); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
               		
             }
-            // InternalChartDSL.g:8543:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalChartDSL.g:8544:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:8847:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalChartDSL.g:8848:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:8544:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalChartDSL.g:8545:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalChartDSL.g:8848:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:8849:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -23870,7 +24644,7 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBound"
-    // InternalChartDSL.g:8566:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
+    // InternalChartDSL.g:8870:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
     public final EObject entryRuleJvmLowerBound() throws RecognitionException {
         EObject current = null;
 
@@ -23878,8 +24652,8 @@
 
 
         try {
-            // InternalChartDSL.g:8566:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
-            // InternalChartDSL.g:8567:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
+            // InternalChartDSL.g:8870:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
+            // InternalChartDSL.g:8871:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmLowerBoundRule()); 
@@ -23910,7 +24684,7 @@
 
 
     // $ANTLR start "ruleJvmLowerBound"
-    // InternalChartDSL.g:8573:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalChartDSL.g:8877:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmLowerBound() throws RecognitionException {
         EObject current = null;
 
@@ -23922,23 +24696,23 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8579:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalChartDSL.g:8580:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalChartDSL.g:8883:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalChartDSL.g:8884:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalChartDSL.g:8580:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalChartDSL.g:8581:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalChartDSL.g:8884:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalChartDSL.g:8885:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,122,FOLLOW_63); if (state.failed) return current;
+            otherlv_0=(Token)match(input,132,FOLLOW_76); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
               		
             }
-            // InternalChartDSL.g:8585:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalChartDSL.g:8586:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:8889:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalChartDSL.g:8890:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:8586:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalChartDSL.g:8587:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalChartDSL.g:8890:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:8891:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -23994,7 +24768,7 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBoundAnded"
-    // InternalChartDSL.g:8608:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ;
+    // InternalChartDSL.g:8912:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ;
     public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -24002,8 +24776,8 @@
 
 
         try {
-            // InternalChartDSL.g:8608:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF )
-            // InternalChartDSL.g:8609:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF
+            // InternalChartDSL.g:8912:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF )
+            // InternalChartDSL.g:8913:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); 
@@ -24034,7 +24808,7 @@
 
 
     // $ANTLR start "ruleJvmLowerBoundAnded"
-    // InternalChartDSL.g:8615:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalChartDSL.g:8919:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmLowerBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -24046,23 +24820,23 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8621:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalChartDSL.g:8622:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalChartDSL.g:8925:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalChartDSL.g:8926:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalChartDSL.g:8622:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalChartDSL.g:8623:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalChartDSL.g:8926:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalChartDSL.g:8927:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,135,FOLLOW_63); if (state.failed) return current;
+            otherlv_0=(Token)match(input,145,FOLLOW_76); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0());
               		
             }
-            // InternalChartDSL.g:8627:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalChartDSL.g:8628:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:8931:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalChartDSL.g:8932:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalChartDSL.g:8628:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalChartDSL.g:8629:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalChartDSL.g:8932:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalChartDSL.g:8933:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -24118,7 +24892,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameWithWildcard"
-    // InternalChartDSL.g:8650:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
+    // InternalChartDSL.g:8954:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
     public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException {
         String current = null;
 
@@ -24126,8 +24900,8 @@
 
 
         try {
-            // InternalChartDSL.g:8650:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
-            // InternalChartDSL.g:8651:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
+            // InternalChartDSL.g:8954:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
+            // InternalChartDSL.g:8955:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); 
@@ -24158,7 +24932,7 @@
 
 
     // $ANTLR start "ruleQualifiedNameWithWildcard"
-    // InternalChartDSL.g:8657:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
+    // InternalChartDSL.g:8961:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -24170,18 +24944,18 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8663:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
-            // InternalChartDSL.g:8664:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            // InternalChartDSL.g:8967:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
+            // InternalChartDSL.g:8968:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
             {
-            // InternalChartDSL.g:8664:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
-            // InternalChartDSL.g:8665:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
+            // InternalChartDSL.g:8968:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            // InternalChartDSL.g:8969:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_120);
+            pushFollow(FOLLOW_133);
             this_QualifiedName_0=ruleQualifiedName();
 
             state._fsp--;
@@ -24196,14 +24970,14 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            kw=(Token)match(input,106,FOLLOW_121); if (state.failed) return current;
+            kw=(Token)match(input,116,FOLLOW_134); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
               			newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1());
               		
             }
-            kw=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
@@ -24235,7 +25009,7 @@
 
 
     // $ANTLR start "entryRuleValidID"
-    // InternalChartDSL.g:8689:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
+    // InternalChartDSL.g:8993:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
     public final String entryRuleValidID() throws RecognitionException {
         String current = null;
 
@@ -24243,8 +25017,8 @@
 
 
         try {
-            // InternalChartDSL.g:8689:47: (iv_ruleValidID= ruleValidID EOF )
-            // InternalChartDSL.g:8690:2: iv_ruleValidID= ruleValidID EOF
+            // InternalChartDSL.g:8993:47: (iv_ruleValidID= ruleValidID EOF )
+            // InternalChartDSL.g:8994:2: iv_ruleValidID= ruleValidID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getValidIDRule()); 
@@ -24275,7 +25049,7 @@
 
 
     // $ANTLR start "ruleValidID"
-    // InternalChartDSL.g:8696:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    // InternalChartDSL.g:9000:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
     public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -24285,8 +25059,8 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8702:2: (this_ID_0= RULE_ID )
-            // InternalChartDSL.g:8703:2: this_ID_0= RULE_ID
+            // InternalChartDSL.g:9006:2: (this_ID_0= RULE_ID )
+            // InternalChartDSL.g:9007:2: this_ID_0= RULE_ID
             {
             this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -24321,7 +25095,7 @@
 
 
     // $ANTLR start "entryRuleXImportSection"
-    // InternalChartDSL.g:8713:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
+    // InternalChartDSL.g:9017:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
     public final EObject entryRuleXImportSection() throws RecognitionException {
         EObject current = null;
 
@@ -24329,8 +25103,8 @@
 
 
         try {
-            // InternalChartDSL.g:8713:55: (iv_ruleXImportSection= ruleXImportSection EOF )
-            // InternalChartDSL.g:8714:2: iv_ruleXImportSection= ruleXImportSection EOF
+            // InternalChartDSL.g:9017:55: (iv_ruleXImportSection= ruleXImportSection EOF )
+            // InternalChartDSL.g:9018:2: iv_ruleXImportSection= ruleXImportSection EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXImportSectionRule()); 
@@ -24361,7 +25135,7 @@
 
 
     // $ANTLR start "ruleXImportSection"
-    // InternalChartDSL.g:8720:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
+    // InternalChartDSL.g:9024:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
     public final EObject ruleXImportSection() throws RecognitionException {
         EObject current = null;
 
@@ -24372,34 +25146,34 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8726:2: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
-            // InternalChartDSL.g:8727:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            // InternalChartDSL.g:9030:2: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
+            // InternalChartDSL.g:9031:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
             {
-            // InternalChartDSL.g:8727:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
-            int cnt150=0;
-            loop150:
+            // InternalChartDSL.g:9031:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            int cnt162=0;
+            loop162:
             do {
-                int alt150=2;
-                int LA150_0 = input.LA(1);
+                int alt162=2;
+                int LA162_0 = input.LA(1);
 
-                if ( (LA150_0==64) ) {
-                    alt150=1;
+                if ( (LA162_0==74) ) {
+                    alt162=1;
                 }
 
 
-                switch (alt150) {
+                switch (alt162) {
             	case 1 :
-            	    // InternalChartDSL.g:8728:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    // InternalChartDSL.g:9032:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
             	    {
-            	    // InternalChartDSL.g:8728:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
-            	    // InternalChartDSL.g:8729:4: lv_importDeclarations_0_0= ruleXImportDeclaration
+            	    // InternalChartDSL.g:9032:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    // InternalChartDSL.g:9033:4: lv_importDeclarations_0_0= ruleXImportDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      				newCompositeNode(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0());
             	      			
             	    }
-            	    pushFollow(FOLLOW_122);
+            	    pushFollow(FOLLOW_135);
             	    lv_importDeclarations_0_0=ruleXImportDeclaration();
 
             	    state._fsp--;
@@ -24425,13 +25199,13 @@
             	    break;
 
             	default :
-            	    if ( cnt150 >= 1 ) break loop150;
+            	    if ( cnt162 >= 1 ) break loop162;
             	    if (state.backtracking>0) {state.failed=true; return current;}
                         EarlyExitException eee =
-                            new EarlyExitException(150, input);
+                            new EarlyExitException(162, input);
                         throw eee;
                 }
-                cnt150++;
+                cnt162++;
             } while (true);
 
 
@@ -24456,7 +25230,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameInStaticImport"
-    // InternalChartDSL.g:8749:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ;
+    // InternalChartDSL.g:9053:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ;
     public final String entryRuleQualifiedNameInStaticImport() throws RecognitionException {
         String current = null;
 
@@ -24464,8 +25238,8 @@
 
 
         try {
-            // InternalChartDSL.g:8749:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF )
-            // InternalChartDSL.g:8750:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF
+            // InternalChartDSL.g:9053:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF )
+            // InternalChartDSL.g:9054:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); 
@@ -24496,7 +25270,7 @@
 
 
     // $ANTLR start "ruleQualifiedNameInStaticImport"
-    // InternalChartDSL.g:8756:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ;
+    // InternalChartDSL.g:9060:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ;
     public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -24508,37 +25282,37 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8762:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
-            // InternalChartDSL.g:8763:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            // InternalChartDSL.g:9066:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
+            // InternalChartDSL.g:9067:2: (this_ValidID_0= ruleValidID kw= '.' )+
             {
-            // InternalChartDSL.g:8763:2: (this_ValidID_0= ruleValidID kw= '.' )+
-            int cnt151=0;
-            loop151:
+            // InternalChartDSL.g:9067:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            int cnt163=0;
+            loop163:
             do {
-                int alt151=2;
-                int LA151_0 = input.LA(1);
+                int alt163=2;
+                int LA163_0 = input.LA(1);
 
-                if ( (LA151_0==RULE_ID) ) {
-                    int LA151_2 = input.LA(2);
+                if ( (LA163_0==RULE_ID) ) {
+                    int LA163_2 = input.LA(2);
 
-                    if ( (LA151_2==106) ) {
-                        alt151=1;
+                    if ( (LA163_2==116) ) {
+                        alt163=1;
                     }
 
 
                 }
 
 
-                switch (alt151) {
+                switch (alt163) {
             	case 1 :
-            	    // InternalChartDSL.g:8764:3: this_ValidID_0= ruleValidID kw= '.'
+            	    // InternalChartDSL.g:9068:3: this_ValidID_0= ruleValidID kw= '.'
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      			newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0());
             	      		
             	    }
-            	    pushFollow(FOLLOW_120);
+            	    pushFollow(FOLLOW_133);
             	    this_ValidID_0=ruleValidID();
 
             	    state._fsp--;
@@ -24553,7 +25327,7 @@
             	      			afterParserOrEnumRuleCall();
             	      		
             	    }
-            	    kw=(Token)match(input,106,FOLLOW_123); if (state.failed) return current;
+            	    kw=(Token)match(input,116,FOLLOW_136); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      			current.merge(kw);
@@ -24565,13 +25339,13 @@
             	    break;
 
             	default :
-            	    if ( cnt151 >= 1 ) break loop151;
+            	    if ( cnt163 >= 1 ) break loop163;
             	    if (state.backtracking>0) {state.failed=true; return current;}
                         EarlyExitException eee =
-                            new EarlyExitException(151, input);
+                            new EarlyExitException(163, input);
                         throw eee;
                 }
-                cnt151++;
+                cnt163++;
             } while (true);
 
 
@@ -24596,7 +25370,7 @@
 
 
     // $ANTLR start "ruleLegendPlacementEnum"
-    // InternalChartDSL.g:8783:1: ruleLegendPlacementEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'inside' ) | (enumLiteral_1= 'inside-grid' ) | (enumLiteral_2= 'outside' ) | (enumLiteral_3= 'outside-grid' ) ) ;
+    // InternalChartDSL.g:9087:1: ruleLegendPlacementEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'inside' ) | (enumLiteral_1= 'inside-grid' ) | (enumLiteral_2= 'outside' ) | (enumLiteral_3= 'outside-grid' ) ) ;
     public final Enumerator ruleLegendPlacementEnum() throws RecognitionException {
         Enumerator current = null;
 
@@ -24609,48 +25383,48 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8789:2: ( ( (enumLiteral_0= 'inside' ) | (enumLiteral_1= 'inside-grid' ) | (enumLiteral_2= 'outside' ) | (enumLiteral_3= 'outside-grid' ) ) )
-            // InternalChartDSL.g:8790:2: ( (enumLiteral_0= 'inside' ) | (enumLiteral_1= 'inside-grid' ) | (enumLiteral_2= 'outside' ) | (enumLiteral_3= 'outside-grid' ) )
+            // InternalChartDSL.g:9093:2: ( ( (enumLiteral_0= 'inside' ) | (enumLiteral_1= 'inside-grid' ) | (enumLiteral_2= 'outside' ) | (enumLiteral_3= 'outside-grid' ) ) )
+            // InternalChartDSL.g:9094:2: ( (enumLiteral_0= 'inside' ) | (enumLiteral_1= 'inside-grid' ) | (enumLiteral_2= 'outside' ) | (enumLiteral_3= 'outside-grid' ) )
             {
-            // InternalChartDSL.g:8790:2: ( (enumLiteral_0= 'inside' ) | (enumLiteral_1= 'inside-grid' ) | (enumLiteral_2= 'outside' ) | (enumLiteral_3= 'outside-grid' ) )
-            int alt152=4;
+            // InternalChartDSL.g:9094:2: ( (enumLiteral_0= 'inside' ) | (enumLiteral_1= 'inside-grid' ) | (enumLiteral_2= 'outside' ) | (enumLiteral_3= 'outside-grid' ) )
+            int alt164=4;
             switch ( input.LA(1) ) {
-            case 57:
+            case 62:
                 {
-                alt152=1;
+                alt164=1;
                 }
                 break;
-            case 136:
+            case 146:
                 {
-                alt152=2;
+                alt164=2;
                 }
                 break;
-            case 137:
+            case 147:
                 {
-                alt152=3;
+                alt164=3;
                 }
                 break;
-            case 138:
+            case 148:
                 {
-                alt152=4;
+                alt164=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 152, 0, input);
+                    new NoViableAltException("", 164, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt152) {
+            switch (alt164) {
                 case 1 :
-                    // InternalChartDSL.g:8791:3: (enumLiteral_0= 'inside' )
+                    // InternalChartDSL.g:9095:3: (enumLiteral_0= 'inside' )
                     {
-                    // InternalChartDSL.g:8791:3: (enumLiteral_0= 'inside' )
-                    // InternalChartDSL.g:8792:4: enumLiteral_0= 'inside'
+                    // InternalChartDSL.g:9095:3: (enumLiteral_0= 'inside' )
+                    // InternalChartDSL.g:9096:4: enumLiteral_0= 'inside'
                     {
-                    enumLiteral_0=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getLegendPlacementEnumAccess().getINSIDEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -24664,12 +25438,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:8799:3: (enumLiteral_1= 'inside-grid' )
+                    // InternalChartDSL.g:9103:3: (enumLiteral_1= 'inside-grid' )
                     {
-                    // InternalChartDSL.g:8799:3: (enumLiteral_1= 'inside-grid' )
-                    // InternalChartDSL.g:8800:4: enumLiteral_1= 'inside-grid'
+                    // InternalChartDSL.g:9103:3: (enumLiteral_1= 'inside-grid' )
+                    // InternalChartDSL.g:9104:4: enumLiteral_1= 'inside-grid'
                     {
-                    enumLiteral_1=(Token)match(input,136,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,146,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getLegendPlacementEnumAccess().getINSIDE_GRIDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -24683,12 +25457,12 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:8807:3: (enumLiteral_2= 'outside' )
+                    // InternalChartDSL.g:9111:3: (enumLiteral_2= 'outside' )
                     {
-                    // InternalChartDSL.g:8807:3: (enumLiteral_2= 'outside' )
-                    // InternalChartDSL.g:8808:4: enumLiteral_2= 'outside'
+                    // InternalChartDSL.g:9111:3: (enumLiteral_2= 'outside' )
+                    // InternalChartDSL.g:9112:4: enumLiteral_2= 'outside'
                     {
-                    enumLiteral_2=(Token)match(input,137,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,147,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getLegendPlacementEnumAccess().getOUTSIDEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -24702,12 +25476,12 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:8815:3: (enumLiteral_3= 'outside-grid' )
+                    // InternalChartDSL.g:9119:3: (enumLiteral_3= 'outside-grid' )
                     {
-                    // InternalChartDSL.g:8815:3: (enumLiteral_3= 'outside-grid' )
-                    // InternalChartDSL.g:8816:4: enumLiteral_3= 'outside-grid'
+                    // InternalChartDSL.g:9119:3: (enumLiteral_3= 'outside-grid' )
+                    // InternalChartDSL.g:9120:4: enumLiteral_3= 'outside-grid'
                     {
-                    enumLiteral_3=(Token)match(input,138,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,148,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getLegendPlacementEnumAccess().getOUTSIDE_GRIDEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -24745,7 +25519,7 @@
 
 
     // $ANTLR start "ruleToggleTypeEnum"
-    // InternalChartDSL.g:8826:1: ruleToggleTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'normal' ) | (enumLiteral_1= 'slow' ) | (enumLiteral_2= 'fast' ) ) ;
+    // InternalChartDSL.g:9130:1: ruleToggleTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'normal' ) | (enumLiteral_1= 'slow' ) | (enumLiteral_2= 'fast' ) ) ;
     public final Enumerator ruleToggleTypeEnum() throws RecognitionException {
         Enumerator current = null;
 
@@ -24757,43 +25531,43 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8832:2: ( ( (enumLiteral_0= 'normal' ) | (enumLiteral_1= 'slow' ) | (enumLiteral_2= 'fast' ) ) )
-            // InternalChartDSL.g:8833:2: ( (enumLiteral_0= 'normal' ) | (enumLiteral_1= 'slow' ) | (enumLiteral_2= 'fast' ) )
+            // InternalChartDSL.g:9136:2: ( ( (enumLiteral_0= 'normal' ) | (enumLiteral_1= 'slow' ) | (enumLiteral_2= 'fast' ) ) )
+            // InternalChartDSL.g:9137:2: ( (enumLiteral_0= 'normal' ) | (enumLiteral_1= 'slow' ) | (enumLiteral_2= 'fast' ) )
             {
-            // InternalChartDSL.g:8833:2: ( (enumLiteral_0= 'normal' ) | (enumLiteral_1= 'slow' ) | (enumLiteral_2= 'fast' ) )
-            int alt153=3;
+            // InternalChartDSL.g:9137:2: ( (enumLiteral_0= 'normal' ) | (enumLiteral_1= 'slow' ) | (enumLiteral_2= 'fast' ) )
+            int alt165=3;
             switch ( input.LA(1) ) {
-            case 139:
+            case 149:
                 {
-                alt153=1;
+                alt165=1;
                 }
                 break;
-            case 140:
+            case 150:
                 {
-                alt153=2;
+                alt165=2;
                 }
                 break;
-            case 141:
+            case 151:
                 {
-                alt153=3;
+                alt165=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 153, 0, input);
+                    new NoViableAltException("", 165, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt153) {
+            switch (alt165) {
                 case 1 :
-                    // InternalChartDSL.g:8834:3: (enumLiteral_0= 'normal' )
+                    // InternalChartDSL.g:9138:3: (enumLiteral_0= 'normal' )
                     {
-                    // InternalChartDSL.g:8834:3: (enumLiteral_0= 'normal' )
-                    // InternalChartDSL.g:8835:4: enumLiteral_0= 'normal'
+                    // InternalChartDSL.g:9138:3: (enumLiteral_0= 'normal' )
+                    // InternalChartDSL.g:9139:4: enumLiteral_0= 'normal'
                     {
-                    enumLiteral_0=(Token)match(input,139,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,149,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getToggleTypeEnumAccess().getNORMALEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -24807,12 +25581,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:8842:3: (enumLiteral_1= 'slow' )
+                    // InternalChartDSL.g:9146:3: (enumLiteral_1= 'slow' )
                     {
-                    // InternalChartDSL.g:8842:3: (enumLiteral_1= 'slow' )
-                    // InternalChartDSL.g:8843:4: enumLiteral_1= 'slow'
+                    // InternalChartDSL.g:9146:3: (enumLiteral_1= 'slow' )
+                    // InternalChartDSL.g:9147:4: enumLiteral_1= 'slow'
                     {
-                    enumLiteral_1=(Token)match(input,140,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,150,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getToggleTypeEnumAccess().getSLOWEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -24826,12 +25600,12 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:8850:3: (enumLiteral_2= 'fast' )
+                    // InternalChartDSL.g:9154:3: (enumLiteral_2= 'fast' )
                     {
-                    // InternalChartDSL.g:8850:3: (enumLiteral_2= 'fast' )
-                    // InternalChartDSL.g:8851:4: enumLiteral_2= 'fast'
+                    // InternalChartDSL.g:9154:3: (enumLiteral_2= 'fast' )
+                    // InternalChartDSL.g:9155:4: enumLiteral_2= 'fast'
                     {
-                    enumLiteral_2=(Token)match(input,141,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,151,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getToggleTypeEnumAccess().getFASTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -24869,7 +25643,7 @@
 
 
     // $ANTLR start "ruleTooltipLocationEnum"
-    // InternalChartDSL.g:8861:1: ruleTooltipLocationEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'north' ) | (enumLiteral_1= 'north-east' ) | (enumLiteral_2= 'east' ) | (enumLiteral_3= 'south-east' ) | (enumLiteral_4= 'south' ) | (enumLiteral_5= 'south-west' ) | (enumLiteral_6= 'west' ) | (enumLiteral_7= 'north-west' ) ) ;
+    // InternalChartDSL.g:9165:1: ruleTooltipLocationEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'north' ) | (enumLiteral_1= 'north-east' ) | (enumLiteral_2= 'east' ) | (enumLiteral_3= 'south-east' ) | (enumLiteral_4= 'south' ) | (enumLiteral_5= 'south-west' ) | (enumLiteral_6= 'west' ) | (enumLiteral_7= 'north-west' ) ) ;
     public final Enumerator ruleTooltipLocationEnum() throws RecognitionException {
         Enumerator current = null;
 
@@ -24886,68 +25660,68 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8867:2: ( ( (enumLiteral_0= 'north' ) | (enumLiteral_1= 'north-east' ) | (enumLiteral_2= 'east' ) | (enumLiteral_3= 'south-east' ) | (enumLiteral_4= 'south' ) | (enumLiteral_5= 'south-west' ) | (enumLiteral_6= 'west' ) | (enumLiteral_7= 'north-west' ) ) )
-            // InternalChartDSL.g:8868:2: ( (enumLiteral_0= 'north' ) | (enumLiteral_1= 'north-east' ) | (enumLiteral_2= 'east' ) | (enumLiteral_3= 'south-east' ) | (enumLiteral_4= 'south' ) | (enumLiteral_5= 'south-west' ) | (enumLiteral_6= 'west' ) | (enumLiteral_7= 'north-west' ) )
+            // InternalChartDSL.g:9171:2: ( ( (enumLiteral_0= 'north' ) | (enumLiteral_1= 'north-east' ) | (enumLiteral_2= 'east' ) | (enumLiteral_3= 'south-east' ) | (enumLiteral_4= 'south' ) | (enumLiteral_5= 'south-west' ) | (enumLiteral_6= 'west' ) | (enumLiteral_7= 'north-west' ) ) )
+            // InternalChartDSL.g:9172:2: ( (enumLiteral_0= 'north' ) | (enumLiteral_1= 'north-east' ) | (enumLiteral_2= 'east' ) | (enumLiteral_3= 'south-east' ) | (enumLiteral_4= 'south' ) | (enumLiteral_5= 'south-west' ) | (enumLiteral_6= 'west' ) | (enumLiteral_7= 'north-west' ) )
             {
-            // InternalChartDSL.g:8868:2: ( (enumLiteral_0= 'north' ) | (enumLiteral_1= 'north-east' ) | (enumLiteral_2= 'east' ) | (enumLiteral_3= 'south-east' ) | (enumLiteral_4= 'south' ) | (enumLiteral_5= 'south-west' ) | (enumLiteral_6= 'west' ) | (enumLiteral_7= 'north-west' ) )
-            int alt154=8;
+            // InternalChartDSL.g:9172:2: ( (enumLiteral_0= 'north' ) | (enumLiteral_1= 'north-east' ) | (enumLiteral_2= 'east' ) | (enumLiteral_3= 'south-east' ) | (enumLiteral_4= 'south' ) | (enumLiteral_5= 'south-west' ) | (enumLiteral_6= 'west' ) | (enumLiteral_7= 'north-west' ) )
+            int alt166=8;
             switch ( input.LA(1) ) {
-            case 142:
+            case 152:
                 {
-                alt154=1;
+                alt166=1;
                 }
                 break;
-            case 143:
+            case 153:
                 {
-                alt154=2;
+                alt166=2;
                 }
                 break;
-            case 144:
+            case 154:
                 {
-                alt154=3;
+                alt166=3;
                 }
                 break;
-            case 145:
+            case 155:
                 {
-                alt154=4;
+                alt166=4;
                 }
                 break;
-            case 146:
+            case 156:
                 {
-                alt154=5;
+                alt166=5;
                 }
                 break;
-            case 147:
+            case 157:
                 {
-                alt154=6;
+                alt166=6;
                 }
                 break;
-            case 148:
+            case 158:
                 {
-                alt154=7;
+                alt166=7;
                 }
                 break;
-            case 149:
+            case 159:
                 {
-                alt154=8;
+                alt166=8;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 154, 0, input);
+                    new NoViableAltException("", 166, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt154) {
+            switch (alt166) {
                 case 1 :
-                    // InternalChartDSL.g:8869:3: (enumLiteral_0= 'north' )
+                    // InternalChartDSL.g:9173:3: (enumLiteral_0= 'north' )
                     {
-                    // InternalChartDSL.g:8869:3: (enumLiteral_0= 'north' )
-                    // InternalChartDSL.g:8870:4: enumLiteral_0= 'north'
+                    // InternalChartDSL.g:9173:3: (enumLiteral_0= 'north' )
+                    // InternalChartDSL.g:9174:4: enumLiteral_0= 'north'
                     {
-                    enumLiteral_0=(Token)match(input,142,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,152,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getTooltipLocationEnumAccess().getNORTHEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -24961,12 +25735,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:8877:3: (enumLiteral_1= 'north-east' )
+                    // InternalChartDSL.g:9181:3: (enumLiteral_1= 'north-east' )
                     {
-                    // InternalChartDSL.g:8877:3: (enumLiteral_1= 'north-east' )
-                    // InternalChartDSL.g:8878:4: enumLiteral_1= 'north-east'
+                    // InternalChartDSL.g:9181:3: (enumLiteral_1= 'north-east' )
+                    // InternalChartDSL.g:9182:4: enumLiteral_1= 'north-east'
                     {
-                    enumLiteral_1=(Token)match(input,143,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,153,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getTooltipLocationEnumAccess().getNORTH_EASTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -24980,12 +25754,12 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:8885:3: (enumLiteral_2= 'east' )
+                    // InternalChartDSL.g:9189:3: (enumLiteral_2= 'east' )
                     {
-                    // InternalChartDSL.g:8885:3: (enumLiteral_2= 'east' )
-                    // InternalChartDSL.g:8886:4: enumLiteral_2= 'east'
+                    // InternalChartDSL.g:9189:3: (enumLiteral_2= 'east' )
+                    // InternalChartDSL.g:9190:4: enumLiteral_2= 'east'
                     {
-                    enumLiteral_2=(Token)match(input,144,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,154,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getTooltipLocationEnumAccess().getEASTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -24999,12 +25773,12 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:8893:3: (enumLiteral_3= 'south-east' )
+                    // InternalChartDSL.g:9197:3: (enumLiteral_3= 'south-east' )
                     {
-                    // InternalChartDSL.g:8893:3: (enumLiteral_3= 'south-east' )
-                    // InternalChartDSL.g:8894:4: enumLiteral_3= 'south-east'
+                    // InternalChartDSL.g:9197:3: (enumLiteral_3= 'south-east' )
+                    // InternalChartDSL.g:9198:4: enumLiteral_3= 'south-east'
                     {
-                    enumLiteral_3=(Token)match(input,145,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,155,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getTooltipLocationEnumAccess().getSOUTH_EASTEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -25018,12 +25792,12 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:8901:3: (enumLiteral_4= 'south' )
+                    // InternalChartDSL.g:9205:3: (enumLiteral_4= 'south' )
                     {
-                    // InternalChartDSL.g:8901:3: (enumLiteral_4= 'south' )
-                    // InternalChartDSL.g:8902:4: enumLiteral_4= 'south'
+                    // InternalChartDSL.g:9205:3: (enumLiteral_4= 'south' )
+                    // InternalChartDSL.g:9206:4: enumLiteral_4= 'south'
                     {
-                    enumLiteral_4=(Token)match(input,146,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_4=(Token)match(input,156,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getTooltipLocationEnumAccess().getSOUTHEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -25037,12 +25811,12 @@
                     }
                     break;
                 case 6 :
-                    // InternalChartDSL.g:8909:3: (enumLiteral_5= 'south-west' )
+                    // InternalChartDSL.g:9213:3: (enumLiteral_5= 'south-west' )
                     {
-                    // InternalChartDSL.g:8909:3: (enumLiteral_5= 'south-west' )
-                    // InternalChartDSL.g:8910:4: enumLiteral_5= 'south-west'
+                    // InternalChartDSL.g:9213:3: (enumLiteral_5= 'south-west' )
+                    // InternalChartDSL.g:9214:4: enumLiteral_5= 'south-west'
                     {
-                    enumLiteral_5=(Token)match(input,147,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_5=(Token)match(input,157,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getTooltipLocationEnumAccess().getSOUTH_WESTEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
@@ -25056,12 +25830,12 @@
                     }
                     break;
                 case 7 :
-                    // InternalChartDSL.g:8917:3: (enumLiteral_6= 'west' )
+                    // InternalChartDSL.g:9221:3: (enumLiteral_6= 'west' )
                     {
-                    // InternalChartDSL.g:8917:3: (enumLiteral_6= 'west' )
-                    // InternalChartDSL.g:8918:4: enumLiteral_6= 'west'
+                    // InternalChartDSL.g:9221:3: (enumLiteral_6= 'west' )
+                    // InternalChartDSL.g:9222:4: enumLiteral_6= 'west'
                     {
-                    enumLiteral_6=(Token)match(input,148,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_6=(Token)match(input,158,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getTooltipLocationEnumAccess().getWESTEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
@@ -25075,12 +25849,12 @@
                     }
                     break;
                 case 8 :
-                    // InternalChartDSL.g:8925:3: (enumLiteral_7= 'north-west' )
+                    // InternalChartDSL.g:9229:3: (enumLiteral_7= 'north-west' )
                     {
-                    // InternalChartDSL.g:8925:3: (enumLiteral_7= 'north-west' )
-                    // InternalChartDSL.g:8926:4: enumLiteral_7= 'north-west'
+                    // InternalChartDSL.g:9229:3: (enumLiteral_7= 'north-west' )
+                    // InternalChartDSL.g:9230:4: enumLiteral_7= 'north-west'
                     {
-                    enumLiteral_7=(Token)match(input,149,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_7=(Token)match(input,159,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getTooltipLocationEnumAccess().getNORTH_WESTEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
@@ -25118,7 +25892,7 @@
 
 
     // $ANTLR start "ruleRenderTypeEnum"
-    // InternalChartDSL.g:8936:1: ruleRenderTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'category' ) | (enumLiteral_1= 'linear' ) | (enumLiteral_2= 'date' ) | (enumLiteral_3= 'logarithmic' ) | (enumLiteral_4= 'pyramid' ) ) ;
+    // InternalChartDSL.g:9240:1: ruleRenderTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'category' ) | (enumLiteral_1= 'linear' ) | (enumLiteral_2= 'date' ) | (enumLiteral_3= 'logarithmic' ) | (enumLiteral_4= 'pyramid' ) ) ;
     public final Enumerator ruleRenderTypeEnum() throws RecognitionException {
         Enumerator current = null;
 
@@ -25132,53 +25906,53 @@
         	enterRule();
 
         try {
-            // InternalChartDSL.g:8942:2: ( ( (enumLiteral_0= 'category' ) | (enumLiteral_1= 'linear' ) | (enumLiteral_2= 'date' ) | (enumLiteral_3= 'logarithmic' ) | (enumLiteral_4= 'pyramid' ) ) )
-            // InternalChartDSL.g:8943:2: ( (enumLiteral_0= 'category' ) | (enumLiteral_1= 'linear' ) | (enumLiteral_2= 'date' ) | (enumLiteral_3= 'logarithmic' ) | (enumLiteral_4= 'pyramid' ) )
+            // InternalChartDSL.g:9246:2: ( ( (enumLiteral_0= 'category' ) | (enumLiteral_1= 'linear' ) | (enumLiteral_2= 'date' ) | (enumLiteral_3= 'logarithmic' ) | (enumLiteral_4= 'pyramid' ) ) )
+            // InternalChartDSL.g:9247:2: ( (enumLiteral_0= 'category' ) | (enumLiteral_1= 'linear' ) | (enumLiteral_2= 'date' ) | (enumLiteral_3= 'logarithmic' ) | (enumLiteral_4= 'pyramid' ) )
             {
-            // InternalChartDSL.g:8943:2: ( (enumLiteral_0= 'category' ) | (enumLiteral_1= 'linear' ) | (enumLiteral_2= 'date' ) | (enumLiteral_3= 'logarithmic' ) | (enumLiteral_4= 'pyramid' ) )
-            int alt155=5;
+            // InternalChartDSL.g:9247:2: ( (enumLiteral_0= 'category' ) | (enumLiteral_1= 'linear' ) | (enumLiteral_2= 'date' ) | (enumLiteral_3= 'logarithmic' ) | (enumLiteral_4= 'pyramid' ) )
+            int alt167=5;
             switch ( input.LA(1) ) {
-            case 150:
+            case 160:
                 {
-                alt155=1;
+                alt167=1;
                 }
                 break;
-            case 151:
+            case 161:
                 {
-                alt155=2;
+                alt167=2;
                 }
                 break;
-            case 152:
+            case 162:
                 {
-                alt155=3;
+                alt167=3;
                 }
                 break;
-            case 153:
+            case 163:
                 {
-                alt155=4;
+                alt167=4;
                 }
                 break;
-            case 154:
+            case 164:
                 {
-                alt155=5;
+                alt167=5;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 155, 0, input);
+                    new NoViableAltException("", 167, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt155) {
+            switch (alt167) {
                 case 1 :
-                    // InternalChartDSL.g:8944:3: (enumLiteral_0= 'category' )
+                    // InternalChartDSL.g:9248:3: (enumLiteral_0= 'category' )
                     {
-                    // InternalChartDSL.g:8944:3: (enumLiteral_0= 'category' )
-                    // InternalChartDSL.g:8945:4: enumLiteral_0= 'category'
+                    // InternalChartDSL.g:9248:3: (enumLiteral_0= 'category' )
+                    // InternalChartDSL.g:9249:4: enumLiteral_0= 'category'
                     {
-                    enumLiteral_0=(Token)match(input,150,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,160,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getRenderTypeEnumAccess().getCATEGORYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -25192,12 +25966,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalChartDSL.g:8952:3: (enumLiteral_1= 'linear' )
+                    // InternalChartDSL.g:9256:3: (enumLiteral_1= 'linear' )
                     {
-                    // InternalChartDSL.g:8952:3: (enumLiteral_1= 'linear' )
-                    // InternalChartDSL.g:8953:4: enumLiteral_1= 'linear'
+                    // InternalChartDSL.g:9256:3: (enumLiteral_1= 'linear' )
+                    // InternalChartDSL.g:9257:4: enumLiteral_1= 'linear'
                     {
-                    enumLiteral_1=(Token)match(input,151,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,161,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getRenderTypeEnumAccess().getLINEAREnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -25211,12 +25985,12 @@
                     }
                     break;
                 case 3 :
-                    // InternalChartDSL.g:8960:3: (enumLiteral_2= 'date' )
+                    // InternalChartDSL.g:9264:3: (enumLiteral_2= 'date' )
                     {
-                    // InternalChartDSL.g:8960:3: (enumLiteral_2= 'date' )
-                    // InternalChartDSL.g:8961:4: enumLiteral_2= 'date'
+                    // InternalChartDSL.g:9264:3: (enumLiteral_2= 'date' )
+                    // InternalChartDSL.g:9265:4: enumLiteral_2= 'date'
                     {
-                    enumLiteral_2=(Token)match(input,152,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,162,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getRenderTypeEnumAccess().getDATEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -25230,12 +26004,12 @@
                     }
                     break;
                 case 4 :
-                    // InternalChartDSL.g:8968:3: (enumLiteral_3= 'logarithmic' )
+                    // InternalChartDSL.g:9272:3: (enumLiteral_3= 'logarithmic' )
                     {
-                    // InternalChartDSL.g:8968:3: (enumLiteral_3= 'logarithmic' )
-                    // InternalChartDSL.g:8969:4: enumLiteral_3= 'logarithmic'
+                    // InternalChartDSL.g:9272:3: (enumLiteral_3= 'logarithmic' )
+                    // InternalChartDSL.g:9273:4: enumLiteral_3= 'logarithmic'
                     {
-                    enumLiteral_3=(Token)match(input,153,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,163,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getRenderTypeEnumAccess().getLOGEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -25249,12 +26023,12 @@
                     }
                     break;
                 case 5 :
-                    // InternalChartDSL.g:8976:3: (enumLiteral_4= 'pyramid' )
+                    // InternalChartDSL.g:9280:3: (enumLiteral_4= 'pyramid' )
                     {
-                    // InternalChartDSL.g:8976:3: (enumLiteral_4= 'pyramid' )
-                    // InternalChartDSL.g:8977:4: enumLiteral_4= 'pyramid'
+                    // InternalChartDSL.g:9280:3: (enumLiteral_4= 'pyramid' )
+                    // InternalChartDSL.g:9281:4: enumLiteral_4= 'pyramid'
                     {
-                    enumLiteral_4=(Token)match(input,154,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_4=(Token)match(input,164,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getRenderTypeEnumAccess().getPYRAMIDEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -25290,12 +26064,236 @@
     }
     // $ANTLR end "ruleRenderTypeEnum"
 
+
+    // $ANTLR start "ruleCanvasFontFamilyEnum"
+    // InternalChartDSL.g:9291:1: ruleCanvasFontFamilyEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'Default' ) | (enumLiteral_1= 'Arial' ) | (enumLiteral_2= 'Verdana' ) | (enumLiteral_3= 'Times New Roman' ) | (enumLiteral_4= 'Courier New' ) | (enumLiteral_5= 'serif' ) | (enumLiteral_6= 'sans-serif' ) ) ;
+    public final Enumerator ruleCanvasFontFamilyEnum() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+        Token enumLiteral_4=null;
+        Token enumLiteral_5=null;
+        Token enumLiteral_6=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalChartDSL.g:9297:2: ( ( (enumLiteral_0= 'Default' ) | (enumLiteral_1= 'Arial' ) | (enumLiteral_2= 'Verdana' ) | (enumLiteral_3= 'Times New Roman' ) | (enumLiteral_4= 'Courier New' ) | (enumLiteral_5= 'serif' ) | (enumLiteral_6= 'sans-serif' ) ) )
+            // InternalChartDSL.g:9298:2: ( (enumLiteral_0= 'Default' ) | (enumLiteral_1= 'Arial' ) | (enumLiteral_2= 'Verdana' ) | (enumLiteral_3= 'Times New Roman' ) | (enumLiteral_4= 'Courier New' ) | (enumLiteral_5= 'serif' ) | (enumLiteral_6= 'sans-serif' ) )
+            {
+            // InternalChartDSL.g:9298:2: ( (enumLiteral_0= 'Default' ) | (enumLiteral_1= 'Arial' ) | (enumLiteral_2= 'Verdana' ) | (enumLiteral_3= 'Times New Roman' ) | (enumLiteral_4= 'Courier New' ) | (enumLiteral_5= 'serif' ) | (enumLiteral_6= 'sans-serif' ) )
+            int alt168=7;
+            switch ( input.LA(1) ) {
+            case 165:
+                {
+                alt168=1;
+                }
+                break;
+            case 166:
+                {
+                alt168=2;
+                }
+                break;
+            case 167:
+                {
+                alt168=3;
+                }
+                break;
+            case 168:
+                {
+                alt168=4;
+                }
+                break;
+            case 169:
+                {
+                alt168=5;
+                }
+                break;
+            case 170:
+                {
+                alt168=6;
+                }
+                break;
+            case 171:
+                {
+                alt168=7;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 168, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt168) {
+                case 1 :
+                    // InternalChartDSL.g:9299:3: (enumLiteral_0= 'Default' )
+                    {
+                    // InternalChartDSL.g:9299:3: (enumLiteral_0= 'Default' )
+                    // InternalChartDSL.g:9300:4: enumLiteral_0= 'Default'
+                    {
+                    enumLiteral_0=(Token)match(input,165,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getCanvasFontFamilyEnumAccess().getDEFAULTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_0, grammarAccess.getCanvasFontFamilyEnumAccess().getDEFAULTEnumLiteralDeclaration_0());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalChartDSL.g:9307:3: (enumLiteral_1= 'Arial' )
+                    {
+                    // InternalChartDSL.g:9307:3: (enumLiteral_1= 'Arial' )
+                    // InternalChartDSL.g:9308:4: enumLiteral_1= 'Arial'
+                    {
+                    enumLiteral_1=(Token)match(input,166,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getCanvasFontFamilyEnumAccess().getARIALEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_1, grammarAccess.getCanvasFontFamilyEnumAccess().getARIALEnumLiteralDeclaration_1());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalChartDSL.g:9315:3: (enumLiteral_2= 'Verdana' )
+                    {
+                    // InternalChartDSL.g:9315:3: (enumLiteral_2= 'Verdana' )
+                    // InternalChartDSL.g:9316:4: enumLiteral_2= 'Verdana'
+                    {
+                    enumLiteral_2=(Token)match(input,167,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getCanvasFontFamilyEnumAccess().getVERDANAEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_2, grammarAccess.getCanvasFontFamilyEnumAccess().getVERDANAEnumLiteralDeclaration_2());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalChartDSL.g:9323:3: (enumLiteral_3= 'Times New Roman' )
+                    {
+                    // InternalChartDSL.g:9323:3: (enumLiteral_3= 'Times New Roman' )
+                    // InternalChartDSL.g:9324:4: enumLiteral_3= 'Times New Roman'
+                    {
+                    enumLiteral_3=(Token)match(input,168,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getCanvasFontFamilyEnumAccess().getTIMESNEWROMANEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_3, grammarAccess.getCanvasFontFamilyEnumAccess().getTIMESNEWROMANEnumLiteralDeclaration_3());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalChartDSL.g:9331:3: (enumLiteral_4= 'Courier New' )
+                    {
+                    // InternalChartDSL.g:9331:3: (enumLiteral_4= 'Courier New' )
+                    // InternalChartDSL.g:9332:4: enumLiteral_4= 'Courier New'
+                    {
+                    enumLiteral_4=(Token)match(input,169,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getCanvasFontFamilyEnumAccess().getCOURIERNEWEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_4, grammarAccess.getCanvasFontFamilyEnumAccess().getCOURIERNEWEnumLiteralDeclaration_4());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalChartDSL.g:9339:3: (enumLiteral_5= 'serif' )
+                    {
+                    // InternalChartDSL.g:9339:3: (enumLiteral_5= 'serif' )
+                    // InternalChartDSL.g:9340:4: enumLiteral_5= 'serif'
+                    {
+                    enumLiteral_5=(Token)match(input,170,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getCanvasFontFamilyEnumAccess().getSERIFEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_5, grammarAccess.getCanvasFontFamilyEnumAccess().getSERIFEnumLiteralDeclaration_5());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalChartDSL.g:9347:3: (enumLiteral_6= 'sans-serif' )
+                    {
+                    // InternalChartDSL.g:9347:3: (enumLiteral_6= 'sans-serif' )
+                    // InternalChartDSL.g:9348:4: enumLiteral_6= 'sans-serif'
+                    {
+                    enumLiteral_6=(Token)match(input,171,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getCanvasFontFamilyEnumAccess().getSANSERIFEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_6, grammarAccess.getCanvasFontFamilyEnumAccess().getSANSERIFEnumLiteralDeclaration_6());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleCanvasFontFamilyEnum"
+
     // $ANTLR start synpred1_InternalChartDSL
     public final void synpred1_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:2159:5: ( '(' )
-        // InternalChartDSL.g:2159:6: '('
+        // InternalChartDSL.g:2463:5: ( '(' )
+        // InternalChartDSL.g:2463:6: '('
         {
-        match(input,71,FOLLOW_2); if (state.failed) return ;
+        match(input,81,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -25303,19 +26301,19 @@
 
     // $ANTLR start synpred2_InternalChartDSL
     public final void synpred2_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:2168:7: ( ( ( ( ruleValidID ) ) '=' ) )
-        // InternalChartDSL.g:2168:8: ( ( ( ruleValidID ) ) '=' )
+        // InternalChartDSL.g:2472:7: ( ( ( ( ruleValidID ) ) '=' ) )
+        // InternalChartDSL.g:2472:8: ( ( ( ruleValidID ) ) '=' )
         {
-        // InternalChartDSL.g:2168:8: ( ( ( ruleValidID ) ) '=' )
-        // InternalChartDSL.g:2169:8: ( ( ruleValidID ) ) '='
+        // InternalChartDSL.g:2472:8: ( ( ( ruleValidID ) ) '=' )
+        // InternalChartDSL.g:2473:8: ( ( ruleValidID ) ) '='
         {
-        // InternalChartDSL.g:2169:8: ( ( ruleValidID ) )
-        // InternalChartDSL.g:2170:9: ( ruleValidID )
+        // InternalChartDSL.g:2473:8: ( ( ruleValidID ) )
+        // InternalChartDSL.g:2474:9: ( ruleValidID )
         {
-        // InternalChartDSL.g:2170:9: ( ruleValidID )
-        // InternalChartDSL.g:2171:10: ruleValidID
+        // InternalChartDSL.g:2474:9: ( ruleValidID )
+        // InternalChartDSL.g:2475:10: ruleValidID
         {
-        pushFollow(FOLLOW_49);
+        pushFollow(FOLLOW_62);
         ruleValidID();
 
         state._fsp--;
@@ -25326,7 +26324,7 @@
 
         }
 
-        match(input,74,FOLLOW_2); if (state.failed) return ;
+        match(input,84,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25337,19 +26335,19 @@
 
     // $ANTLR start synpred5_InternalChartDSL
     public final void synpred5_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:2348:5: ( ( () '#' '[' ) )
-        // InternalChartDSL.g:2348:6: ( () '#' '[' )
+        // InternalChartDSL.g:2652:5: ( ( () '#' '[' ) )
+        // InternalChartDSL.g:2652:6: ( () '#' '[' )
         {
-        // InternalChartDSL.g:2348:6: ( () '#' '[' )
-        // InternalChartDSL.g:2349:6: () '#' '['
+        // InternalChartDSL.g:2652:6: ( () '#' '[' )
+        // InternalChartDSL.g:2653:6: () '#' '['
         {
-        // InternalChartDSL.g:2349:6: ()
-        // InternalChartDSL.g:2350:6: 
+        // InternalChartDSL.g:2653:6: ()
+        // InternalChartDSL.g:2654:6: 
         {
         }
 
-        match(input,75,FOLLOW_51); if (state.failed) return ;
-        match(input,76,FOLLOW_2); if (state.failed) return ;
+        match(input,85,FOLLOW_64); if (state.failed) return ;
+        match(input,86,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25360,19 +26358,19 @@
 
     // $ANTLR start synpred6_InternalChartDSL
     public final void synpred6_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:2490:5: ( ( () '#' '[' ) )
-        // InternalChartDSL.g:2490:6: ( () '#' '[' )
+        // InternalChartDSL.g:2794:5: ( ( () '#' '[' ) )
+        // InternalChartDSL.g:2794:6: ( () '#' '[' )
         {
-        // InternalChartDSL.g:2490:6: ( () '#' '[' )
-        // InternalChartDSL.g:2491:6: () '#' '['
+        // InternalChartDSL.g:2794:6: ( () '#' '[' )
+        // InternalChartDSL.g:2795:6: () '#' '['
         {
-        // InternalChartDSL.g:2491:6: ()
-        // InternalChartDSL.g:2492:6: 
+        // InternalChartDSL.g:2795:6: ()
+        // InternalChartDSL.g:2796:6: 
         {
         }
 
-        match(input,75,FOLLOW_51); if (state.failed) return ;
-        match(input,76,FOLLOW_2); if (state.failed) return ;
+        match(input,85,FOLLOW_64); if (state.failed) return ;
+        match(input,86,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25383,22 +26381,22 @@
 
     // $ANTLR start synpred7_InternalChartDSL
     public final void synpred7_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:2718:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )
-        // InternalChartDSL.g:2718:7: ( () ( ( ruleOpMultiAssign ) ) )
+        // InternalChartDSL.g:3022:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )
+        // InternalChartDSL.g:3022:7: ( () ( ( ruleOpMultiAssign ) ) )
         {
-        // InternalChartDSL.g:2718:7: ( () ( ( ruleOpMultiAssign ) ) )
-        // InternalChartDSL.g:2719:7: () ( ( ruleOpMultiAssign ) )
+        // InternalChartDSL.g:3022:7: ( () ( ( ruleOpMultiAssign ) ) )
+        // InternalChartDSL.g:3023:7: () ( ( ruleOpMultiAssign ) )
         {
-        // InternalChartDSL.g:2719:7: ()
-        // InternalChartDSL.g:2720:7: 
+        // InternalChartDSL.g:3023:7: ()
+        // InternalChartDSL.g:3024:7: 
         {
         }
 
-        // InternalChartDSL.g:2721:7: ( ( ruleOpMultiAssign ) )
-        // InternalChartDSL.g:2722:8: ( ruleOpMultiAssign )
+        // InternalChartDSL.g:3025:7: ( ( ruleOpMultiAssign ) )
+        // InternalChartDSL.g:3026:8: ( ruleOpMultiAssign )
         {
-        // InternalChartDSL.g:2722:8: ( ruleOpMultiAssign )
-        // InternalChartDSL.g:2723:9: ruleOpMultiAssign
+        // InternalChartDSL.g:3026:8: ( ruleOpMultiAssign )
+        // InternalChartDSL.g:3027:9: ruleOpMultiAssign
         {
         pushFollow(FOLLOW_2);
         ruleOpMultiAssign();
@@ -25421,22 +26419,22 @@
 
     // $ANTLR start synpred8_InternalChartDSL
     public final void synpred8_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:2912:5: ( ( () ( ( ruleOpOr ) ) ) )
-        // InternalChartDSL.g:2912:6: ( () ( ( ruleOpOr ) ) )
+        // InternalChartDSL.g:3216:5: ( ( () ( ( ruleOpOr ) ) ) )
+        // InternalChartDSL.g:3216:6: ( () ( ( ruleOpOr ) ) )
         {
-        // InternalChartDSL.g:2912:6: ( () ( ( ruleOpOr ) ) )
-        // InternalChartDSL.g:2913:6: () ( ( ruleOpOr ) )
+        // InternalChartDSL.g:3216:6: ( () ( ( ruleOpOr ) ) )
+        // InternalChartDSL.g:3217:6: () ( ( ruleOpOr ) )
         {
-        // InternalChartDSL.g:2913:6: ()
-        // InternalChartDSL.g:2914:6: 
+        // InternalChartDSL.g:3217:6: ()
+        // InternalChartDSL.g:3218:6: 
         {
         }
 
-        // InternalChartDSL.g:2915:6: ( ( ruleOpOr ) )
-        // InternalChartDSL.g:2916:7: ( ruleOpOr )
+        // InternalChartDSL.g:3219:6: ( ( ruleOpOr ) )
+        // InternalChartDSL.g:3220:7: ( ruleOpOr )
         {
-        // InternalChartDSL.g:2916:7: ( ruleOpOr )
-        // InternalChartDSL.g:2917:8: ruleOpOr
+        // InternalChartDSL.g:3220:7: ( ruleOpOr )
+        // InternalChartDSL.g:3221:8: ruleOpOr
         {
         pushFollow(FOLLOW_2);
         ruleOpOr();
@@ -25459,22 +26457,22 @@
 
     // $ANTLR start synpred9_InternalChartDSL
     public final void synpred9_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3019:5: ( ( () ( ( ruleOpAnd ) ) ) )
-        // InternalChartDSL.g:3019:6: ( () ( ( ruleOpAnd ) ) )
+        // InternalChartDSL.g:3323:5: ( ( () ( ( ruleOpAnd ) ) ) )
+        // InternalChartDSL.g:3323:6: ( () ( ( ruleOpAnd ) ) )
         {
-        // InternalChartDSL.g:3019:6: ( () ( ( ruleOpAnd ) ) )
-        // InternalChartDSL.g:3020:6: () ( ( ruleOpAnd ) )
+        // InternalChartDSL.g:3323:6: ( () ( ( ruleOpAnd ) ) )
+        // InternalChartDSL.g:3324:6: () ( ( ruleOpAnd ) )
         {
-        // InternalChartDSL.g:3020:6: ()
-        // InternalChartDSL.g:3021:6: 
+        // InternalChartDSL.g:3324:6: ()
+        // InternalChartDSL.g:3325:6: 
         {
         }
 
-        // InternalChartDSL.g:3022:6: ( ( ruleOpAnd ) )
-        // InternalChartDSL.g:3023:7: ( ruleOpAnd )
+        // InternalChartDSL.g:3326:6: ( ( ruleOpAnd ) )
+        // InternalChartDSL.g:3327:7: ( ruleOpAnd )
         {
-        // InternalChartDSL.g:3023:7: ( ruleOpAnd )
-        // InternalChartDSL.g:3024:8: ruleOpAnd
+        // InternalChartDSL.g:3327:7: ( ruleOpAnd )
+        // InternalChartDSL.g:3328:8: ruleOpAnd
         {
         pushFollow(FOLLOW_2);
         ruleOpAnd();
@@ -25497,22 +26495,22 @@
 
     // $ANTLR start synpred10_InternalChartDSL
     public final void synpred10_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3126:5: ( ( () ( ( ruleOpEquality ) ) ) )
-        // InternalChartDSL.g:3126:6: ( () ( ( ruleOpEquality ) ) )
+        // InternalChartDSL.g:3430:5: ( ( () ( ( ruleOpEquality ) ) ) )
+        // InternalChartDSL.g:3430:6: ( () ( ( ruleOpEquality ) ) )
         {
-        // InternalChartDSL.g:3126:6: ( () ( ( ruleOpEquality ) ) )
-        // InternalChartDSL.g:3127:6: () ( ( ruleOpEquality ) )
+        // InternalChartDSL.g:3430:6: ( () ( ( ruleOpEquality ) ) )
+        // InternalChartDSL.g:3431:6: () ( ( ruleOpEquality ) )
         {
-        // InternalChartDSL.g:3127:6: ()
-        // InternalChartDSL.g:3128:6: 
+        // InternalChartDSL.g:3431:6: ()
+        // InternalChartDSL.g:3432:6: 
         {
         }
 
-        // InternalChartDSL.g:3129:6: ( ( ruleOpEquality ) )
-        // InternalChartDSL.g:3130:7: ( ruleOpEquality )
+        // InternalChartDSL.g:3433:6: ( ( ruleOpEquality ) )
+        // InternalChartDSL.g:3434:7: ( ruleOpEquality )
         {
-        // InternalChartDSL.g:3130:7: ( ruleOpEquality )
-        // InternalChartDSL.g:3131:8: ruleOpEquality
+        // InternalChartDSL.g:3434:7: ( ruleOpEquality )
+        // InternalChartDSL.g:3435:8: ruleOpEquality
         {
         pushFollow(FOLLOW_2);
         ruleOpEquality();
@@ -25535,18 +26533,18 @@
 
     // $ANTLR start synpred11_InternalChartDSL
     public final void synpred11_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3254:6: ( ( () 'instanceof' ) )
-        // InternalChartDSL.g:3254:7: ( () 'instanceof' )
+        // InternalChartDSL.g:3558:6: ( ( () 'instanceof' ) )
+        // InternalChartDSL.g:3558:7: ( () 'instanceof' )
         {
-        // InternalChartDSL.g:3254:7: ( () 'instanceof' )
-        // InternalChartDSL.g:3255:7: () 'instanceof'
+        // InternalChartDSL.g:3558:7: ( () 'instanceof' )
+        // InternalChartDSL.g:3559:7: () 'instanceof'
         {
-        // InternalChartDSL.g:3255:7: ()
-        // InternalChartDSL.g:3256:7: 
+        // InternalChartDSL.g:3559:7: ()
+        // InternalChartDSL.g:3560:7: 
         {
         }
 
-        match(input,92,FOLLOW_2); if (state.failed) return ;
+        match(input,102,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25557,22 +26555,22 @@
 
     // $ANTLR start synpred12_InternalChartDSL
     public final void synpred12_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3297:6: ( ( () ( ( ruleOpCompare ) ) ) )
-        // InternalChartDSL.g:3297:7: ( () ( ( ruleOpCompare ) ) )
+        // InternalChartDSL.g:3601:6: ( ( () ( ( ruleOpCompare ) ) ) )
+        // InternalChartDSL.g:3601:7: ( () ( ( ruleOpCompare ) ) )
         {
-        // InternalChartDSL.g:3297:7: ( () ( ( ruleOpCompare ) ) )
-        // InternalChartDSL.g:3298:7: () ( ( ruleOpCompare ) )
+        // InternalChartDSL.g:3601:7: ( () ( ( ruleOpCompare ) ) )
+        // InternalChartDSL.g:3602:7: () ( ( ruleOpCompare ) )
         {
-        // InternalChartDSL.g:3298:7: ()
-        // InternalChartDSL.g:3299:7: 
+        // InternalChartDSL.g:3602:7: ()
+        // InternalChartDSL.g:3603:7: 
         {
         }
 
-        // InternalChartDSL.g:3300:7: ( ( ruleOpCompare ) )
-        // InternalChartDSL.g:3301:8: ( ruleOpCompare )
+        // InternalChartDSL.g:3604:7: ( ( ruleOpCompare ) )
+        // InternalChartDSL.g:3605:8: ( ruleOpCompare )
         {
-        // InternalChartDSL.g:3301:8: ( ruleOpCompare )
-        // InternalChartDSL.g:3302:9: ruleOpCompare
+        // InternalChartDSL.g:3605:8: ( ruleOpCompare )
+        // InternalChartDSL.g:3606:9: ruleOpCompare
         {
         pushFollow(FOLLOW_2);
         ruleOpCompare();
@@ -25595,22 +26593,22 @@
 
     // $ANTLR start synpred13_InternalChartDSL
     public final void synpred13_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3432:5: ( ( () ( ( ruleOpOther ) ) ) )
-        // InternalChartDSL.g:3432:6: ( () ( ( ruleOpOther ) ) )
+        // InternalChartDSL.g:3736:5: ( ( () ( ( ruleOpOther ) ) ) )
+        // InternalChartDSL.g:3736:6: ( () ( ( ruleOpOther ) ) )
         {
-        // InternalChartDSL.g:3432:6: ( () ( ( ruleOpOther ) ) )
-        // InternalChartDSL.g:3433:6: () ( ( ruleOpOther ) )
+        // InternalChartDSL.g:3736:6: ( () ( ( ruleOpOther ) ) )
+        // InternalChartDSL.g:3737:6: () ( ( ruleOpOther ) )
         {
-        // InternalChartDSL.g:3433:6: ()
-        // InternalChartDSL.g:3434:6: 
+        // InternalChartDSL.g:3737:6: ()
+        // InternalChartDSL.g:3738:6: 
         {
         }
 
-        // InternalChartDSL.g:3435:6: ( ( ruleOpOther ) )
-        // InternalChartDSL.g:3436:7: ( ruleOpOther )
+        // InternalChartDSL.g:3739:6: ( ( ruleOpOther ) )
+        // InternalChartDSL.g:3740:7: ( ruleOpOther )
         {
-        // InternalChartDSL.g:3436:7: ( ruleOpOther )
-        // InternalChartDSL.g:3437:8: ruleOpOther
+        // InternalChartDSL.g:3740:7: ( ruleOpOther )
+        // InternalChartDSL.g:3741:8: ruleOpOther
         {
         pushFollow(FOLLOW_2);
         ruleOpOther();
@@ -25633,14 +26631,14 @@
 
     // $ANTLR start synpred14_InternalChartDSL
     public final void synpred14_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3552:6: ( ( '>' '>' ) )
-        // InternalChartDSL.g:3552:7: ( '>' '>' )
+        // InternalChartDSL.g:3856:6: ( ( '>' '>' ) )
+        // InternalChartDSL.g:3856:7: ( '>' '>' )
         {
-        // InternalChartDSL.g:3552:7: ( '>' '>' )
-        // InternalChartDSL.g:3553:7: '>' '>'
+        // InternalChartDSL.g:3856:7: ( '>' '>' )
+        // InternalChartDSL.g:3857:7: '>' '>'
         {
-        match(input,84,FOLLOW_66); if (state.failed) return ;
-        match(input,84,FOLLOW_2); if (state.failed) return ;
+        match(input,94,FOLLOW_79); if (state.failed) return ;
+        match(input,94,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25651,14 +26649,14 @@
 
     // $ANTLR start synpred15_InternalChartDSL
     public final void synpred15_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3587:6: ( ( '<' '<' ) )
-        // InternalChartDSL.g:3587:7: ( '<' '<' )
+        // InternalChartDSL.g:3891:6: ( ( '<' '<' ) )
+        // InternalChartDSL.g:3891:7: ( '<' '<' )
         {
-        // InternalChartDSL.g:3587:7: ( '<' '<' )
-        // InternalChartDSL.g:3588:7: '<' '<'
+        // InternalChartDSL.g:3891:7: ( '<' '<' )
+        // InternalChartDSL.g:3892:7: '<' '<'
         {
-        match(input,83,FOLLOW_56); if (state.failed) return ;
-        match(input,83,FOLLOW_2); if (state.failed) return ;
+        match(input,93,FOLLOW_69); if (state.failed) return ;
+        match(input,93,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25669,22 +26667,22 @@
 
     // $ANTLR start synpred16_InternalChartDSL
     public final void synpred16_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3660:5: ( ( () ( ( ruleOpAdd ) ) ) )
-        // InternalChartDSL.g:3660:6: ( () ( ( ruleOpAdd ) ) )
+        // InternalChartDSL.g:3964:5: ( ( () ( ( ruleOpAdd ) ) ) )
+        // InternalChartDSL.g:3964:6: ( () ( ( ruleOpAdd ) ) )
         {
-        // InternalChartDSL.g:3660:6: ( () ( ( ruleOpAdd ) ) )
-        // InternalChartDSL.g:3661:6: () ( ( ruleOpAdd ) )
+        // InternalChartDSL.g:3964:6: ( () ( ( ruleOpAdd ) ) )
+        // InternalChartDSL.g:3965:6: () ( ( ruleOpAdd ) )
         {
-        // InternalChartDSL.g:3661:6: ()
-        // InternalChartDSL.g:3662:6: 
+        // InternalChartDSL.g:3965:6: ()
+        // InternalChartDSL.g:3966:6: 
         {
         }
 
-        // InternalChartDSL.g:3663:6: ( ( ruleOpAdd ) )
-        // InternalChartDSL.g:3664:7: ( ruleOpAdd )
+        // InternalChartDSL.g:3967:6: ( ( ruleOpAdd ) )
+        // InternalChartDSL.g:3968:7: ( ruleOpAdd )
         {
-        // InternalChartDSL.g:3664:7: ( ruleOpAdd )
-        // InternalChartDSL.g:3665:8: ruleOpAdd
+        // InternalChartDSL.g:3968:7: ( ruleOpAdd )
+        // InternalChartDSL.g:3969:8: ruleOpAdd
         {
         pushFollow(FOLLOW_2);
         ruleOpAdd();
@@ -25707,22 +26705,22 @@
 
     // $ANTLR start synpred17_InternalChartDSL
     public final void synpred17_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:3775:5: ( ( () ( ( ruleOpMulti ) ) ) )
-        // InternalChartDSL.g:3775:6: ( () ( ( ruleOpMulti ) ) )
+        // InternalChartDSL.g:4079:5: ( ( () ( ( ruleOpMulti ) ) ) )
+        // InternalChartDSL.g:4079:6: ( () ( ( ruleOpMulti ) ) )
         {
-        // InternalChartDSL.g:3775:6: ( () ( ( ruleOpMulti ) ) )
-        // InternalChartDSL.g:3776:6: () ( ( ruleOpMulti ) )
+        // InternalChartDSL.g:4079:6: ( () ( ( ruleOpMulti ) ) )
+        // InternalChartDSL.g:4080:6: () ( ( ruleOpMulti ) )
         {
-        // InternalChartDSL.g:3776:6: ()
-        // InternalChartDSL.g:3777:6: 
+        // InternalChartDSL.g:4080:6: ()
+        // InternalChartDSL.g:4081:6: 
         {
         }
 
-        // InternalChartDSL.g:3778:6: ( ( ruleOpMulti ) )
-        // InternalChartDSL.g:3779:7: ( ruleOpMulti )
+        // InternalChartDSL.g:4082:6: ( ( ruleOpMulti ) )
+        // InternalChartDSL.g:4083:7: ( ruleOpMulti )
         {
-        // InternalChartDSL.g:3779:7: ( ruleOpMulti )
-        // InternalChartDSL.g:3780:8: ruleOpMulti
+        // InternalChartDSL.g:4083:7: ( ruleOpMulti )
+        // InternalChartDSL.g:4084:8: ruleOpMulti
         {
         pushFollow(FOLLOW_2);
         ruleOpMulti();
@@ -25745,18 +26743,18 @@
 
     // $ANTLR start synpred18_InternalChartDSL
     public final void synpred18_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:4010:5: ( ( () 'as' ) )
-        // InternalChartDSL.g:4010:6: ( () 'as' )
+        // InternalChartDSL.g:4314:5: ( ( () 'as' ) )
+        // InternalChartDSL.g:4314:6: ( () 'as' )
         {
-        // InternalChartDSL.g:4010:6: ( () 'as' )
-        // InternalChartDSL.g:4011:6: () 'as'
+        // InternalChartDSL.g:4314:6: ( () 'as' )
+        // InternalChartDSL.g:4315:6: () 'as'
         {
-        // InternalChartDSL.g:4011:6: ()
-        // InternalChartDSL.g:4012:6: 
+        // InternalChartDSL.g:4315:6: ()
+        // InternalChartDSL.g:4316:6: 
         {
         }
 
-        match(input,18,FOLLOW_2); if (state.failed) return ;
+        match(input,20,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25767,22 +26765,22 @@
 
     // $ANTLR start synpred19_InternalChartDSL
     public final void synpred19_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:4078:4: ( ( () ( ( ruleOpPostfix ) ) ) )
-        // InternalChartDSL.g:4078:5: ( () ( ( ruleOpPostfix ) ) )
+        // InternalChartDSL.g:4382:4: ( ( () ( ( ruleOpPostfix ) ) ) )
+        // InternalChartDSL.g:4382:5: ( () ( ( ruleOpPostfix ) ) )
         {
-        // InternalChartDSL.g:4078:5: ( () ( ( ruleOpPostfix ) ) )
-        // InternalChartDSL.g:4079:5: () ( ( ruleOpPostfix ) )
+        // InternalChartDSL.g:4382:5: ( () ( ( ruleOpPostfix ) ) )
+        // InternalChartDSL.g:4383:5: () ( ( ruleOpPostfix ) )
         {
-        // InternalChartDSL.g:4079:5: ()
-        // InternalChartDSL.g:4080:5: 
+        // InternalChartDSL.g:4383:5: ()
+        // InternalChartDSL.g:4384:5: 
         {
         }
 
-        // InternalChartDSL.g:4081:5: ( ( ruleOpPostfix ) )
-        // InternalChartDSL.g:4082:6: ( ruleOpPostfix )
+        // InternalChartDSL.g:4385:5: ( ( ruleOpPostfix ) )
+        // InternalChartDSL.g:4386:6: ( ruleOpPostfix )
         {
-        // InternalChartDSL.g:4082:6: ( ruleOpPostfix )
-        // InternalChartDSL.g:4083:7: ruleOpPostfix
+        // InternalChartDSL.g:4386:6: ( ruleOpPostfix )
+        // InternalChartDSL.g:4387:7: ruleOpPostfix
         {
         pushFollow(FOLLOW_2);
         ruleOpPostfix();
@@ -25805,52 +26803,52 @@
 
     // $ANTLR start synpred20_InternalChartDSL
     public final void synpred20_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:4174:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
-        // InternalChartDSL.g:4174:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        // InternalChartDSL.g:4478:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+        // InternalChartDSL.g:4478:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
         {
-        // InternalChartDSL.g:4174:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
-        // InternalChartDSL.g:4175:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+        // InternalChartDSL.g:4478:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        // InternalChartDSL.g:4479:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
         {
-        // InternalChartDSL.g:4175:7: ()
-        // InternalChartDSL.g:4176:7: 
+        // InternalChartDSL.g:4479:7: ()
+        // InternalChartDSL.g:4480:7: 
         {
         }
 
-        // InternalChartDSL.g:4177:7: ( '.' | ( ( '::' ) ) )
-        int alt156=2;
-        int LA156_0 = input.LA(1);
+        // InternalChartDSL.g:4481:7: ( '.' | ( ( '::' ) ) )
+        int alt169=2;
+        int LA169_0 = input.LA(1);
 
-        if ( (LA156_0==106) ) {
-            alt156=1;
+        if ( (LA169_0==116) ) {
+            alt169=1;
         }
-        else if ( (LA156_0==107) ) {
-            alt156=2;
+        else if ( (LA169_0==117) ) {
+            alt169=2;
         }
         else {
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 156, 0, input);
+                new NoViableAltException("", 169, 0, input);
 
             throw nvae;
         }
-        switch (alt156) {
+        switch (alt169) {
             case 1 :
-                // InternalChartDSL.g:4178:8: '.'
+                // InternalChartDSL.g:4482:8: '.'
                 {
-                match(input,106,FOLLOW_73); if (state.failed) return ;
+                match(input,116,FOLLOW_86); if (state.failed) return ;
 
                 }
                 break;
             case 2 :
-                // InternalChartDSL.g:4180:8: ( ( '::' ) )
+                // InternalChartDSL.g:4484:8: ( ( '::' ) )
                 {
-                // InternalChartDSL.g:4180:8: ( ( '::' ) )
-                // InternalChartDSL.g:4181:9: ( '::' )
+                // InternalChartDSL.g:4484:8: ( ( '::' ) )
+                // InternalChartDSL.g:4485:9: ( '::' )
                 {
-                // InternalChartDSL.g:4181:9: ( '::' )
-                // InternalChartDSL.g:4182:10: '::'
+                // InternalChartDSL.g:4485:9: ( '::' )
+                // InternalChartDSL.g:4486:10: '::'
                 {
-                match(input,107,FOLLOW_73); if (state.failed) return ;
+                match(input,117,FOLLOW_86); if (state.failed) return ;
 
                 }
 
@@ -25863,13 +26861,13 @@
 
         }
 
-        // InternalChartDSL.g:4186:7: ( ( ruleFeatureCallID ) )
-        // InternalChartDSL.g:4187:8: ( ruleFeatureCallID )
+        // InternalChartDSL.g:4490:7: ( ( ruleFeatureCallID ) )
+        // InternalChartDSL.g:4491:8: ( ruleFeatureCallID )
         {
-        // InternalChartDSL.g:4187:8: ( ruleFeatureCallID )
-        // InternalChartDSL.g:4188:9: ruleFeatureCallID
+        // InternalChartDSL.g:4491:8: ( ruleFeatureCallID )
+        // InternalChartDSL.g:4492:9: ruleFeatureCallID
         {
-        pushFollow(FOLLOW_49);
+        pushFollow(FOLLOW_62);
         ruleFeatureCallID();
 
         state._fsp--;
@@ -25895,61 +26893,61 @@
 
     // $ANTLR start synpred21_InternalChartDSL
     public final void synpred21_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:4271:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
-        // InternalChartDSL.g:4271:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        // InternalChartDSL.g:4575:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
+        // InternalChartDSL.g:4575:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
         {
-        // InternalChartDSL.g:4271:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
-        // InternalChartDSL.g:4272:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        // InternalChartDSL.g:4575:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        // InternalChartDSL.g:4576:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
         {
-        // InternalChartDSL.g:4272:7: ()
-        // InternalChartDSL.g:4273:7: 
+        // InternalChartDSL.g:4576:7: ()
+        // InternalChartDSL.g:4577:7: 
         {
         }
 
-        // InternalChartDSL.g:4274:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
-        int alt157=3;
+        // InternalChartDSL.g:4578:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        int alt170=3;
         switch ( input.LA(1) ) {
-        case 106:
+        case 116:
             {
-            alt157=1;
+            alt170=1;
             }
             break;
-        case 108:
+        case 118:
             {
-            alt157=2;
+            alt170=2;
             }
             break;
-        case 107:
+        case 117:
             {
-            alt157=3;
+            alt170=3;
             }
             break;
         default:
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 157, 0, input);
+                new NoViableAltException("", 170, 0, input);
 
             throw nvae;
         }
 
-        switch (alt157) {
+        switch (alt170) {
             case 1 :
-                // InternalChartDSL.g:4275:8: '.'
+                // InternalChartDSL.g:4579:8: '.'
                 {
-                match(input,106,FOLLOW_2); if (state.failed) return ;
+                match(input,116,FOLLOW_2); if (state.failed) return ;
 
                 }
                 break;
             case 2 :
-                // InternalChartDSL.g:4277:8: ( ( '?.' ) )
+                // InternalChartDSL.g:4581:8: ( ( '?.' ) )
                 {
-                // InternalChartDSL.g:4277:8: ( ( '?.' ) )
-                // InternalChartDSL.g:4278:9: ( '?.' )
+                // InternalChartDSL.g:4581:8: ( ( '?.' ) )
+                // InternalChartDSL.g:4582:9: ( '?.' )
                 {
-                // InternalChartDSL.g:4278:9: ( '?.' )
-                // InternalChartDSL.g:4279:10: '?.'
+                // InternalChartDSL.g:4582:9: ( '?.' )
+                // InternalChartDSL.g:4583:10: '?.'
                 {
-                match(input,108,FOLLOW_2); if (state.failed) return ;
+                match(input,118,FOLLOW_2); if (state.failed) return ;
 
                 }
 
@@ -25960,15 +26958,15 @@
                 }
                 break;
             case 3 :
-                // InternalChartDSL.g:4283:8: ( ( '::' ) )
+                // InternalChartDSL.g:4587:8: ( ( '::' ) )
                 {
-                // InternalChartDSL.g:4283:8: ( ( '::' ) )
-                // InternalChartDSL.g:4284:9: ( '::' )
+                // InternalChartDSL.g:4587:8: ( ( '::' ) )
+                // InternalChartDSL.g:4588:9: ( '::' )
                 {
-                // InternalChartDSL.g:4284:9: ( '::' )
-                // InternalChartDSL.g:4285:10: '::'
+                // InternalChartDSL.g:4588:9: ( '::' )
+                // InternalChartDSL.g:4589:10: '::'
                 {
-                match(input,107,FOLLOW_2); if (state.failed) return ;
+                match(input,117,FOLLOW_2); if (state.failed) return ;
 
                 }
 
@@ -25991,13 +26989,13 @@
 
     // $ANTLR start synpred22_InternalChartDSL
     public final void synpred22_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:4409:7: ( ( '(' ) )
-        // InternalChartDSL.g:4409:8: ( '(' )
+        // InternalChartDSL.g:4713:7: ( ( '(' ) )
+        // InternalChartDSL.g:4713:8: ( '(' )
         {
-        // InternalChartDSL.g:4409:8: ( '(' )
-        // InternalChartDSL.g:4410:8: '('
+        // InternalChartDSL.g:4713:8: ( '(' )
+        // InternalChartDSL.g:4714:8: '('
         {
-        match(input,71,FOLLOW_2); if (state.failed) return ;
+        match(input,81,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26008,35 +27006,35 @@
 
     // $ANTLR start synpred23_InternalChartDSL
     public final void synpred23_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:4428:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalChartDSL.g:4428:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalChartDSL.g:4732:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalChartDSL.g:4732:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalChartDSL.g:4428:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalChartDSL.g:4429:9: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalChartDSL.g:4732:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalChartDSL.g:4733:9: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalChartDSL.g:4429:9: ()
-        // InternalChartDSL.g:4430:9: 
+        // InternalChartDSL.g:4733:9: ()
+        // InternalChartDSL.g:4734:9: 
         {
         }
 
-        // InternalChartDSL.g:4431:9: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt159=2;
-        int LA159_0 = input.LA(1);
+        // InternalChartDSL.g:4735:9: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt172=2;
+        int LA172_0 = input.LA(1);
 
-        if ( (LA159_0==RULE_ID||LA159_0==71||LA159_0==96) ) {
-            alt159=1;
+        if ( (LA172_0==RULE_ID||LA172_0==81||LA172_0==106) ) {
+            alt172=1;
         }
-        switch (alt159) {
+        switch (alt172) {
             case 1 :
-                // InternalChartDSL.g:4432:10: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalChartDSL.g:4736:10: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalChartDSL.g:4432:10: ( ( ruleJvmFormalParameter ) )
-                // InternalChartDSL.g:4433:11: ( ruleJvmFormalParameter )
+                // InternalChartDSL.g:4736:10: ( ( ruleJvmFormalParameter ) )
+                // InternalChartDSL.g:4737:11: ( ruleJvmFormalParameter )
                 {
-                // InternalChartDSL.g:4433:11: ( ruleJvmFormalParameter )
-                // InternalChartDSL.g:4434:12: ruleJvmFormalParameter
+                // InternalChartDSL.g:4737:11: ( ruleJvmFormalParameter )
+                // InternalChartDSL.g:4738:12: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_83);
+                pushFollow(FOLLOW_96);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -26047,29 +27045,29 @@
 
                 }
 
-                // InternalChartDSL.g:4437:10: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop158:
+                // InternalChartDSL.g:4741:10: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop171:
                 do {
-                    int alt158=2;
-                    int LA158_0 = input.LA(1);
+                    int alt171=2;
+                    int LA171_0 = input.LA(1);
 
-                    if ( (LA158_0==72) ) {
-                        alt158=1;
+                    if ( (LA171_0==82) ) {
+                        alt171=1;
                     }
 
 
-                    switch (alt158) {
+                    switch (alt171) {
                 	case 1 :
-                	    // InternalChartDSL.g:4438:11: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalChartDSL.g:4742:11: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,72,FOLLOW_63); if (state.failed) return ;
-                	    // InternalChartDSL.g:4439:11: ( ( ruleJvmFormalParameter ) )
-                	    // InternalChartDSL.g:4440:12: ( ruleJvmFormalParameter )
+                	    match(input,82,FOLLOW_76); if (state.failed) return ;
+                	    // InternalChartDSL.g:4743:11: ( ( ruleJvmFormalParameter ) )
+                	    // InternalChartDSL.g:4744:12: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalChartDSL.g:4440:12: ( ruleJvmFormalParameter )
-                	    // InternalChartDSL.g:4441:13: ruleJvmFormalParameter
+                	    // InternalChartDSL.g:4744:12: ( ruleJvmFormalParameter )
+                	    // InternalChartDSL.g:4745:13: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_83);
+                	    pushFollow(FOLLOW_96);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -26085,7 +27083,7 @@
                 	    break;
 
                 	default :
-                	    break loop158;
+                	    break loop171;
                     }
                 } while (true);
 
@@ -26095,13 +27093,13 @@
 
         }
 
-        // InternalChartDSL.g:4446:9: ( ( '|' ) )
-        // InternalChartDSL.g:4447:10: ( '|' )
+        // InternalChartDSL.g:4750:9: ( ( '|' ) )
+        // InternalChartDSL.g:4751:10: ( '|' )
         {
-        // InternalChartDSL.g:4447:10: ( '|' )
-        // InternalChartDSL.g:4448:11: '|'
+        // InternalChartDSL.g:4751:10: ( '|' )
+        // InternalChartDSL.g:4752:11: '|'
         {
-        match(input,109,FOLLOW_2); if (state.failed) return ;
+        match(input,119,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26118,18 +27116,18 @@
 
     // $ANTLR start synpred24_InternalChartDSL
     public final void synpred24_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:4525:6: ( ( () '[' ) )
-        // InternalChartDSL.g:4525:7: ( () '[' )
+        // InternalChartDSL.g:4829:6: ( ( () '[' ) )
+        // InternalChartDSL.g:4829:7: ( () '[' )
         {
-        // InternalChartDSL.g:4525:7: ( () '[' )
-        // InternalChartDSL.g:4526:7: () '['
+        // InternalChartDSL.g:4829:7: ( () '[' )
+        // InternalChartDSL.g:4830:7: () '['
         {
-        // InternalChartDSL.g:4526:7: ()
-        // InternalChartDSL.g:4527:7: 
+        // InternalChartDSL.g:4830:7: ()
+        // InternalChartDSL.g:4831:7: 
         {
         }
 
-        match(input,76,FOLLOW_2); if (state.failed) return ;
+        match(input,86,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26140,19 +27138,19 @@
 
     // $ANTLR start synpred25_InternalChartDSL
     public final void synpred25_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:4598:4: ( ( () 'synchronized' '(' ) )
-        // InternalChartDSL.g:4598:5: ( () 'synchronized' '(' )
+        // InternalChartDSL.g:4902:4: ( ( () 'synchronized' '(' ) )
+        // InternalChartDSL.g:4902:5: ( () 'synchronized' '(' )
         {
-        // InternalChartDSL.g:4598:5: ( () 'synchronized' '(' )
-        // InternalChartDSL.g:4599:5: () 'synchronized' '('
+        // InternalChartDSL.g:4902:5: ( () 'synchronized' '(' )
+        // InternalChartDSL.g:4903:5: () 'synchronized' '('
         {
-        // InternalChartDSL.g:4599:5: ()
-        // InternalChartDSL.g:4600:5: 
+        // InternalChartDSL.g:4903:5: ()
+        // InternalChartDSL.g:4904:5: 
         {
         }
 
-        match(input,132,FOLLOW_88); if (state.failed) return ;
-        match(input,71,FOLLOW_2); if (state.failed) return ;
+        match(input,142,FOLLOW_101); if (state.failed) return ;
+        match(input,81,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26163,26 +27161,26 @@
 
     // $ANTLR start synpred26_InternalChartDSL
     public final void synpred26_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:4643:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalChartDSL.g:4643:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalChartDSL.g:4947:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalChartDSL.g:4947:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalChartDSL.g:4643:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalChartDSL.g:4644:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalChartDSL.g:4947:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalChartDSL.g:4948:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
         {
-        // InternalChartDSL.g:4644:5: ()
-        // InternalChartDSL.g:4645:5: 
+        // InternalChartDSL.g:4948:5: ()
+        // InternalChartDSL.g:4949:5: 
         {
         }
 
-        match(input,116,FOLLOW_88); if (state.failed) return ;
-        match(input,71,FOLLOW_63); if (state.failed) return ;
-        // InternalChartDSL.g:4648:5: ( ( ruleJvmFormalParameter ) )
-        // InternalChartDSL.g:4649:6: ( ruleJvmFormalParameter )
+        match(input,126,FOLLOW_101); if (state.failed) return ;
+        match(input,81,FOLLOW_76); if (state.failed) return ;
+        // InternalChartDSL.g:4952:5: ( ( ruleJvmFormalParameter ) )
+        // InternalChartDSL.g:4953:6: ( ruleJvmFormalParameter )
         {
-        // InternalChartDSL.g:4649:6: ( ruleJvmFormalParameter )
-        // InternalChartDSL.g:4650:7: ruleJvmFormalParameter
+        // InternalChartDSL.g:4953:6: ( ruleJvmFormalParameter )
+        // InternalChartDSL.g:4954:7: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_91);
+        pushFollow(FOLLOW_104);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -26193,7 +27191,7 @@
 
         }
 
-        match(input,113,FOLLOW_2); if (state.failed) return ;
+        match(input,123,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26204,18 +27202,18 @@
 
     // $ANTLR start synpred27_InternalChartDSL
     public final void synpred27_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:4757:4: ( ( () '[' ) )
-        // InternalChartDSL.g:4757:5: ( () '[' )
+        // InternalChartDSL.g:5061:4: ( ( () '[' ) )
+        // InternalChartDSL.g:5061:5: ( () '[' )
         {
-        // InternalChartDSL.g:4757:5: ( () '[' )
-        // InternalChartDSL.g:4758:5: () '['
+        // InternalChartDSL.g:5061:5: ( () '[' )
+        // InternalChartDSL.g:5062:5: () '['
         {
-        // InternalChartDSL.g:4758:5: ()
-        // InternalChartDSL.g:4759:5: 
+        // InternalChartDSL.g:5062:5: ()
+        // InternalChartDSL.g:5063:5: 
         {
         }
 
-        match(input,76,FOLLOW_2); if (state.failed) return ;
+        match(input,86,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26226,30 +27224,30 @@
 
     // $ANTLR start synpred29_InternalChartDSL
     public final void synpred29_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:5062:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalChartDSL.g:5062:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalChartDSL.g:5366:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalChartDSL.g:5366:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalChartDSL.g:5062:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalChartDSL.g:5063:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalChartDSL.g:5366:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalChartDSL.g:5367:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalChartDSL.g:5063:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt161=2;
-        int LA161_0 = input.LA(1);
+        // InternalChartDSL.g:5367:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt174=2;
+        int LA174_0 = input.LA(1);
 
-        if ( (LA161_0==RULE_ID||LA161_0==71||LA161_0==96) ) {
-            alt161=1;
+        if ( (LA174_0==RULE_ID||LA174_0==81||LA174_0==106) ) {
+            alt174=1;
         }
-        switch (alt161) {
+        switch (alt174) {
             case 1 :
-                // InternalChartDSL.g:5064:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalChartDSL.g:5368:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalChartDSL.g:5064:6: ( ( ruleJvmFormalParameter ) )
-                // InternalChartDSL.g:5065:7: ( ruleJvmFormalParameter )
+                // InternalChartDSL.g:5368:6: ( ( ruleJvmFormalParameter ) )
+                // InternalChartDSL.g:5369:7: ( ruleJvmFormalParameter )
                 {
-                // InternalChartDSL.g:5065:7: ( ruleJvmFormalParameter )
-                // InternalChartDSL.g:5066:8: ruleJvmFormalParameter
+                // InternalChartDSL.g:5369:7: ( ruleJvmFormalParameter )
+                // InternalChartDSL.g:5370:8: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_83);
+                pushFollow(FOLLOW_96);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -26260,29 +27258,29 @@
 
                 }
 
-                // InternalChartDSL.g:5069:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop160:
+                // InternalChartDSL.g:5373:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop173:
                 do {
-                    int alt160=2;
-                    int LA160_0 = input.LA(1);
+                    int alt173=2;
+                    int LA173_0 = input.LA(1);
 
-                    if ( (LA160_0==72) ) {
-                        alt160=1;
+                    if ( (LA173_0==82) ) {
+                        alt173=1;
                     }
 
 
-                    switch (alt160) {
+                    switch (alt173) {
                 	case 1 :
-                	    // InternalChartDSL.g:5070:7: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalChartDSL.g:5374:7: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,72,FOLLOW_63); if (state.failed) return ;
-                	    // InternalChartDSL.g:5071:7: ( ( ruleJvmFormalParameter ) )
-                	    // InternalChartDSL.g:5072:8: ( ruleJvmFormalParameter )
+                	    match(input,82,FOLLOW_76); if (state.failed) return ;
+                	    // InternalChartDSL.g:5375:7: ( ( ruleJvmFormalParameter ) )
+                	    // InternalChartDSL.g:5376:8: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalChartDSL.g:5072:8: ( ruleJvmFormalParameter )
-                	    // InternalChartDSL.g:5073:9: ruleJvmFormalParameter
+                	    // InternalChartDSL.g:5376:8: ( ruleJvmFormalParameter )
+                	    // InternalChartDSL.g:5377:9: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_83);
+                	    pushFollow(FOLLOW_96);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -26298,7 +27296,7 @@
                 	    break;
 
                 	default :
-                	    break loop160;
+                	    break loop173;
                     }
                 } while (true);
 
@@ -26308,13 +27306,13 @@
 
         }
 
-        // InternalChartDSL.g:5078:5: ( ( '|' ) )
-        // InternalChartDSL.g:5079:6: ( '|' )
+        // InternalChartDSL.g:5382:5: ( ( '|' ) )
+        // InternalChartDSL.g:5383:6: ( '|' )
         {
-        // InternalChartDSL.g:5079:6: ( '|' )
-        // InternalChartDSL.g:5080:7: '|'
+        // InternalChartDSL.g:5383:6: ( '|' )
+        // InternalChartDSL.g:5384:7: '|'
         {
-        match(input,109,FOLLOW_2); if (state.failed) return ;
+        match(input,119,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26331,10 +27329,10 @@
 
     // $ANTLR start synpred31_InternalChartDSL
     public final void synpred31_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:5471:5: ( 'else' )
-        // InternalChartDSL.g:5471:6: 'else'
+        // InternalChartDSL.g:5775:5: ( 'else' )
+        // InternalChartDSL.g:5775:6: 'else'
         {
-        match(input,111,FOLLOW_2); if (state.failed) return ;
+        match(input,121,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -26342,20 +27340,20 @@
 
     // $ANTLR start synpred32_InternalChartDSL
     public final void synpred32_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:5530:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalChartDSL.g:5530:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalChartDSL.g:5834:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalChartDSL.g:5834:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalChartDSL.g:5530:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalChartDSL.g:5531:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalChartDSL.g:5834:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalChartDSL.g:5835:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
         {
-        match(input,71,FOLLOW_63); if (state.failed) return ;
-        // InternalChartDSL.g:5532:7: ( ( ruleJvmFormalParameter ) )
-        // InternalChartDSL.g:5533:8: ( ruleJvmFormalParameter )
+        match(input,81,FOLLOW_76); if (state.failed) return ;
+        // InternalChartDSL.g:5836:7: ( ( ruleJvmFormalParameter ) )
+        // InternalChartDSL.g:5837:8: ( ruleJvmFormalParameter )
         {
-        // InternalChartDSL.g:5533:8: ( ruleJvmFormalParameter )
-        // InternalChartDSL.g:5534:9: ruleJvmFormalParameter
+        // InternalChartDSL.g:5837:8: ( ruleJvmFormalParameter )
+        // InternalChartDSL.g:5838:9: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_91);
+        pushFollow(FOLLOW_104);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -26366,7 +27364,7 @@
 
         }
 
-        match(input,113,FOLLOW_2); if (state.failed) return ;
+        match(input,123,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26377,19 +27375,19 @@
 
     // $ANTLR start synpred33_InternalChartDSL
     public final void synpred33_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:5597:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalChartDSL.g:5597:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalChartDSL.g:5901:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalChartDSL.g:5901:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalChartDSL.g:5597:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalChartDSL.g:5598:7: ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalChartDSL.g:5901:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalChartDSL.g:5902:7: ( ( ruleJvmFormalParameter ) ) ':'
         {
-        // InternalChartDSL.g:5598:7: ( ( ruleJvmFormalParameter ) )
-        // InternalChartDSL.g:5599:8: ( ruleJvmFormalParameter )
+        // InternalChartDSL.g:5902:7: ( ( ruleJvmFormalParameter ) )
+        // InternalChartDSL.g:5903:8: ( ruleJvmFormalParameter )
         {
-        // InternalChartDSL.g:5599:8: ( ruleJvmFormalParameter )
-        // InternalChartDSL.g:5600:9: ruleJvmFormalParameter
+        // InternalChartDSL.g:5903:8: ( ruleJvmFormalParameter )
+        // InternalChartDSL.g:5904:9: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_91);
+        pushFollow(FOLLOW_104);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -26400,7 +27398,7 @@
 
         }
 
-        match(input,113,FOLLOW_2); if (state.failed) return ;
+        match(input,123,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26411,17 +27409,17 @@
 
     // $ANTLR start synpred35_InternalChartDSL
     public final void synpred35_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:6415:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
-        // InternalChartDSL.g:6415:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        // InternalChartDSL.g:6719:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
+        // InternalChartDSL.g:6719:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
         {
-        // InternalChartDSL.g:6415:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
-        // InternalChartDSL.g:6416:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
+        // InternalChartDSL.g:6719:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        // InternalChartDSL.g:6720:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
         {
-        // InternalChartDSL.g:6416:6: ( ( ruleJvmTypeReference ) )
-        // InternalChartDSL.g:6417:7: ( ruleJvmTypeReference )
+        // InternalChartDSL.g:6720:6: ( ( ruleJvmTypeReference ) )
+        // InternalChartDSL.g:6721:7: ( ruleJvmTypeReference )
         {
-        // InternalChartDSL.g:6417:7: ( ruleJvmTypeReference )
-        // InternalChartDSL.g:6418:8: ruleJvmTypeReference
+        // InternalChartDSL.g:6721:7: ( ruleJvmTypeReference )
+        // InternalChartDSL.g:6722:8: ruleJvmTypeReference
         {
         pushFollow(FOLLOW_4);
         ruleJvmTypeReference();
@@ -26434,11 +27432,11 @@
 
         }
 
-        // InternalChartDSL.g:6421:6: ( ( ruleValidID ) )
-        // InternalChartDSL.g:6422:7: ( ruleValidID )
+        // InternalChartDSL.g:6725:6: ( ( ruleValidID ) )
+        // InternalChartDSL.g:6726:7: ( ruleValidID )
         {
-        // InternalChartDSL.g:6422:7: ( ruleValidID )
-        // InternalChartDSL.g:6423:8: ruleValidID
+        // InternalChartDSL.g:6726:7: ( ruleValidID )
+        // InternalChartDSL.g:6727:8: ruleValidID
         {
         pushFollow(FOLLOW_2);
         ruleValidID();
@@ -26461,13 +27459,13 @@
 
     // $ANTLR start synpred36_InternalChartDSL
     public final void synpred36_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:6727:5: ( ( '(' ) )
-        // InternalChartDSL.g:6727:6: ( '(' )
+        // InternalChartDSL.g:7031:5: ( ( '(' ) )
+        // InternalChartDSL.g:7031:6: ( '(' )
         {
-        // InternalChartDSL.g:6727:6: ( '(' )
-        // InternalChartDSL.g:6728:6: '('
+        // InternalChartDSL.g:7031:6: ( '(' )
+        // InternalChartDSL.g:7032:6: '('
         {
-        match(input,71,FOLLOW_2); if (state.failed) return ;
+        match(input,81,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26478,35 +27476,35 @@
 
     // $ANTLR start synpred37_InternalChartDSL
     public final void synpred37_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:6746:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalChartDSL.g:6746:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalChartDSL.g:7050:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalChartDSL.g:7050:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalChartDSL.g:6746:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalChartDSL.g:6747:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalChartDSL.g:7050:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalChartDSL.g:7051:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalChartDSL.g:6747:7: ()
-        // InternalChartDSL.g:6748:7: 
+        // InternalChartDSL.g:7051:7: ()
+        // InternalChartDSL.g:7052:7: 
         {
         }
 
-        // InternalChartDSL.g:6749:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt165=2;
-        int LA165_0 = input.LA(1);
+        // InternalChartDSL.g:7053:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt178=2;
+        int LA178_0 = input.LA(1);
 
-        if ( (LA165_0==RULE_ID||LA165_0==71||LA165_0==96) ) {
-            alt165=1;
+        if ( (LA178_0==RULE_ID||LA178_0==81||LA178_0==106) ) {
+            alt178=1;
         }
-        switch (alt165) {
+        switch (alt178) {
             case 1 :
-                // InternalChartDSL.g:6750:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalChartDSL.g:7054:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalChartDSL.g:6750:8: ( ( ruleJvmFormalParameter ) )
-                // InternalChartDSL.g:6751:9: ( ruleJvmFormalParameter )
+                // InternalChartDSL.g:7054:8: ( ( ruleJvmFormalParameter ) )
+                // InternalChartDSL.g:7055:9: ( ruleJvmFormalParameter )
                 {
-                // InternalChartDSL.g:6751:9: ( ruleJvmFormalParameter )
-                // InternalChartDSL.g:6752:10: ruleJvmFormalParameter
+                // InternalChartDSL.g:7055:9: ( ruleJvmFormalParameter )
+                // InternalChartDSL.g:7056:10: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_83);
+                pushFollow(FOLLOW_96);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -26517,29 +27515,29 @@
 
                 }
 
-                // InternalChartDSL.g:6755:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop164:
+                // InternalChartDSL.g:7059:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop177:
                 do {
-                    int alt164=2;
-                    int LA164_0 = input.LA(1);
+                    int alt177=2;
+                    int LA177_0 = input.LA(1);
 
-                    if ( (LA164_0==72) ) {
-                        alt164=1;
+                    if ( (LA177_0==82) ) {
+                        alt177=1;
                     }
 
 
-                    switch (alt164) {
+                    switch (alt177) {
                 	case 1 :
-                	    // InternalChartDSL.g:6756:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalChartDSL.g:7060:9: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,72,FOLLOW_63); if (state.failed) return ;
-                	    // InternalChartDSL.g:6757:9: ( ( ruleJvmFormalParameter ) )
-                	    // InternalChartDSL.g:6758:10: ( ruleJvmFormalParameter )
+                	    match(input,82,FOLLOW_76); if (state.failed) return ;
+                	    // InternalChartDSL.g:7061:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalChartDSL.g:7062:10: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalChartDSL.g:6758:10: ( ruleJvmFormalParameter )
-                	    // InternalChartDSL.g:6759:11: ruleJvmFormalParameter
+                	    // InternalChartDSL.g:7062:10: ( ruleJvmFormalParameter )
+                	    // InternalChartDSL.g:7063:11: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_83);
+                	    pushFollow(FOLLOW_96);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -26555,7 +27553,7 @@
                 	    break;
 
                 	default :
-                	    break loop164;
+                	    break loop177;
                     }
                 } while (true);
 
@@ -26565,13 +27563,13 @@
 
         }
 
-        // InternalChartDSL.g:6764:7: ( ( '|' ) )
-        // InternalChartDSL.g:6765:8: ( '|' )
+        // InternalChartDSL.g:7068:7: ( ( '|' ) )
+        // InternalChartDSL.g:7069:8: ( '|' )
         {
-        // InternalChartDSL.g:6765:8: ( '|' )
-        // InternalChartDSL.g:6766:9: '|'
+        // InternalChartDSL.g:7069:8: ( '|' )
+        // InternalChartDSL.g:7070:9: '|'
         {
-        match(input,109,FOLLOW_2); if (state.failed) return ;
+        match(input,119,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26588,18 +27586,18 @@
 
     // $ANTLR start synpred38_InternalChartDSL
     public final void synpred38_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:6843:4: ( ( () '[' ) )
-        // InternalChartDSL.g:6843:5: ( () '[' )
+        // InternalChartDSL.g:7147:4: ( ( () '[' ) )
+        // InternalChartDSL.g:7147:5: ( () '[' )
         {
-        // InternalChartDSL.g:6843:5: ( () '[' )
-        // InternalChartDSL.g:6844:5: () '['
+        // InternalChartDSL.g:7147:5: ( () '[' )
+        // InternalChartDSL.g:7148:5: () '['
         {
-        // InternalChartDSL.g:6844:5: ()
-        // InternalChartDSL.g:6845:5: 
+        // InternalChartDSL.g:7148:5: ()
+        // InternalChartDSL.g:7149:5: 
         {
         }
 
-        match(input,76,FOLLOW_2); if (state.failed) return ;
+        match(input,86,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26610,10 +27608,10 @@
 
     // $ANTLR start synpred39_InternalChartDSL
     public final void synpred39_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:7003:5: ( '<' )
-        // InternalChartDSL.g:7003:6: '<'
+        // InternalChartDSL.g:7307:5: ( '<' )
+        // InternalChartDSL.g:7307:6: '<'
         {
-        match(input,83,FOLLOW_2); if (state.failed) return ;
+        match(input,93,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -26621,13 +27619,13 @@
 
     // $ANTLR start synpred40_InternalChartDSL
     public final void synpred40_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:7060:5: ( ( '(' ) )
-        // InternalChartDSL.g:7060:6: ( '(' )
+        // InternalChartDSL.g:7364:5: ( ( '(' ) )
+        // InternalChartDSL.g:7364:6: ( '(' )
         {
-        // InternalChartDSL.g:7060:6: ( '(' )
-        // InternalChartDSL.g:7061:6: '('
+        // InternalChartDSL.g:7364:6: ( '(' )
+        // InternalChartDSL.g:7365:6: '('
         {
-        match(input,71,FOLLOW_2); if (state.failed) return ;
+        match(input,81,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26638,35 +27636,35 @@
 
     // $ANTLR start synpred41_InternalChartDSL
     public final void synpred41_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:7079:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalChartDSL.g:7079:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalChartDSL.g:7383:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalChartDSL.g:7383:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalChartDSL.g:7079:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalChartDSL.g:7080:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalChartDSL.g:7383:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalChartDSL.g:7384:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalChartDSL.g:7080:7: ()
-        // InternalChartDSL.g:7081:7: 
+        // InternalChartDSL.g:7384:7: ()
+        // InternalChartDSL.g:7385:7: 
         {
         }
 
-        // InternalChartDSL.g:7082:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt167=2;
-        int LA167_0 = input.LA(1);
+        // InternalChartDSL.g:7386:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt180=2;
+        int LA180_0 = input.LA(1);
 
-        if ( (LA167_0==RULE_ID||LA167_0==71||LA167_0==96) ) {
-            alt167=1;
+        if ( (LA180_0==RULE_ID||LA180_0==81||LA180_0==106) ) {
+            alt180=1;
         }
-        switch (alt167) {
+        switch (alt180) {
             case 1 :
-                // InternalChartDSL.g:7083:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalChartDSL.g:7387:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalChartDSL.g:7083:8: ( ( ruleJvmFormalParameter ) )
-                // InternalChartDSL.g:7084:9: ( ruleJvmFormalParameter )
+                // InternalChartDSL.g:7387:8: ( ( ruleJvmFormalParameter ) )
+                // InternalChartDSL.g:7388:9: ( ruleJvmFormalParameter )
                 {
-                // InternalChartDSL.g:7084:9: ( ruleJvmFormalParameter )
-                // InternalChartDSL.g:7085:10: ruleJvmFormalParameter
+                // InternalChartDSL.g:7388:9: ( ruleJvmFormalParameter )
+                // InternalChartDSL.g:7389:10: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_83);
+                pushFollow(FOLLOW_96);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -26677,29 +27675,29 @@
 
                 }
 
-                // InternalChartDSL.g:7088:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop166:
+                // InternalChartDSL.g:7392:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop179:
                 do {
-                    int alt166=2;
-                    int LA166_0 = input.LA(1);
+                    int alt179=2;
+                    int LA179_0 = input.LA(1);
 
-                    if ( (LA166_0==72) ) {
-                        alt166=1;
+                    if ( (LA179_0==82) ) {
+                        alt179=1;
                     }
 
 
-                    switch (alt166) {
+                    switch (alt179) {
                 	case 1 :
-                	    // InternalChartDSL.g:7089:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalChartDSL.g:7393:9: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,72,FOLLOW_63); if (state.failed) return ;
-                	    // InternalChartDSL.g:7090:9: ( ( ruleJvmFormalParameter ) )
-                	    // InternalChartDSL.g:7091:10: ( ruleJvmFormalParameter )
+                	    match(input,82,FOLLOW_76); if (state.failed) return ;
+                	    // InternalChartDSL.g:7394:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalChartDSL.g:7395:10: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalChartDSL.g:7091:10: ( ruleJvmFormalParameter )
-                	    // InternalChartDSL.g:7092:11: ruleJvmFormalParameter
+                	    // InternalChartDSL.g:7395:10: ( ruleJvmFormalParameter )
+                	    // InternalChartDSL.g:7396:11: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_83);
+                	    pushFollow(FOLLOW_96);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -26715,7 +27713,7 @@
                 	    break;
 
                 	default :
-                	    break loop166;
+                	    break loop179;
                     }
                 } while (true);
 
@@ -26725,13 +27723,13 @@
 
         }
 
-        // InternalChartDSL.g:7097:7: ( ( '|' ) )
-        // InternalChartDSL.g:7098:8: ( '|' )
+        // InternalChartDSL.g:7401:7: ( ( '|' ) )
+        // InternalChartDSL.g:7402:8: ( '|' )
         {
-        // InternalChartDSL.g:7098:8: ( '|' )
-        // InternalChartDSL.g:7099:9: '|'
+        // InternalChartDSL.g:7402:8: ( '|' )
+        // InternalChartDSL.g:7403:9: '|'
         {
-        match(input,109,FOLLOW_2); if (state.failed) return ;
+        match(input,119,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26748,18 +27746,18 @@
 
     // $ANTLR start synpred42_InternalChartDSL
     public final void synpred42_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:7176:4: ( ( () '[' ) )
-        // InternalChartDSL.g:7176:5: ( () '[' )
+        // InternalChartDSL.g:7480:4: ( ( () '[' ) )
+        // InternalChartDSL.g:7480:5: ( () '[' )
         {
-        // InternalChartDSL.g:7176:5: ( () '[' )
-        // InternalChartDSL.g:7177:5: () '['
+        // InternalChartDSL.g:7480:5: ( () '[' )
+        // InternalChartDSL.g:7481:5: () '['
         {
-        // InternalChartDSL.g:7177:5: ()
-        // InternalChartDSL.g:7178:5: 
+        // InternalChartDSL.g:7481:5: ()
+        // InternalChartDSL.g:7482:5: 
         {
         }
 
-        match(input,76,FOLLOW_2); if (state.failed) return ;
+        match(input,86,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26770,10 +27768,10 @@
 
     // $ANTLR start synpred43_InternalChartDSL
     public final void synpred43_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:7519:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )
+        // InternalChartDSL.g:7823:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )
         // InternalChartDSL.g:
         {
-        if ( (input.LA(1)>=RULE_ID && input.LA(1)<=RULE_DECIMAL)||input.LA(1)==14||(input.LA(1)>=63 && input.LA(1)<=66)||input.LA(1)==71||(input.LA(1)>=75 && input.LA(1)<=76)||input.LA(1)==83||input.LA(1)==99||input.LA(1)==103||input.LA(1)==110||input.LA(1)==112||(input.LA(1)>=116 && input.LA(1)<=118)||(input.LA(1)>=121 && input.LA(1)<=130)||input.LA(1)==132 ) {
+        if ( (input.LA(1)>=RULE_STRING && input.LA(1)<=RULE_DECIMAL)||input.LA(1)==15||(input.LA(1)>=73 && input.LA(1)<=76)||input.LA(1)==81||(input.LA(1)>=85 && input.LA(1)<=86)||input.LA(1)==93||input.LA(1)==109||input.LA(1)==113||input.LA(1)==120||input.LA(1)==122||(input.LA(1)>=126 && input.LA(1)<=128)||(input.LA(1)>=131 && input.LA(1)<=140)||input.LA(1)==142 ) {
             input.consume();
             state.errorRecovery=false;state.failed=false;
         }
@@ -26790,10 +27788,10 @@
 
     // $ANTLR start synpred44_InternalChartDSL
     public final void synpred44_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:7590:6: ( 'catch' )
-        // InternalChartDSL.g:7590:7: 'catch'
+        // InternalChartDSL.g:7894:6: ( 'catch' )
+        // InternalChartDSL.g:7894:7: 'catch'
         {
-        match(input,133,FOLLOW_2); if (state.failed) return ;
+        match(input,143,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -26801,10 +27799,10 @@
 
     // $ANTLR start synpred45_InternalChartDSL
     public final void synpred45_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:7611:7: ( 'finally' )
-        // InternalChartDSL.g:7611:8: 'finally'
+        // InternalChartDSL.g:7915:7: ( 'finally' )
+        // InternalChartDSL.g:7915:8: 'finally'
         {
-        match(input,131,FOLLOW_2); if (state.failed) return ;
+        match(input,141,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -26812,10 +27810,10 @@
 
     // $ANTLR start synpred48_InternalChartDSL
     public final void synpred48_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:7855:5: ( '.' )
-        // InternalChartDSL.g:7855:6: '.'
+        // InternalChartDSL.g:8159:5: ( '.' )
+        // InternalChartDSL.g:8159:6: '.'
         {
-        match(input,106,FOLLOW_2); if (state.failed) return ;
+        match(input,116,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -26823,14 +27821,14 @@
 
     // $ANTLR start synpred49_InternalChartDSL
     public final void synpred49_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:7981:5: ( ( () ruleArrayBrackets ) )
-        // InternalChartDSL.g:7981:6: ( () ruleArrayBrackets )
+        // InternalChartDSL.g:8285:5: ( ( () ruleArrayBrackets ) )
+        // InternalChartDSL.g:8285:6: ( () ruleArrayBrackets )
         {
-        // InternalChartDSL.g:7981:6: ( () ruleArrayBrackets )
-        // InternalChartDSL.g:7982:6: () ruleArrayBrackets
+        // InternalChartDSL.g:8285:6: ( () ruleArrayBrackets )
+        // InternalChartDSL.g:8286:6: () ruleArrayBrackets
         {
-        // InternalChartDSL.g:7982:6: ()
-        // InternalChartDSL.g:7983:6: 
+        // InternalChartDSL.g:8286:6: ()
+        // InternalChartDSL.g:8287:6: 
         {
         }
 
@@ -26849,10 +27847,10 @@
 
     // $ANTLR start synpred50_InternalChartDSL
     public final void synpred50_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:8178:5: ( '<' )
-        // InternalChartDSL.g:8178:6: '<'
+        // InternalChartDSL.g:8482:5: ( '<' )
+        // InternalChartDSL.g:8482:6: '<'
         {
-        match(input,83,FOLLOW_2); if (state.failed) return ;
+        match(input,93,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -26860,18 +27858,18 @@
 
     // $ANTLR start synpred51_InternalChartDSL
     public final void synpred51_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:8234:6: ( ( () '.' ) )
-        // InternalChartDSL.g:8234:7: ( () '.' )
+        // InternalChartDSL.g:8538:6: ( ( () '.' ) )
+        // InternalChartDSL.g:8538:7: ( () '.' )
         {
-        // InternalChartDSL.g:8234:7: ( () '.' )
-        // InternalChartDSL.g:8235:7: () '.'
+        // InternalChartDSL.g:8538:7: ( () '.' )
+        // InternalChartDSL.g:8539:7: () '.'
         {
-        // InternalChartDSL.g:8235:7: ()
-        // InternalChartDSL.g:8236:7: 
+        // InternalChartDSL.g:8539:7: ()
+        // InternalChartDSL.g:8540:7: 
         {
         }
 
-        match(input,106,FOLLOW_2); if (state.failed) return ;
+        match(input,116,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -26882,10 +27880,10 @@
 
     // $ANTLR start synpred52_InternalChartDSL
     public final void synpred52_InternalChartDSL_fragment() throws RecognitionException {   
-        // InternalChartDSL.g:8272:7: ( '<' )
-        // InternalChartDSL.g:8272:8: '<'
+        // InternalChartDSL.g:8576:7: ( '<' )
+        // InternalChartDSL.g:8576:8: '<'
         {
-        match(input,83,FOLLOW_2); if (state.failed) return ;
+        match(input,93,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -27525,45 +28523,45 @@
     }
 
 
-    protected DFA31 dfa31 = new DFA31(this);
-    protected DFA34 dfa34 = new DFA34(this);
-    protected DFA40 dfa40 = new DFA40(this);
     protected DFA43 dfa43 = new DFA43(this);
-    protected DFA45 dfa45 = new DFA45(this);
+    protected DFA46 dfa46 = new DFA46(this);
+    protected DFA52 dfa52 = new DFA52(this);
     protected DFA55 dfa55 = new DFA55(this);
-    protected DFA58 dfa58 = new DFA58(this);
-    protected DFA74 dfa74 = new DFA74(this);
-    protected DFA73 dfa73 = new DFA73(this);
-    protected DFA75 dfa75 = new DFA75(this);
-    protected DFA77 dfa77 = new DFA77(this);
+    protected DFA57 dfa57 = new DFA57(this);
+    protected DFA67 dfa67 = new DFA67(this);
+    protected DFA70 dfa70 = new DFA70(this);
     protected DFA86 dfa86 = new DFA86(this);
-    protected DFA93 dfa93 = new DFA93(this);
-    protected DFA92 dfa92 = new DFA92(this);
-    protected DFA115 dfa115 = new DFA115(this);
-    protected DFA114 dfa114 = new DFA114(this);
-    protected DFA116 dfa116 = new DFA116(this);
-    protected DFA120 dfa120 = new DFA120(this);
-    protected DFA123 dfa123 = new DFA123(this);
-    protected DFA122 dfa122 = new DFA122(this);
-    protected DFA124 dfa124 = new DFA124(this);
+    protected DFA85 dfa85 = new DFA85(this);
+    protected DFA87 dfa87 = new DFA87(this);
+    protected DFA89 dfa89 = new DFA89(this);
+    protected DFA98 dfa98 = new DFA98(this);
+    protected DFA105 dfa105 = new DFA105(this);
+    protected DFA104 dfa104 = new DFA104(this);
     protected DFA127 dfa127 = new DFA127(this);
-    protected DFA145 dfa145 = new DFA145(this);
-    protected DFA143 dfa143 = new DFA143(this);
+    protected DFA126 dfa126 = new DFA126(this);
+    protected DFA128 dfa128 = new DFA128(this);
+    protected DFA132 dfa132 = new DFA132(this);
+    protected DFA135 dfa135 = new DFA135(this);
+    protected DFA134 dfa134 = new DFA134(this);
+    protected DFA136 dfa136 = new DFA136(this);
+    protected DFA139 dfa139 = new DFA139(this);
+    protected DFA157 dfa157 = new DFA157(this);
+    protected DFA155 dfa155 = new DFA155(this);
     static final String dfa_1s = "\10\uffff";
-    static final String dfa_2s = "\2\uffff\1\5\3\uffff\1\5\1\uffff";
-    static final String dfa_3s = "\1\4\1\uffff\1\15\1\uffff\1\4\1\uffff\1\15\1\uffff";
-    static final String dfa_4s = "\1\104\1\uffff\1\152\1\uffff\1\103\1\uffff\1\152\1\uffff";
-    static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\uffff\1\3";
+    static final String dfa_2s = "\2\uffff\1\5\4\uffff\1\5";
+    static final String dfa_3s = "\1\5\1\uffff\1\15\1\uffff\1\5\2\uffff\1\15";
+    static final String dfa_4s = "\1\116\1\uffff\1\164\1\uffff\1\115\2\uffff\1\164";
+    static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\3\1\uffff";
     static final String dfa_6s = "\10\uffff}>";
     static final String[] dfa_7s = {
-            "\1\2\74\uffff\1\1\2\uffff\1\3",
+            "\1\2\105\uffff\1\1\2\uffff\1\3",
             "",
-            "\1\5\62\uffff\1\5\4\uffff\1\5\44\uffff\1\4",
+            "\1\5\74\uffff\1\5\4\uffff\1\5\44\uffff\1\4",
             "",
-            "\1\6\76\uffff\1\7",
+            "\1\7\107\uffff\1\6",
             "",
-            "\1\5\62\uffff\1\5\4\uffff\1\5\44\uffff\1\4",
-            ""
+            "",
+            "\1\5\74\uffff\1\5\4\uffff\1\5\44\uffff\1\4"
     };
 
     static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -27574,11 +28572,11 @@
     static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
     static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
 
-    class DFA31 extends DFA {
+    class DFA43 extends DFA {
 
-        public DFA31(BaseRecognizer recognizer) {
+        public DFA43(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 31;
+            this.decisionNumber = 43;
             this.eot = dfa_1;
             this.eof = dfa_2;
             this.min = dfa_3;
@@ -27588,16 +28586,16 @@
             this.transition = dfa_7;
         }
         public String getDescription() {
-            return "1948:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )";
+            return "2252:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )";
         }
     }
     static final String dfa_8s = "\44\uffff";
     static final String dfa_9s = "\1\4\1\0\42\uffff";
-    static final String dfa_10s = "\1\u0084\1\0\42\uffff";
+    static final String dfa_10s = "\1\u008e\1\0\42\uffff";
     static final String dfa_11s = "\2\uffff\1\2\37\uffff\1\3\1\1";
     static final String dfa_12s = "\1\uffff\1\0\42\uffff}>";
     static final String[] dfa_13s = {
-            "\1\1\4\2\5\uffff\1\2\60\uffff\4\2\3\uffff\2\2\1\uffff\1\42\1\uffff\2\2\6\uffff\1\2\17\uffff\1\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\1\2\1\1\3\2\6\uffff\1\2\71\uffff\4\2\3\uffff\2\2\1\uffff\1\42\1\uffff\2\2\6\uffff\1\2\17\uffff\1\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -27642,11 +28640,11 @@
     static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s);
     static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);
 
-    class DFA34 extends DFA {
+    class DFA46 extends DFA {
 
-        public DFA34(BaseRecognizer recognizer) {
+        public DFA46(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 34;
+            this.decisionNumber = 46;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -27656,17 +28654,17 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "2165:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?";
+            return "2469:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA34_1 = input.LA(1);
+                        int LA46_1 = input.LA(1);
 
                          
-                        int index34_1 = input.index();
+                        int index46_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred2_InternalChartDSL()) ) {s = 35;}
@@ -27674,24 +28672,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index34_1);
+                        input.seek(index46_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 34, _s, input);
+                new NoViableAltException(getDescription(), 46, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_14s = "\43\uffff";
     static final String dfa_15s = "\1\4\1\0\41\uffff";
-    static final String dfa_16s = "\1\u0084\1\0\41\uffff";
+    static final String dfa_16s = "\1\u008e\1\0\41\uffff";
     static final String dfa_17s = "\2\uffff\1\2\37\uffff\1\1";
     static final String dfa_18s = "\1\uffff\1\0\41\uffff}>";
     static final String[] dfa_19s = {
-            "\5\2\5\uffff\1\2\60\uffff\4\2\3\uffff\2\2\3\uffff\1\1\1\2\6\uffff\1\2\17\uffff\1\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\5\2\6\uffff\1\2\71\uffff\4\2\3\uffff\2\2\3\uffff\1\1\1\2\6\uffff\1\2\17\uffff\1\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -27735,11 +28733,11 @@
     static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s);
     static final short[][] dfa_19 = unpackEncodedStringArray(dfa_19s);
 
-    class DFA40 extends DFA {
+    class DFA52 extends DFA {
 
-        public DFA40(BaseRecognizer recognizer) {
+        public DFA52(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 40;
+            this.decisionNumber = 52;
             this.eot = dfa_14;
             this.eof = dfa_14;
             this.min = dfa_15;
@@ -27749,17 +28747,17 @@
             this.transition = dfa_19;
         }
         public String getDescription() {
-            return "2345:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )";
+            return "2649:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA40_1 = input.LA(1);
+                        int LA52_1 = input.LA(1);
 
                          
-                        int index40_1 = input.index();
+                        int index52_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred5_InternalChartDSL()) ) {s = 34;}
@@ -27767,23 +28765,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index40_1);
+                        input.seek(index52_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 40, _s, input);
+                new NoViableAltException(getDescription(), 52, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA43 extends DFA {
+    class DFA55 extends DFA {
 
-        public DFA43(BaseRecognizer recognizer) {
+        public DFA55(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 43;
+            this.decisionNumber = 55;
             this.eot = dfa_14;
             this.eof = dfa_14;
             this.min = dfa_15;
@@ -27793,17 +28791,17 @@
             this.transition = dfa_19;
         }
         public String getDescription() {
-            return "2487:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )";
+            return "2791:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA43_1 = input.LA(1);
+                        int LA55_1 = input.LA(1);
 
                          
-                        int index43_1 = input.index();
+                        int index55_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred6_InternalChartDSL()) ) {s = 34;}
@@ -27811,13 +28809,13 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index43_1);
+                        input.seek(index55_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 43, _s, input);
+                new NoViableAltException(getDescription(), 55, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -27825,11 +28823,11 @@
     static final String dfa_20s = "\12\uffff";
     static final String dfa_21s = "\1\10\11\uffff";
     static final String dfa_22s = "\1\4\7\0\2\uffff";
-    static final String dfa_23s = "\1\u0085\7\0\2\uffff";
+    static final String dfa_23s = "\1\u008f\7\0\2\uffff";
     static final String dfa_24s = "\10\uffff\1\2\1\1";
-    static final String dfa_25s = "\1\uffff\1\2\1\3\1\4\1\5\1\6\1\0\1\1\2\uffff}>";
+    static final String dfa_25s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\2\uffff}>";
     static final String[] dfa_26s = {
-            "\5\10\5\uffff\2\10\2\uffff\1\10\54\uffff\5\10\1\uffff\1\10\1\uffff\3\10\1\uffff\3\10\1\1\1\2\1\3\1\4\1\5\1\6\1\7\30\10\1\uffff\30\10",
+            "\5\10\6\uffff\2\10\3\uffff\1\10\64\uffff\5\10\1\uffff\1\10\1\uffff\3\10\1\uffff\3\10\1\1\1\2\1\3\1\4\1\5\1\6\1\7\30\10\1\uffff\30\10",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -27849,11 +28847,11 @@
     static final short[] dfa_25 = DFA.unpackEncodedString(dfa_25s);
     static final short[][] dfa_26 = unpackEncodedStringArray(dfa_26s);
 
-    class DFA45 extends DFA {
+    class DFA57 extends DFA {
 
-        public DFA45(BaseRecognizer recognizer) {
+        public DFA57(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 45;
+            this.decisionNumber = 57;
             this.eot = dfa_20;
             this.eof = dfa_21;
             this.min = dfa_22;
@@ -27863,17 +28861,17 @@
             this.transition = dfa_26;
         }
         public String getDescription() {
-            return "2716:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?";
+            return "3020:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA45_6 = input.LA(1);
+                        int LA57_1 = input.LA(1);
 
                          
-                        int index45_6 = input.index();
+                        int index57_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalChartDSL()) ) {s = 9;}
@@ -27881,14 +28879,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index45_6);
+                        input.seek(index57_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA45_7 = input.LA(1);
+                        int LA57_2 = input.LA(1);
 
                          
-                        int index45_7 = input.index();
+                        int index57_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalChartDSL()) ) {s = 9;}
@@ -27896,14 +28894,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index45_7);
+                        input.seek(index57_2);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA45_1 = input.LA(1);
+                        int LA57_3 = input.LA(1);
 
                          
-                        int index45_1 = input.index();
+                        int index57_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalChartDSL()) ) {s = 9;}
@@ -27911,14 +28909,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index45_1);
+                        input.seek(index57_3);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA45_2 = input.LA(1);
+                        int LA57_4 = input.LA(1);
 
                          
-                        int index45_2 = input.index();
+                        int index57_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalChartDSL()) ) {s = 9;}
@@ -27926,14 +28924,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index45_2);
+                        input.seek(index57_4);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA45_3 = input.LA(1);
+                        int LA57_5 = input.LA(1);
 
                          
-                        int index45_3 = input.index();
+                        int index57_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalChartDSL()) ) {s = 9;}
@@ -27941,14 +28939,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index45_3);
+                        input.seek(index57_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA45_4 = input.LA(1);
+                        int LA57_6 = input.LA(1);
 
                          
-                        int index45_4 = input.index();
+                        int index57_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalChartDSL()) ) {s = 9;}
@@ -27956,14 +28954,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index45_4);
+                        input.seek(index57_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA45_5 = input.LA(1);
+                        int LA57_7 = input.LA(1);
 
                          
-                        int index45_5 = input.index();
+                        int index57_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalChartDSL()) ) {s = 9;}
@@ -27971,13 +28969,13 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index45_5);
+                        input.seek(index57_7);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 45, _s, input);
+                new NoViableAltException(getDescription(), 57, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -27985,11 +28983,11 @@
     static final String dfa_27s = "\13\uffff";
     static final String dfa_28s = "\1\1\12\uffff";
     static final String dfa_29s = "\1\4\1\uffff\10\0\1\uffff";
-    static final String dfa_30s = "\1\u0085\1\uffff\10\0\1\uffff";
+    static final String dfa_30s = "\1\u008f\1\uffff\10\0\1\uffff";
     static final String dfa_31s = "\1\uffff\1\2\10\uffff\1\1";
-    static final String dfa_32s = "\2\uffff\1\4\1\7\1\0\1\1\1\2\1\3\1\5\1\6\1\uffff}>";
+    static final String dfa_32s = "\2\uffff\1\5\1\3\1\6\1\7\1\4\1\0\1\1\1\2\1\uffff}>";
     static final String[] dfa_33s = {
-            "\5\1\5\uffff\2\1\2\uffff\1\1\54\uffff\5\1\1\uffff\1\1\1\uffff\3\1\1\uffff\10\1\1\2\1\3\10\1\1\4\1\5\1\6\1\7\1\10\1\11\12\1\1\uffff\30\1",
+            "\5\1\6\uffff\2\1\3\uffff\1\1\64\uffff\5\1\1\uffff\1\1\1\uffff\3\1\1\uffff\10\1\1\2\1\3\10\1\1\4\1\5\1\6\1\7\1\10\1\11\12\1\1\uffff\30\1",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -28010,11 +29008,11 @@
     static final short[] dfa_32 = DFA.unpackEncodedString(dfa_32s);
     static final short[][] dfa_33 = unpackEncodedStringArray(dfa_33s);
 
-    class DFA55 extends DFA {
+    class DFA67 extends DFA {
 
-        public DFA55(BaseRecognizer recognizer) {
+        public DFA67(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 55;
+            this.decisionNumber = 67;
             this.eot = dfa_27;
             this.eof = dfa_28;
             this.min = dfa_29;
@@ -28024,17 +29022,17 @@
             this.transition = dfa_33;
         }
         public String getDescription() {
-            return "()* loopback of 3430:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*";
+            return "()* loopback of 3734:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA55_4 = input.LA(1);
+                        int LA67_7 = input.LA(1);
 
                          
-                        int index55_4 = input.index();
+                        int index67_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalChartDSL()) ) {s = 10;}
@@ -28042,14 +29040,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index55_4);
+                        input.seek(index67_7);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA55_5 = input.LA(1);
+                        int LA67_8 = input.LA(1);
 
                          
-                        int index55_5 = input.index();
+                        int index67_8 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalChartDSL()) ) {s = 10;}
@@ -28057,14 +29055,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index55_5);
+                        input.seek(index67_8);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA55_6 = input.LA(1);
+                        int LA67_9 = input.LA(1);
 
                          
-                        int index55_6 = input.index();
+                        int index67_9 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalChartDSL()) ) {s = 10;}
@@ -28072,14 +29070,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index55_6);
+                        input.seek(index67_9);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA55_7 = input.LA(1);
+                        int LA67_3 = input.LA(1);
 
                          
-                        int index55_7 = input.index();
+                        int index67_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalChartDSL()) ) {s = 10;}
@@ -28087,14 +29085,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index55_7);
+                        input.seek(index67_3);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA55_2 = input.LA(1);
+                        int LA67_6 = input.LA(1);
 
                          
-                        int index55_2 = input.index();
+                        int index67_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalChartDSL()) ) {s = 10;}
@@ -28102,14 +29100,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index55_2);
+                        input.seek(index67_6);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA55_8 = input.LA(1);
+                        int LA67_2 = input.LA(1);
 
                          
-                        int index55_8 = input.index();
+                        int index67_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalChartDSL()) ) {s = 10;}
@@ -28117,14 +29115,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index55_8);
+                        input.seek(index67_2);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA55_9 = input.LA(1);
+                        int LA67_4 = input.LA(1);
 
                          
-                        int index55_9 = input.index();
+                        int index67_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalChartDSL()) ) {s = 10;}
@@ -28132,14 +29130,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index55_9);
+                        input.seek(index67_4);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA55_3 = input.LA(1);
+                        int LA67_5 = input.LA(1);
 
                          
-                        int index55_3 = input.index();
+                        int index67_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalChartDSL()) ) {s = 10;}
@@ -28147,26 +29145,26 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index55_3);
+                        input.seek(index67_5);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 55, _s, input);
+                new NoViableAltException(getDescription(), 67, _s, input);
             error(nvae);
             throw nvae;
         }
     }
-    static final String dfa_34s = "\1\123\2\uffff\1\124\7\uffff";
-    static final String dfa_35s = "\1\142\2\uffff\1\137\7\uffff";
-    static final String dfa_36s = "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\6\1\3";
+    static final String dfa_34s = "\1\135\2\uffff\1\136\7\uffff";
+    static final String dfa_35s = "\1\154\2\uffff\1\151\7\uffff";
+    static final String dfa_36s = "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\3\1\6";
     static final String dfa_37s = "\13\uffff}>";
     static final String[] dfa_38s = {
             "\1\6\1\3\10\uffff\1\1\1\2\1\4\1\5\1\7\1\10",
             "",
             "",
-            "\1\11\12\uffff\1\12",
+            "\1\12\12\uffff\1\11",
             "",
             "",
             "",
@@ -28181,11 +29179,11 @@
     static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s);
     static final short[][] dfa_38 = unpackEncodedStringArray(dfa_38s);
 
-    class DFA58 extends DFA {
+    class DFA70 extends DFA {
 
-        public DFA58(BaseRecognizer recognizer) {
+        public DFA70(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 58;
+            this.decisionNumber = 70;
             this.eot = dfa_27;
             this.eof = dfa_27;
             this.min = dfa_34;
@@ -28195,17 +29193,17 @@
             this.transition = dfa_38;
         }
         public String getDescription() {
-            return "3506:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )";
+            return "3810:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )";
         }
     }
     static final String dfa_39s = "\116\uffff";
     static final String dfa_40s = "\1\2\115\uffff";
     static final String dfa_41s = "\1\4\1\0\114\uffff";
-    static final String dfa_42s = "\1\u0085\1\0\114\uffff";
+    static final String dfa_42s = "\1\u008f\1\0\114\uffff";
     static final String dfa_43s = "\2\uffff\1\2\112\uffff\1\1";
     static final String dfa_44s = "\1\uffff\1\0\114\uffff}>";
     static final String[] dfa_45s = {
-            "\5\2\5\uffff\2\2\2\uffff\1\2\54\uffff\5\2\1\uffff\1\2\1\uffff\1\1\2\2\1\uffff\42\2\1\uffff\30\2",
+            "\5\2\6\uffff\2\2\3\uffff\1\2\64\uffff\5\2\1\uffff\1\2\1\uffff\1\1\2\2\1\uffff\42\2\1\uffff\30\2",
             "\1\uffff",
             "",
             "",
@@ -28293,11 +29291,11 @@
     static final short[] dfa_44 = DFA.unpackEncodedString(dfa_44s);
     static final short[][] dfa_45 = unpackEncodedStringArray(dfa_45s);
 
-    class DFA74 extends DFA {
+    class DFA86 extends DFA {
 
-        public DFA74(BaseRecognizer recognizer) {
+        public DFA86(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 74;
+            this.decisionNumber = 86;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -28307,17 +29305,17 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "4407:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?";
+            return "4711:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA74_1 = input.LA(1);
+                        int LA86_1 = input.LA(1);
 
                          
-                        int index74_1 = input.index();
+                        int index86_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred22_InternalChartDSL()) ) {s = 77;}
@@ -28325,23 +29323,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index74_1);
+                        input.seek(index86_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 74, _s, input);
+                new NoViableAltException(getDescription(), 86, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_46s = "\1\4\2\0\41\uffff";
-    static final String dfa_47s = "\1\u0084\2\0\41\uffff";
+    static final String dfa_47s = "\1\u008e\2\0\41\uffff";
     static final String dfa_48s = "\3\uffff\2\1\1\2\35\uffff\1\3";
     static final String dfa_49s = "\1\0\1\1\1\2\41\uffff}>";
     static final String[] dfa_50s = {
-            "\1\1\4\5\5\uffff\1\5\60\uffff\4\5\4\uffff\1\2\1\uffff\1\43\1\uffff\2\5\6\uffff\1\5\14\uffff\1\3\2\uffff\1\5\3\uffff\1\5\5\uffff\1\4\1\5\1\uffff\1\5\3\uffff\3\5\2\uffff\12\5\1\uffff\1\5",
+            "\1\5\1\1\3\5\6\uffff\1\5\71\uffff\4\5\4\uffff\1\2\1\uffff\1\43\1\uffff\2\5\6\uffff\1\5\14\uffff\1\3\2\uffff\1\5\3\uffff\1\5\5\uffff\1\4\1\5\1\uffff\1\5\3\uffff\3\5\2\uffff\12\5\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -28384,11 +29382,11 @@
     static final short[] dfa_49 = DFA.unpackEncodedString(dfa_49s);
     static final short[][] dfa_50 = unpackEncodedStringArray(dfa_50s);
 
-    class DFA73 extends DFA {
+    class DFA85 extends DFA {
 
-        public DFA73(BaseRecognizer recognizer) {
+        public DFA85(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 73;
+            this.decisionNumber = 85;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_46;
@@ -28398,40 +29396,40 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "4426:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?";
+            return "4730:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA73_0 = input.LA(1);
+                        int LA85_0 = input.LA(1);
 
                          
-                        int index73_0 = input.index();
+                        int index85_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA73_0==RULE_ID) ) {s = 1;}
+                        if ( (LA85_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA73_0==71) ) {s = 2;}
+                        else if ( (LA85_0==81) ) {s = 2;}
 
-                        else if ( (LA73_0==96) && (synpred23_InternalChartDSL())) {s = 3;}
+                        else if ( (LA85_0==106) && (synpred23_InternalChartDSL())) {s = 3;}
 
-                        else if ( (LA73_0==109) && (synpred23_InternalChartDSL())) {s = 4;}
+                        else if ( (LA85_0==119) && (synpred23_InternalChartDSL())) {s = 4;}
 
-                        else if ( ((LA73_0>=RULE_STRING && LA73_0<=RULE_DECIMAL)||LA73_0==14||(LA73_0>=63 && LA73_0<=66)||(LA73_0>=75 && LA73_0<=76)||LA73_0==83||LA73_0==99||LA73_0==103||LA73_0==110||LA73_0==112||(LA73_0>=116 && LA73_0<=118)||(LA73_0>=121 && LA73_0<=130)||LA73_0==132) ) {s = 5;}
+                        else if ( (LA85_0==RULE_STRING||(LA85_0>=RULE_INT && LA85_0<=RULE_DECIMAL)||LA85_0==15||(LA85_0>=73 && LA85_0<=76)||(LA85_0>=85 && LA85_0<=86)||LA85_0==93||LA85_0==109||LA85_0==113||LA85_0==120||LA85_0==122||(LA85_0>=126 && LA85_0<=128)||(LA85_0>=131 && LA85_0<=140)||LA85_0==142) ) {s = 5;}
 
-                        else if ( (LA73_0==73) ) {s = 35;}
+                        else if ( (LA85_0==83) ) {s = 35;}
 
                          
-                        input.seek(index73_0);
+                        input.seek(index85_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA73_1 = input.LA(1);
+                        int LA85_1 = input.LA(1);
 
                          
-                        int index73_1 = input.index();
+                        int index85_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred23_InternalChartDSL()) ) {s = 4;}
@@ -28439,14 +29437,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index73_1);
+                        input.seek(index85_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA73_2 = input.LA(1);
+                        int LA85_2 = input.LA(1);
 
                          
-                        int index73_2 = input.index();
+                        int index85_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred23_InternalChartDSL()) ) {s = 4;}
@@ -28454,19 +29452,19 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index73_2);
+                        input.seek(index85_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 73, _s, input);
+                new NoViableAltException(getDescription(), 85, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_51s = {
-            "\5\2\5\uffff\2\2\2\uffff\1\2\54\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\1\2\1\1\40\2\1\uffff\30\2",
+            "\5\2\6\uffff\2\2\3\uffff\1\2\64\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\1\2\1\1\40\2\1\uffff\30\2",
             "\1\uffff",
             "",
             "",
@@ -28547,11 +29545,11 @@
     };
     static final short[][] dfa_51 = unpackEncodedStringArray(dfa_51s);
 
-    class DFA75 extends DFA {
+    class DFA87 extends DFA {
 
-        public DFA75(BaseRecognizer recognizer) {
+        public DFA87(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 75;
+            this.decisionNumber = 87;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -28561,17 +29559,17 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "4524:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?";
+            return "4828:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA75_1 = input.LA(1);
+                        int LA87_1 = input.LA(1);
 
                          
-                        int index75_1 = input.index();
+                        int index87_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred24_InternalChartDSL()) ) {s = 77;}
@@ -28579,24 +29577,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index75_1);
+                        input.seek(index87_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 75, _s, input);
+                new NoViableAltException(getDescription(), 87, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_52s = "\40\uffff";
     static final String dfa_53s = "\1\4\26\uffff\1\0\10\uffff";
-    static final String dfa_54s = "\1\u0084\26\uffff\1\0\10\uffff";
+    static final String dfa_54s = "\1\u008e\26\uffff\1\0\10\uffff";
     static final String dfa_55s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\6\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
     static final String dfa_56s = "\1\0\26\uffff\1\1\10\uffff}>";
     static final String[] dfa_57s = {
-            "\1\5\4\14\5\uffff\1\2\61\uffff\3\5\4\uffff\1\35\3\uffff\2\14\6\uffff\1\5\32\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\2\uffff\2\5\1\1\4\14\1\32\1\33\1\34\1\uffff\1\4",
+            "\1\14\1\5\3\14\6\uffff\1\2\72\uffff\3\5\4\uffff\1\35\3\uffff\2\14\6\uffff\1\5\32\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\2\uffff\2\5\1\1\4\14\1\32\1\33\1\34\1\uffff\1\4",
             "",
             "",
             "",
@@ -28637,11 +29635,11 @@
     static final short[] dfa_56 = DFA.unpackEncodedString(dfa_56s);
     static final short[][] dfa_57 = unpackEncodedStringArray(dfa_57s);
 
-    class DFA77 extends DFA {
+    class DFA89 extends DFA {
 
-        public DFA77(BaseRecognizer recognizer) {
+        public DFA89(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 77;
+            this.decisionNumber = 89;
             this.eot = dfa_52;
             this.eof = dfa_52;
             this.min = dfa_53;
@@ -28651,56 +29649,56 @@
             this.transition = dfa_57;
         }
         public String getDescription() {
-            return "4569:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )";
+            return "4873:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA77_0 = input.LA(1);
+                        int LA89_0 = input.LA(1);
 
                          
-                        int index77_0 = input.index();
+                        int index89_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA77_0==123) ) {s = 1;}
+                        if ( (LA89_0==133) ) {s = 1;}
 
-                        else if ( (LA77_0==14) ) {s = 2;}
+                        else if ( (LA89_0==15) ) {s = 2;}
 
-                        else if ( (LA77_0==112) ) {s = 3;}
+                        else if ( (LA89_0==122) ) {s = 3;}
 
-                        else if ( (LA77_0==132) && (synpred25_InternalChartDSL())) {s = 4;}
+                        else if ( (LA89_0==142) && (synpred25_InternalChartDSL())) {s = 4;}
 
-                        else if ( (LA77_0==RULE_ID||(LA77_0>=64 && LA77_0<=66)||LA77_0==83||(LA77_0>=121 && LA77_0<=122)) ) {s = 5;}
+                        else if ( (LA89_0==RULE_ID||(LA89_0>=74 && LA89_0<=76)||LA89_0==93||(LA89_0>=131 && LA89_0<=132)) ) {s = 5;}
 
-                        else if ( ((LA77_0>=RULE_STRING && LA77_0<=RULE_DECIMAL)||(LA77_0>=75 && LA77_0<=76)||(LA77_0>=124 && LA77_0<=127)) ) {s = 12;}
+                        else if ( (LA89_0==RULE_STRING||(LA89_0>=RULE_INT && LA89_0<=RULE_DECIMAL)||(LA89_0>=85 && LA89_0<=86)||(LA89_0>=134 && LA89_0<=137)) ) {s = 12;}
 
-                        else if ( (LA77_0==110) ) {s = 22;}
+                        else if ( (LA89_0==120) ) {s = 22;}
 
-                        else if ( (LA77_0==116) ) {s = 23;}
+                        else if ( (LA89_0==126) ) {s = 23;}
 
-                        else if ( (LA77_0==117) ) {s = 24;}
+                        else if ( (LA89_0==127) ) {s = 24;}
 
-                        else if ( (LA77_0==118) ) {s = 25;}
+                        else if ( (LA89_0==128) ) {s = 25;}
 
-                        else if ( (LA77_0==128) ) {s = 26;}
+                        else if ( (LA89_0==138) ) {s = 26;}
 
-                        else if ( (LA77_0==129) ) {s = 27;}
+                        else if ( (LA89_0==139) ) {s = 27;}
 
-                        else if ( (LA77_0==130) ) {s = 28;}
+                        else if ( (LA89_0==140) ) {s = 28;}
 
-                        else if ( (LA77_0==71) ) {s = 29;}
+                        else if ( (LA89_0==81) ) {s = 29;}
 
                          
-                        input.seek(index77_0);
+                        input.seek(index89_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA77_23 = input.LA(1);
+                        int LA89_23 = input.LA(1);
 
                          
-                        int index77_23 = input.index();
+                        int index89_23 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred26_InternalChartDSL()) ) {s = 30;}
@@ -28708,24 +29706,24 @@
                         else if ( (true) ) {s = 31;}
 
                          
-                        input.seek(index77_23);
+                        input.seek(index89_23);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 77, _s, input);
+                new NoViableAltException(getDescription(), 89, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_58s = "\46\uffff";
     static final String dfa_59s = "\1\4\2\0\43\uffff";
-    static final String dfa_60s = "\1\u0084\2\0\43\uffff";
+    static final String dfa_60s = "\1\u008e\2\0\43\uffff";
     static final String dfa_61s = "\3\uffff\2\1\1\2\40\uffff";
     static final String dfa_62s = "\1\0\1\1\1\2\43\uffff}>";
     static final String[] dfa_63s = {
-            "\1\1\4\5\5\uffff\1\5\60\uffff\4\5\4\uffff\1\2\3\uffff\3\5\5\uffff\1\5\14\uffff\1\3\2\uffff\1\5\3\uffff\1\5\5\uffff\1\4\1\5\1\uffff\1\5\3\uffff\17\5\1\uffff\1\5",
+            "\1\5\1\1\3\5\6\uffff\1\5\71\uffff\4\5\4\uffff\1\2\3\uffff\3\5\5\uffff\1\5\14\uffff\1\3\2\uffff\1\5\3\uffff\1\5\5\uffff\1\4\1\5\1\uffff\1\5\3\uffff\17\5\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -28772,11 +29770,11 @@
     static final short[] dfa_62 = DFA.unpackEncodedString(dfa_62s);
     static final short[][] dfa_63 = unpackEncodedStringArray(dfa_63s);
 
-    class DFA86 extends DFA {
+    class DFA98 extends DFA {
 
-        public DFA86(BaseRecognizer recognizer) {
+        public DFA98(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 86;
+            this.decisionNumber = 98;
             this.eot = dfa_58;
             this.eof = dfa_58;
             this.min = dfa_59;
@@ -28786,38 +29784,38 @@
             this.transition = dfa_63;
         }
         public String getDescription() {
-            return "5061:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?";
+            return "5365:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA86_0 = input.LA(1);
+                        int LA98_0 = input.LA(1);
 
                          
-                        int index86_0 = input.index();
+                        int index98_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA86_0==RULE_ID) ) {s = 1;}
+                        if ( (LA98_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA86_0==71) ) {s = 2;}
+                        else if ( (LA98_0==81) ) {s = 2;}
 
-                        else if ( (LA86_0==96) && (synpred29_InternalChartDSL())) {s = 3;}
+                        else if ( (LA98_0==106) && (synpred29_InternalChartDSL())) {s = 3;}
 
-                        else if ( (LA86_0==109) && (synpred29_InternalChartDSL())) {s = 4;}
+                        else if ( (LA98_0==119) && (synpred29_InternalChartDSL())) {s = 4;}
 
-                        else if ( ((LA86_0>=RULE_STRING && LA86_0<=RULE_DECIMAL)||LA86_0==14||(LA86_0>=63 && LA86_0<=66)||(LA86_0>=75 && LA86_0<=77)||LA86_0==83||LA86_0==99||LA86_0==103||LA86_0==110||LA86_0==112||(LA86_0>=116 && LA86_0<=130)||LA86_0==132) ) {s = 5;}
+                        else if ( (LA98_0==RULE_STRING||(LA98_0>=RULE_INT && LA98_0<=RULE_DECIMAL)||LA98_0==15||(LA98_0>=73 && LA98_0<=76)||(LA98_0>=85 && LA98_0<=87)||LA98_0==93||LA98_0==109||LA98_0==113||LA98_0==120||LA98_0==122||(LA98_0>=126 && LA98_0<=140)||LA98_0==142) ) {s = 5;}
 
                          
-                        input.seek(index86_0);
+                        input.seek(index98_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA86_1 = input.LA(1);
+                        int LA98_1 = input.LA(1);
 
                          
-                        int index86_1 = input.index();
+                        int index98_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred29_InternalChartDSL()) ) {s = 4;}
@@ -28825,14 +29823,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index86_1);
+                        input.seek(index98_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA86_2 = input.LA(1);
+                        int LA98_2 = input.LA(1);
 
                          
-                        int index86_2 = input.index();
+                        int index98_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred29_InternalChartDSL()) ) {s = 4;}
@@ -28840,19 +29838,19 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index86_2);
+                        input.seek(index98_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 86, _s, input);
+                new NoViableAltException(getDescription(), 98, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_64s = {
-            "\5\2\5\uffff\1\2\60\uffff\4\2\4\uffff\1\1\3\uffff\2\2\6\uffff\1\2\14\uffff\1\2\2\uffff\1\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\5\2\6\uffff\1\2\71\uffff\4\2\4\uffff\1\1\3\uffff\2\2\6\uffff\1\2\14\uffff\1\2\2\uffff\1\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -28890,11 +29888,11 @@
     };
     static final short[][] dfa_64 = unpackEncodedStringArray(dfa_64s);
 
-    class DFA93 extends DFA {
+    class DFA105 extends DFA {
 
-        public DFA93(BaseRecognizer recognizer) {
+        public DFA105(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 93;
+            this.decisionNumber = 105;
             this.eot = dfa_14;
             this.eof = dfa_14;
             this.min = dfa_15;
@@ -28904,17 +29902,17 @@
             this.transition = dfa_64;
         }
         public String getDescription() {
-            return "5527:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )";
+            return "5831:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA93_1 = input.LA(1);
+                        int LA105_1 = input.LA(1);
 
                          
-                        int index93_1 = input.index();
+                        int index105_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred32_InternalChartDSL()) ) {s = 34;}
@@ -28922,24 +29920,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index93_1);
+                        input.seek(index105_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 93, _s, input);
+                new NoViableAltException(getDescription(), 105, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_65s = "\42\uffff";
     static final String dfa_66s = "\1\4\2\0\37\uffff";
-    static final String dfa_67s = "\1\u0084\2\0\37\uffff";
+    static final String dfa_67s = "\1\u008e\2\0\37\uffff";
     static final String dfa_68s = "\3\uffff\1\1\1\2\35\uffff";
     static final String dfa_69s = "\1\0\1\1\1\2\37\uffff}>";
     static final String[] dfa_70s = {
-            "\1\1\4\4\5\uffff\1\4\60\uffff\4\4\4\uffff\1\2\3\uffff\2\4\6\uffff\1\4\14\uffff\1\3\2\uffff\1\4\3\uffff\1\4\6\uffff\1\4\1\uffff\1\4\3\uffff\3\4\2\uffff\12\4\1\uffff\1\4",
+            "\1\4\1\1\3\4\6\uffff\1\4\71\uffff\4\4\4\uffff\1\2\3\uffff\2\4\6\uffff\1\4\14\uffff\1\3\2\uffff\1\4\3\uffff\1\4\6\uffff\1\4\1\uffff\1\4\3\uffff\3\4\2\uffff\12\4\1\uffff\1\4",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -28982,11 +29980,11 @@
     static final short[] dfa_69 = DFA.unpackEncodedString(dfa_69s);
     static final short[][] dfa_70 = unpackEncodedStringArray(dfa_70s);
 
-    class DFA92 extends DFA {
+    class DFA104 extends DFA {
 
-        public DFA92(BaseRecognizer recognizer) {
+        public DFA104(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 92;
+            this.decisionNumber = 104;
             this.eot = dfa_65;
             this.eof = dfa_65;
             this.min = dfa_66;
@@ -28996,36 +29994,36 @@
             this.transition = dfa_70;
         }
         public String getDescription() {
-            return "5596:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?";
+            return "5900:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA92_0 = input.LA(1);
+                        int LA104_0 = input.LA(1);
 
                          
-                        int index92_0 = input.index();
+                        int index104_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA92_0==RULE_ID) ) {s = 1;}
+                        if ( (LA104_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA92_0==71) ) {s = 2;}
+                        else if ( (LA104_0==81) ) {s = 2;}
 
-                        else if ( (LA92_0==96) && (synpred33_InternalChartDSL())) {s = 3;}
+                        else if ( (LA104_0==106) && (synpred33_InternalChartDSL())) {s = 3;}
 
-                        else if ( ((LA92_0>=RULE_STRING && LA92_0<=RULE_DECIMAL)||LA92_0==14||(LA92_0>=63 && LA92_0<=66)||(LA92_0>=75 && LA92_0<=76)||LA92_0==83||LA92_0==99||LA92_0==103||LA92_0==110||LA92_0==112||(LA92_0>=116 && LA92_0<=118)||(LA92_0>=121 && LA92_0<=130)||LA92_0==132) ) {s = 4;}
+                        else if ( (LA104_0==RULE_STRING||(LA104_0>=RULE_INT && LA104_0<=RULE_DECIMAL)||LA104_0==15||(LA104_0>=73 && LA104_0<=76)||(LA104_0>=85 && LA104_0<=86)||LA104_0==93||LA104_0==109||LA104_0==113||LA104_0==120||LA104_0==122||(LA104_0>=126 && LA104_0<=128)||(LA104_0>=131 && LA104_0<=140)||LA104_0==142) ) {s = 4;}
 
                          
-                        input.seek(index92_0);
+                        input.seek(index104_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA92_1 = input.LA(1);
+                        int LA104_1 = input.LA(1);
 
                          
-                        int index92_1 = input.index();
+                        int index104_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred33_InternalChartDSL()) ) {s = 3;}
@@ -29033,14 +30031,14 @@
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index92_1);
+                        input.seek(index104_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA92_2 = input.LA(1);
+                        int LA104_2 = input.LA(1);
 
                          
-                        int index92_2 = input.index();
+                        int index104_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred33_InternalChartDSL()) ) {s = 3;}
@@ -29048,23 +30046,23 @@
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index92_2);
+                        input.seek(index104_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 92, _s, input);
+                new NoViableAltException(getDescription(), 104, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA115 extends DFA {
+    class DFA127 extends DFA {
 
-        public DFA115(BaseRecognizer recognizer) {
+        public DFA127(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 115;
+            this.decisionNumber = 127;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -29074,17 +30072,17 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "6725:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?";
+            return "7029:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA115_1 = input.LA(1);
+                        int LA127_1 = input.LA(1);
 
                          
-                        int index115_1 = input.index();
+                        int index127_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred36_InternalChartDSL()) ) {s = 77;}
@@ -29092,23 +30090,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index115_1);
+                        input.seek(index127_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 115, _s, input);
+                new NoViableAltException(getDescription(), 127, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA114 extends DFA {
+    class DFA126 extends DFA {
 
-        public DFA114(BaseRecognizer recognizer) {
+        public DFA126(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 114;
+            this.decisionNumber = 126;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_46;
@@ -29118,40 +30116,40 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "6744:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?";
+            return "7048:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA114_0 = input.LA(1);
+                        int LA126_0 = input.LA(1);
 
                          
-                        int index114_0 = input.index();
+                        int index126_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA114_0==RULE_ID) ) {s = 1;}
+                        if ( (LA126_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA114_0==71) ) {s = 2;}
+                        else if ( (LA126_0==81) ) {s = 2;}
 
-                        else if ( (LA114_0==96) && (synpred37_InternalChartDSL())) {s = 3;}
+                        else if ( (LA126_0==106) && (synpred37_InternalChartDSL())) {s = 3;}
 
-                        else if ( (LA114_0==109) && (synpred37_InternalChartDSL())) {s = 4;}
+                        else if ( (LA126_0==119) && (synpred37_InternalChartDSL())) {s = 4;}
 
-                        else if ( ((LA114_0>=RULE_STRING && LA114_0<=RULE_DECIMAL)||LA114_0==14||(LA114_0>=63 && LA114_0<=66)||(LA114_0>=75 && LA114_0<=76)||LA114_0==83||LA114_0==99||LA114_0==103||LA114_0==110||LA114_0==112||(LA114_0>=116 && LA114_0<=118)||(LA114_0>=121 && LA114_0<=130)||LA114_0==132) ) {s = 5;}
+                        else if ( (LA126_0==RULE_STRING||(LA126_0>=RULE_INT && LA126_0<=RULE_DECIMAL)||LA126_0==15||(LA126_0>=73 && LA126_0<=76)||(LA126_0>=85 && LA126_0<=86)||LA126_0==93||LA126_0==109||LA126_0==113||LA126_0==120||LA126_0==122||(LA126_0>=126 && LA126_0<=128)||(LA126_0>=131 && LA126_0<=140)||LA126_0==142) ) {s = 5;}
 
-                        else if ( (LA114_0==73) ) {s = 35;}
+                        else if ( (LA126_0==83) ) {s = 35;}
 
                          
-                        input.seek(index114_0);
+                        input.seek(index126_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA114_1 = input.LA(1);
+                        int LA126_1 = input.LA(1);
 
                          
-                        int index114_1 = input.index();
+                        int index126_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred37_InternalChartDSL()) ) {s = 4;}
@@ -29159,14 +30157,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index114_1);
+                        input.seek(index126_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA114_2 = input.LA(1);
+                        int LA126_2 = input.LA(1);
 
                          
-                        int index114_2 = input.index();
+                        int index126_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred37_InternalChartDSL()) ) {s = 4;}
@@ -29174,23 +30172,23 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index114_2);
+                        input.seek(index126_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 114, _s, input);
+                new NoViableAltException(getDescription(), 126, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA116 extends DFA {
+    class DFA128 extends DFA {
 
-        public DFA116(BaseRecognizer recognizer) {
+        public DFA128(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 116;
+            this.decisionNumber = 128;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -29200,17 +30198,17 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "6842:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?";
+            return "7146:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA116_1 = input.LA(1);
+                        int LA128_1 = input.LA(1);
 
                          
-                        int index116_1 = input.index();
+                        int index128_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred38_InternalChartDSL()) ) {s = 77;}
@@ -29218,19 +30216,19 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index116_1);
+                        input.seek(index128_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 116, _s, input);
+                new NoViableAltException(getDescription(), 128, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_71s = {
-            "\5\2\5\uffff\2\2\2\uffff\1\2\54\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\31\2\1\uffff\30\2",
+            "\5\2\6\uffff\2\2\3\uffff\1\2\64\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\31\2\1\uffff\30\2",
             "\1\uffff",
             "",
             "",
@@ -29311,11 +30309,11 @@
     };
     static final short[][] dfa_71 = unpackEncodedStringArray(dfa_71s);
 
-    class DFA120 extends DFA {
+    class DFA132 extends DFA {
 
-        public DFA120(BaseRecognizer recognizer) {
+        public DFA132(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 120;
+            this.decisionNumber = 132;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -29325,17 +30323,17 @@
             this.transition = dfa_71;
         }
         public String getDescription() {
-            return "7001:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?";
+            return "7305:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA120_1 = input.LA(1);
+                        int LA132_1 = input.LA(1);
 
                          
-                        int index120_1 = input.index();
+                        int index132_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred39_InternalChartDSL()) ) {s = 77;}
@@ -29343,23 +30341,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index120_1);
+                        input.seek(index132_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 120, _s, input);
+                new NoViableAltException(getDescription(), 132, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA123 extends DFA {
+    class DFA135 extends DFA {
 
-        public DFA123(BaseRecognizer recognizer) {
+        public DFA135(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 123;
+            this.decisionNumber = 135;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -29369,17 +30367,17 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "7058:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?";
+            return "7362:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA123_1 = input.LA(1);
+                        int LA135_1 = input.LA(1);
 
                          
-                        int index123_1 = input.index();
+                        int index135_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred40_InternalChartDSL()) ) {s = 77;}
@@ -29387,23 +30385,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index123_1);
+                        input.seek(index135_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 123, _s, input);
+                new NoViableAltException(getDescription(), 135, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA122 extends DFA {
+    class DFA134 extends DFA {
 
-        public DFA122(BaseRecognizer recognizer) {
+        public DFA134(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 122;
+            this.decisionNumber = 134;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_46;
@@ -29413,40 +30411,40 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "7077:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?";
+            return "7381:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA122_0 = input.LA(1);
+                        int LA134_0 = input.LA(1);
 
                          
-                        int index122_0 = input.index();
+                        int index134_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA122_0==RULE_ID) ) {s = 1;}
+                        if ( (LA134_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA122_0==71) ) {s = 2;}
+                        else if ( (LA134_0==81) ) {s = 2;}
 
-                        else if ( (LA122_0==96) && (synpred41_InternalChartDSL())) {s = 3;}
+                        else if ( (LA134_0==106) && (synpred41_InternalChartDSL())) {s = 3;}
 
-                        else if ( (LA122_0==109) && (synpred41_InternalChartDSL())) {s = 4;}
+                        else if ( (LA134_0==119) && (synpred41_InternalChartDSL())) {s = 4;}
 
-                        else if ( ((LA122_0>=RULE_STRING && LA122_0<=RULE_DECIMAL)||LA122_0==14||(LA122_0>=63 && LA122_0<=66)||(LA122_0>=75 && LA122_0<=76)||LA122_0==83||LA122_0==99||LA122_0==103||LA122_0==110||LA122_0==112||(LA122_0>=116 && LA122_0<=118)||(LA122_0>=121 && LA122_0<=130)||LA122_0==132) ) {s = 5;}
+                        else if ( (LA134_0==RULE_STRING||(LA134_0>=RULE_INT && LA134_0<=RULE_DECIMAL)||LA134_0==15||(LA134_0>=73 && LA134_0<=76)||(LA134_0>=85 && LA134_0<=86)||LA134_0==93||LA134_0==109||LA134_0==113||LA134_0==120||LA134_0==122||(LA134_0>=126 && LA134_0<=128)||(LA134_0>=131 && LA134_0<=140)||LA134_0==142) ) {s = 5;}
 
-                        else if ( (LA122_0==73) ) {s = 35;}
+                        else if ( (LA134_0==83) ) {s = 35;}
 
                          
-                        input.seek(index122_0);
+                        input.seek(index134_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA122_1 = input.LA(1);
+                        int LA134_1 = input.LA(1);
 
                          
-                        int index122_1 = input.index();
+                        int index134_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred41_InternalChartDSL()) ) {s = 4;}
@@ -29454,14 +30452,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index122_1);
+                        input.seek(index134_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA122_2 = input.LA(1);
+                        int LA134_2 = input.LA(1);
 
                          
-                        int index122_2 = input.index();
+                        int index134_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred41_InternalChartDSL()) ) {s = 4;}
@@ -29469,23 +30467,23 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index122_2);
+                        input.seek(index134_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 122, _s, input);
+                new NoViableAltException(getDescription(), 134, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA124 extends DFA {
+    class DFA136 extends DFA {
 
-        public DFA124(BaseRecognizer recognizer) {
+        public DFA136(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 124;
+            this.decisionNumber = 136;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -29495,17 +30493,17 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "7175:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?";
+            return "7479:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA124_1 = input.LA(1);
+                        int LA136_1 = input.LA(1);
 
                          
-                        int index124_1 = input.index();
+                        int index136_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred42_InternalChartDSL()) ) {s = 77;}
@@ -29513,24 +30511,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index124_1);
+                        input.seek(index136_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 124, _s, input);
+                new NoViableAltException(getDescription(), 136, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_72s = "\1\41\115\uffff";
     static final String dfa_73s = "\1\4\40\0\55\uffff";
-    static final String dfa_74s = "\1\u0085\40\0\55\uffff";
+    static final String dfa_74s = "\1\u008f\40\0\55\uffff";
     static final String dfa_75s = "\41\uffff\1\2\53\uffff\1\1";
     static final String dfa_76s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\55\uffff}>";
     static final String[] dfa_77s = {
-            "\1\1\1\27\1\24\1\23\1\25\5\uffff\1\12\1\41\2\uffff\1\41\54\uffff\1\7\1\4\1\3\1\5\1\41\1\uffff\1\41\1\uffff\1\40\2\41\1\uffff\1\17\1\20\6\41\1\15\17\41\1\10\3\41\1\6\5\41\1\uffff\1\31\1\41\1\13\3\41\1\32\1\33\1\34\2\41\1\2\1\16\1\11\1\21\1\22\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41",
+            "\1\27\1\1\1\24\1\23\1\25\6\uffff\1\12\1\41\3\uffff\1\41\64\uffff\1\7\1\4\1\3\1\5\1\41\1\uffff\1\41\1\uffff\1\40\2\41\1\uffff\1\17\1\20\6\41\1\15\17\41\1\10\3\41\1\6\5\41\1\uffff\1\31\1\41\1\13\3\41\1\32\1\33\1\34\2\41\1\2\1\16\1\11\1\21\1\22\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -29616,11 +30614,11 @@
     static final short[] dfa_76 = DFA.unpackEncodedString(dfa_76s);
     static final short[][] dfa_77 = unpackEncodedStringArray(dfa_77s);
 
-    class DFA127 extends DFA {
+    class DFA139 extends DFA {
 
-        public DFA127(BaseRecognizer recognizer) {
+        public DFA139(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 127;
+            this.decisionNumber = 139;
             this.eot = dfa_39;
             this.eof = dfa_72;
             this.min = dfa_73;
@@ -29630,17 +30628,17 @@
             this.transition = dfa_77;
         }
         public String getDescription() {
-            return "7518:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?";
+            return "7822:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA127_1 = input.LA(1);
+                        int LA139_1 = input.LA(1);
 
                          
-                        int index127_1 = input.index();
+                        int index139_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29648,14 +30646,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_1);
+                        input.seek(index139_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA127_2 = input.LA(1);
+                        int LA139_2 = input.LA(1);
 
                          
-                        int index127_2 = input.index();
+                        int index139_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29663,14 +30661,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_2);
+                        input.seek(index139_2);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA127_3 = input.LA(1);
+                        int LA139_3 = input.LA(1);
 
                          
-                        int index127_3 = input.index();
+                        int index139_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29678,14 +30676,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_3);
+                        input.seek(index139_3);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA127_4 = input.LA(1);
+                        int LA139_4 = input.LA(1);
 
                          
-                        int index127_4 = input.index();
+                        int index139_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29693,14 +30691,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_4);
+                        input.seek(index139_4);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA127_5 = input.LA(1);
+                        int LA139_5 = input.LA(1);
 
                          
-                        int index127_5 = input.index();
+                        int index139_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29708,14 +30706,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_5);
+                        input.seek(index139_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA127_6 = input.LA(1);
+                        int LA139_6 = input.LA(1);
 
                          
-                        int index127_6 = input.index();
+                        int index139_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29723,14 +30721,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_6);
+                        input.seek(index139_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA127_7 = input.LA(1);
+                        int LA139_7 = input.LA(1);
 
                          
-                        int index127_7 = input.index();
+                        int index139_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29738,14 +30736,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_7);
+                        input.seek(index139_7);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA127_8 = input.LA(1);
+                        int LA139_8 = input.LA(1);
 
                          
-                        int index127_8 = input.index();
+                        int index139_8 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29753,14 +30751,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_8);
+                        input.seek(index139_8);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA127_9 = input.LA(1);
+                        int LA139_9 = input.LA(1);
 
                          
-                        int index127_9 = input.index();
+                        int index139_9 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29768,14 +30766,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_9);
+                        input.seek(index139_9);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA127_10 = input.LA(1);
+                        int LA139_10 = input.LA(1);
 
                          
-                        int index127_10 = input.index();
+                        int index139_10 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29783,14 +30781,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_10);
+                        input.seek(index139_10);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA127_11 = input.LA(1);
+                        int LA139_11 = input.LA(1);
 
                          
-                        int index127_11 = input.index();
+                        int index139_11 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29798,14 +30796,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_11);
+                        input.seek(index139_11);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA127_12 = input.LA(1);
+                        int LA139_12 = input.LA(1);
 
                          
-                        int index127_12 = input.index();
+                        int index139_12 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29813,14 +30811,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_12);
+                        input.seek(index139_12);
                         if ( s>=0 ) return s;
                         break;
                     case 12 : 
-                        int LA127_13 = input.LA(1);
+                        int LA139_13 = input.LA(1);
 
                          
-                        int index127_13 = input.index();
+                        int index139_13 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29828,14 +30826,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_13);
+                        input.seek(index139_13);
                         if ( s>=0 ) return s;
                         break;
                     case 13 : 
-                        int LA127_14 = input.LA(1);
+                        int LA139_14 = input.LA(1);
 
                          
-                        int index127_14 = input.index();
+                        int index139_14 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29843,14 +30841,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_14);
+                        input.seek(index139_14);
                         if ( s>=0 ) return s;
                         break;
                     case 14 : 
-                        int LA127_15 = input.LA(1);
+                        int LA139_15 = input.LA(1);
 
                          
-                        int index127_15 = input.index();
+                        int index139_15 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29858,14 +30856,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_15);
+                        input.seek(index139_15);
                         if ( s>=0 ) return s;
                         break;
                     case 15 : 
-                        int LA127_16 = input.LA(1);
+                        int LA139_16 = input.LA(1);
 
                          
-                        int index127_16 = input.index();
+                        int index139_16 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29873,14 +30871,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_16);
+                        input.seek(index139_16);
                         if ( s>=0 ) return s;
                         break;
                     case 16 : 
-                        int LA127_17 = input.LA(1);
+                        int LA139_17 = input.LA(1);
 
                          
-                        int index127_17 = input.index();
+                        int index139_17 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29888,14 +30886,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_17);
+                        input.seek(index139_17);
                         if ( s>=0 ) return s;
                         break;
                     case 17 : 
-                        int LA127_18 = input.LA(1);
+                        int LA139_18 = input.LA(1);
 
                          
-                        int index127_18 = input.index();
+                        int index139_18 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29903,14 +30901,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_18);
+                        input.seek(index139_18);
                         if ( s>=0 ) return s;
                         break;
                     case 18 : 
-                        int LA127_19 = input.LA(1);
+                        int LA139_19 = input.LA(1);
 
                          
-                        int index127_19 = input.index();
+                        int index139_19 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29918,14 +30916,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_19);
+                        input.seek(index139_19);
                         if ( s>=0 ) return s;
                         break;
                     case 19 : 
-                        int LA127_20 = input.LA(1);
+                        int LA139_20 = input.LA(1);
 
                          
-                        int index127_20 = input.index();
+                        int index139_20 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29933,14 +30931,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_20);
+                        input.seek(index139_20);
                         if ( s>=0 ) return s;
                         break;
                     case 20 : 
-                        int LA127_21 = input.LA(1);
+                        int LA139_21 = input.LA(1);
 
                          
-                        int index127_21 = input.index();
+                        int index139_21 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29948,14 +30946,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_21);
+                        input.seek(index139_21);
                         if ( s>=0 ) return s;
                         break;
                     case 21 : 
-                        int LA127_22 = input.LA(1);
+                        int LA139_22 = input.LA(1);
 
                          
-                        int index127_22 = input.index();
+                        int index139_22 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29963,14 +30961,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_22);
+                        input.seek(index139_22);
                         if ( s>=0 ) return s;
                         break;
                     case 22 : 
-                        int LA127_23 = input.LA(1);
+                        int LA139_23 = input.LA(1);
 
                          
-                        int index127_23 = input.index();
+                        int index139_23 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29978,14 +30976,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_23);
+                        input.seek(index139_23);
                         if ( s>=0 ) return s;
                         break;
                     case 23 : 
-                        int LA127_24 = input.LA(1);
+                        int LA139_24 = input.LA(1);
 
                          
-                        int index127_24 = input.index();
+                        int index139_24 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -29993,14 +30991,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_24);
+                        input.seek(index139_24);
                         if ( s>=0 ) return s;
                         break;
                     case 24 : 
-                        int LA127_25 = input.LA(1);
+                        int LA139_25 = input.LA(1);
 
                          
-                        int index127_25 = input.index();
+                        int index139_25 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -30008,14 +31006,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_25);
+                        input.seek(index139_25);
                         if ( s>=0 ) return s;
                         break;
                     case 25 : 
-                        int LA127_26 = input.LA(1);
+                        int LA139_26 = input.LA(1);
 
                          
-                        int index127_26 = input.index();
+                        int index139_26 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -30023,14 +31021,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_26);
+                        input.seek(index139_26);
                         if ( s>=0 ) return s;
                         break;
                     case 26 : 
-                        int LA127_27 = input.LA(1);
+                        int LA139_27 = input.LA(1);
 
                          
-                        int index127_27 = input.index();
+                        int index139_27 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -30038,14 +31036,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_27);
+                        input.seek(index139_27);
                         if ( s>=0 ) return s;
                         break;
                     case 27 : 
-                        int LA127_28 = input.LA(1);
+                        int LA139_28 = input.LA(1);
 
                          
-                        int index127_28 = input.index();
+                        int index139_28 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -30053,14 +31051,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_28);
+                        input.seek(index139_28);
                         if ( s>=0 ) return s;
                         break;
                     case 28 : 
-                        int LA127_29 = input.LA(1);
+                        int LA139_29 = input.LA(1);
 
                          
-                        int index127_29 = input.index();
+                        int index139_29 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -30068,14 +31066,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_29);
+                        input.seek(index139_29);
                         if ( s>=0 ) return s;
                         break;
                     case 29 : 
-                        int LA127_30 = input.LA(1);
+                        int LA139_30 = input.LA(1);
 
                          
-                        int index127_30 = input.index();
+                        int index139_30 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -30083,14 +31081,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_30);
+                        input.seek(index139_30);
                         if ( s>=0 ) return s;
                         break;
                     case 30 : 
-                        int LA127_31 = input.LA(1);
+                        int LA139_31 = input.LA(1);
 
                          
-                        int index127_31 = input.index();
+                        int index139_31 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -30098,14 +31096,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_31);
+                        input.seek(index139_31);
                         if ( s>=0 ) return s;
                         break;
                     case 31 : 
-                        int LA127_32 = input.LA(1);
+                        int LA139_32 = input.LA(1);
 
                          
-                        int index127_32 = input.index();
+                        int index139_32 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalChartDSL()) ) {s = 77;}
@@ -30113,13 +31111,13 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_32);
+                        input.seek(index139_32);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 127, _s, input);
+                new NoViableAltException(getDescription(), 139, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -30127,11 +31125,11 @@
     static final String dfa_78s = "\117\uffff";
     static final String dfa_79s = "\1\2\116\uffff";
     static final String dfa_80s = "\1\4\1\0\115\uffff";
-    static final String dfa_81s = "\1\u0087\1\0\115\uffff";
+    static final String dfa_81s = "\1\u0091\1\0\115\uffff";
     static final String dfa_82s = "\2\uffff\1\2\113\uffff\1\1";
     static final String dfa_83s = "\1\uffff\1\0\115\uffff}>";
     static final String[] dfa_84s = {
-            "\5\2\5\uffff\2\2\2\uffff\1\2\54\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\31\2\1\uffff\30\2\1\uffff\1\2",
+            "\5\2\6\uffff\2\2\3\uffff\1\2\64\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\31\2\1\uffff\30\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -30220,11 +31218,11 @@
     static final short[] dfa_83 = DFA.unpackEncodedString(dfa_83s);
     static final short[][] dfa_84 = unpackEncodedStringArray(dfa_84s);
 
-    class DFA145 extends DFA {
+    class DFA157 extends DFA {
 
-        public DFA145(BaseRecognizer recognizer) {
+        public DFA157(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 145;
+            this.decisionNumber = 157;
             this.eot = dfa_78;
             this.eof = dfa_79;
             this.min = dfa_80;
@@ -30234,17 +31232,17 @@
             this.transition = dfa_84;
         }
         public String getDescription() {
-            return "8176:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?";
+            return "8480:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA145_1 = input.LA(1);
+                        int LA157_1 = input.LA(1);
 
                          
-                        int index145_1 = input.index();
+                        int index157_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred50_InternalChartDSL()) ) {s = 78;}
@@ -30252,23 +31250,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index145_1);
+                        input.seek(index157_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 145, _s, input);
+                new NoViableAltException(getDescription(), 157, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA143 extends DFA {
+    class DFA155 extends DFA {
 
-        public DFA143(BaseRecognizer recognizer) {
+        public DFA155(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 143;
+            this.decisionNumber = 155;
             this.eot = dfa_78;
             this.eof = dfa_79;
             this.min = dfa_80;
@@ -30278,17 +31276,17 @@
             this.transition = dfa_84;
         }
         public String getDescription() {
-            return "8270:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?";
+            return "8574:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA143_1 = input.LA(1);
+                        int LA155_1 = input.LA(1);
 
                          
-                        int index143_1 = input.index();
+                        int index155_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred52_InternalChartDSL()) ) {s = 78;}
@@ -30296,13 +31294,13 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index143_1);
+                        input.seek(index155_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 143, _s, input);
+                new NoViableAltException(getDescription(), 155, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -30312,125 +31310,138 @@
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
     public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000002002L});
-    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000018000L});
-    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000060000L});
-    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000040000L});
-    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0001046808400000L});
-    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000380002L});
-    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0010000000000000L});
-    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000007800002L});
-    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000671000002L});
-    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x00000007F1000002L});
-    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000771000002L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000001000000002L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000038000000002L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x00000000000001C0L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000980000000002L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000200000000000L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000400000000000L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0008000000008000L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0006000000000000L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0xC000000000000040L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0420000100008000L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000000000000700L});
-    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0040000000000002L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0080000000000000L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000003800L});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00000000003FC000L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0300000000000002L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0200000000000002L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0800000000000000L});
-    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000007C00000L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x3000000000000002L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x2000000000000002L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x8000000000000040L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000012L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000004L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000008L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x80000000000041F0L,0xFE71408800081AC7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000300L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x80000000000041F0L,0xFE714088000818C7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x80000000000041F0L,0xFE714088000838C7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002100L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000002L,0x00000000001FC000L});
-    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000000300000L});
-    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
-    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L});
-    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000002L,0x000000000F000000L});
-    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000002L,0x0000000010380000L});
-    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000000010L,0x0000000100000080L});
-    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000000002L,0x00000007E0180000L});
-    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
-    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
-    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000000000000L,0x0000000100080000L});
-    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x8000000000000002L,0x0000000800000000L});
-    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000000000002L,0x0000007000000008L});
-    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000040002L});
-    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000000000002L,0x0000030000000000L});
-    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0000000000000002L,0x00001C0000000000L});
-    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000000010L,0x0200000000000007L});
-    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000000000010L,0x0600000000080007L});
-    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000000010L,0x0000000100000080L,0x0000000000000040L});
-    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100100L});
-    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000000002L,0x00001C0000001080L});
-    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x80000000000041F0L,0xFE71608900081AC7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000000000000002L,0x00001C0000001000L});
-    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x800000000000C1F0L,0xFE714088000818C7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x80000000000041F0L,0xFFF16089000838C7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000100L});
-    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x80000000000041F0L,0xFFF14088000838C7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x80000000000041F2L,0xFFF14088000818E7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x80000000000041F2L,0xFFF14088000818C7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
-    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000000000002L,0x0000800000000000L});
-    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x80000000000041F0L,0xFE714089000818C7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000000008010L,0x000E000100000180L});
-    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000000L,0x000A000000000100L});
-    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000100L});
-    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x80000000000041F0L,0xFFF14088000818E7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000120L});
-    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x80000000000041F0L,0xFFF14088000818C7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x80000000000041F0L,0xFE714088000818E7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
-    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
-    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x800000000000C1F0L,0xFFF14088000818C7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x800000000000C1F0L,0xFFF14088000818E7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
-    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001080L});
-    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000002L,0x0000000000081080L});
-    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001200L});
-    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x80000000000041F2L,0xFE714088000818C7L,0x0000000000000017L});
-    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000028L});
-    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000028L});
-    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
-    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000000000140L});
-    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000000000010L,0x0000000100000280L});
-    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
-    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
-    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000000000002L,0x0000040000080000L});
-    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0000000000000002L,0x0600000000000000L});
-    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000080L});
-    public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
-    public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
-    public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
-    public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x000000000002C002L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000010010L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000028002L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00000FE000000000L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000008002L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000050000L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000180000L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x000411A021000000L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000E00002L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0040000000000000L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x000000001E000002L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x00000019C4000002L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000001FC4000002L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000001DC4000002L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000004000000002L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x00000E0000000002L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x00000000000001C0L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0002600000000002L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000800000000000L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0001000000000000L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0020000000010000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0018000000000000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000040L,0x0000000000000300L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x8080000400010000L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x5900000000000002L,0x0000000000000000L,0x00000000001C0000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x5800000000000002L,0x0000000000000000L,0x00000000001C0000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x1A00000000000002L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000E00000L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x1800000000000002L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x1000000000000002L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00000000FF000000L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x6000000000000002L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001F00000000L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000002L,0x00000000000000FEL});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000002L,0x00000000000000FCL});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000040L,0x00000000000002F8L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000002L,0x00000000000000F8L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000002L,0x00000000000000F0L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000002L,0x00000000000000E0L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000040L,0x00000000000002C0L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000002L,0x00000000000000C0L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000020L,0x0000000000004800L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000020L,0x0000000000001000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000020L,0x0000000000002000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x00000000000081F0L,0xC5022000206B1E00L,0x0000000000005FF9L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000000L,0x00000000000C0000L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x00000000000081F0L,0xC502200020631E00L,0x0000000000005FF9L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x00000000000081F0L,0xC502200020E31E00L,0x0000000000005FF9L});
+    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000000000L,0x0000000000840000L});
+    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L});
+    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000000000000002L,0x000000007F000000L});
+    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000000000L,0x00000000C0000000L});
+    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
+    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000000000002L,0x0000003C00000000L});
+    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000000002L,0x00000040E0000000L});
+    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000000000020L,0x0000040000020000L});
+    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000000002L,0x00001F8060000000L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000000000000L,0x0000040020000000L});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000000000002L,0x0000200000000200L});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000002L,0x0001C00000002000L});
+    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000000100002L});
+    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000000000002L,0x000C000000000000L});
+    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000002L,0x0070000000000000L});
+    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000000000020L,0x0000000000001C00L,0x0000000000000008L});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000000000020L,0x0000000020001C00L,0x0000000000000018L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000000000000020L,0x0000040000020000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000000000000L,0x0000000040040000L});
+    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000000000002L,0x0070000000420000L});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x00000000000081F0L,0xC5822400206B1E00L,0x0000000000005FF9L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000000000002L,0x0070000000400000L});
+    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x00000000000181F0L,0xC502200020631E00L,0x0000000000005FF9L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000010000L,0x0000000000040000L});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x00000000000081F0L,0xC582240020E31E00L,0x0000000000005FFFL});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000000L,0x0080000000040000L});
+    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x00000000000081F0L,0xC502200020E31E00L,0x0000000000005FFFL});
+    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x00000000000081F2L,0xC502200020639E00L,0x0000000000005FFFL});
+    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x00000000000081F2L,0xC502200020631E00L,0x0000000000005FFFL});
+    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x00000000000081F0L,0xC502240020631E00L,0x0000000000005FF9L});
+    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
+    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000000010020L,0x3800040000060000L});
+    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000000L,0x2800000000040000L});
+    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000000000000000L,0x0800000000040000L});
+    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x00000000000081F0L,0xC502200020639E00L,0x0000000000005FFFL});
+    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000000000048000L});
+    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x00000000000081F0L,0xC502200020631E00L,0x0000000000005FFFL});
+    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x00000000000081F0L,0xC502200020639E00L,0x0000000000005FF9L});
+    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
+    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x00000000000181F0L,0xC502200020631E00L,0x0000000000005FFFL});
+    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x00000000000181F0L,0xC502200020639E00L,0x0000000000005FFFL});
+    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
+    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0000000000000002L,0x0000000000420000L});
+    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
+    public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x0000000000000002L,0x0000000020420000L});
+    public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x0000000000000000L,0x0000000000480000L});
+    public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x00000000000081F2L,0xC502200020631E00L,0x0000000000005FF9L});
+    public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x000000000000A000L});
+    public static final BitSet FOLLOW_124 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x000000000000A000L});
+    public static final BitSet FOLLOW_125 = new BitSet(new long[]{0x0000000000000002L,0x0010000000000000L});
+    public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0000000000000140L});
+    public static final BitSet FOLLOW_127 = new BitSet(new long[]{0x0000000000000020L,0x00000400000A0000L});
+    public static final BitSet FOLLOW_128 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
+    public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x0000000000000002L,0x0000000020000000L});
+    public static final BitSet FOLLOW_130 = new BitSet(new long[]{0x0000000000000002L,0x0010000020000000L});
+    public static final BitSet FOLLOW_131 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000018L});
+    public static final BitSet FOLLOW_132 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_133 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_134 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_135 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+    public static final BitSet FOLLOW_136 = new BitSet(new long[]{0x0000000000000022L});
 
 }
diff --git a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/serializer/ChartDSLSemanticSequencer.java b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/serializer/ChartDSLSemanticSequencer.java
index cf80a39..5c0df1b 100644
--- a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/serializer/ChartDSLSemanticSequencer.java
+++ b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/serializer/ChartDSLSemanticSequencer.java
@@ -39,6 +39,7 @@
 import org.eclipse.osbp.xtext.chart.ChartPie;
 import org.eclipse.osbp.xtext.chart.ChartSegmentColor;
 import org.eclipse.osbp.xtext.chart.ChartTree;
+import org.eclipse.osbp.xtext.chart.SeriesColor;
 import org.eclipse.osbp.xtext.chart.services.ChartDSLGrammarAccess;
 import org.eclipse.osbp.xtext.oxtype.oxtype.OXImportDeclaration;
 import org.eclipse.osbp.xtext.oxtype.oxtype.OXtypePackage;
@@ -159,6 +160,9 @@
 			case ChartDSLPackage.CHART_TREE:
 				sequence_ChartTree(context, (ChartTree) semanticObject); 
 				return; 
+			case ChartDSLPackage.SERIES_COLOR:
+				sequence_SeriesColor(context, (SeriesColor) semanticObject); 
+				return; 
 			}
 		else if (epackage == OXtypePackage.eINSTANCE)
 			switch (semanticObject.eClass().getClassifierID()) {
@@ -473,7 +477,17 @@
 	 *     ChartAxis returns ChartAxis
 	 *
 	 * Constraint:
-	 *     (axis=[DatamartAxis|ID] renderType=RenderTypeEnum shortLabel?='shortLabel'? angle=SignedNumber?)
+	 *     (
+	 *         axis=[DatamartAxis|ID] 
+	 *         renderType=RenderTypeEnum 
+	 *         shortLabel?='shortLabel'? 
+	 *         labelAngle=SignedNumber? 
+	 *         labelFontSize=INT? 
+	 *         labelTextColor=STRING? 
+	 *         tickAngle=SignedNumber? 
+	 *         tickFontSize=INT? 
+	 *         tickTextColor=STRING?
+	 *     )
 	 */
 	protected void sequence_ChartAxis(ISerializationContext context, ChartAxis semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
@@ -566,7 +580,12 @@
 	 *     ChartLegend returns ChartLegend
 	 *
 	 * Constraint:
-	 *     (placement=LegendPlacementEnum (toggle?='toggle' replot?='replot' toggleType=ToggleTypeEnum)?)
+	 *     (
+	 *         noLegend?='noLegend'? 
+	 *         (placement=LegendPlacementEnum (toggle?='toggle' replot?='replot' toggleType=ToggleTypeEnum)?)? 
+	 *         fontSize=INT? 
+	 *         textColor=STRING?
+	 *     )
 	 */
 	protected void sequence_ChartLegend(ISerializationContext context, ChartLegend semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
@@ -628,7 +647,7 @@
 	 *     ChartPackage returns ChartPackage
 	 *
 	 * Constraint:
-	 *     (name=QualifiedName charts+=Chart*)
+	 *     (name=QualifiedName (hasColors?='seriesColors' colors+=SeriesColor*)? defaultFontFamily=CanvasFontFamilyEnum? charts+=Chart*)
 	 */
 	protected void sequence_ChartPackage(ISerializationContext context, ChartPackage semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
@@ -698,4 +717,22 @@
 	}
 	
 	
+	/**
+	 * Contexts:
+	 *     SeriesColor returns SeriesColor
+	 *
+	 * Constraint:
+	 *     rgb=STRING
+	 */
+	protected void sequence_SeriesColor(ISerializationContext context, SeriesColor semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, ChartDSLPackage.Literals.SERIES_COLOR__RGB) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ChartDSLPackage.Literals.SERIES_COLOR__RGB));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getSeriesColorAccess().getRgbSTRINGTerminalRuleCall_1_0(), semanticObject.getRgb());
+		feeder.finish();
+	}
+	
+	
 }
diff --git a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/serializer/ChartDSLSyntacticSequencer.java b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/serializer/ChartDSLSyntacticSequencer.java
index b1b6805..7004c73 100644
--- a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/serializer/ChartDSLSyntacticSequencer.java
+++ b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/serializer/ChartDSLSyntacticSequencer.java
@@ -36,7 +36,7 @@
 public class ChartDSLSyntacticSequencer extends AbstractSyntacticSequencer {
 
 	protected ChartDSLGrammarAccess grammarAccess;
-	protected AbstractElementAlias match_ChartPackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q;
+	protected AbstractElementAlias match_ChartPackage___LeftCurlyBracketKeyword_5_0_RightCurlyBracketKeyword_5_2__q;
 	protected AbstractElementAlias match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q;
 	protected AbstractElementAlias match_XBlockExpression_SemicolonKeyword_2_1_q;
 	protected AbstractElementAlias match_XExpressionInClosure_SemicolonKeyword_1_1_q;
@@ -48,7 +48,7 @@
 	@Inject
 	protected void init(IGrammarAccess access) {
 		grammarAccess = (ChartDSLGrammarAccess) access;
-		match_ChartPackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_3_2()));
+		match_ChartPackage___LeftCurlyBracketKeyword_5_0_RightCurlyBracketKeyword_5_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getChartPackageAccess().getLeftCurlyBracketKeyword_5_0()), new TokenAlias(false, false, grammarAccess.getChartPackageAccess().getRightCurlyBracketKeyword_5_2()));
 		match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()));
 		match_XBlockExpression_SemicolonKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
 		match_XExpressionInClosure_SemicolonKeyword_1_1_q = new TokenAlias(false, true, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
@@ -95,8 +95,8 @@
 		List<INode> transitionNodes = collectNodes(fromNode, toNode);
 		for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
 			List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
-			if (match_ChartPackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q.equals(syntax))
-				emit_ChartPackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			if (match_ChartPackage___LeftCurlyBracketKeyword_5_0_RightCurlyBracketKeyword_5_2__q.equals(syntax))
+				emit_ChartPackage___LeftCurlyBracketKeyword_5_0_RightCurlyBracketKeyword_5_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q.equals(syntax))
 				emit_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_XBlockExpression_SemicolonKeyword_2_1_q.equals(syntax))
@@ -120,9 +120,12 @@
 	 *     ('{' '}')?
 	 *
 	 * This ambiguous syntax occurs at:
+	 *     colors+=SeriesColor '}' (ambiguity) (rule end)
+	 *     defaultFontFamily=CanvasFontFamilyEnum (ambiguity) (rule end)
+	 *     hasColors?='seriesColors' '{' '}' (ambiguity) (rule end)
 	 *     name=QualifiedName (ambiguity) (rule end)
 	 */
-	protected void emit_ChartPackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+	protected void emit_ChartPackage___LeftCurlyBracketKeyword_5_0_RightCurlyBracketKeyword_5_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
diff --git a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/services/ChartDSLGrammarAccess.java b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/services/ChartDSLGrammarAccess.java
index 944248c..bacb280 100644
--- a/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/services/ChartDSLGrammarAccess.java
+++ b/org.eclipse.osbp.xtext.chart/src-gen/org/eclipse/osbp/xtext/chart/services/ChartDSLGrammarAccess.java
@@ -82,16 +82,29 @@
 		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
 		private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
 		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
-		private final Keyword cLeftCurlyBracketKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
-		private final Assignment cChartsAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
-		private final RuleCall cChartsChartParserRuleCall_3_1_0 = (RuleCall)cChartsAssignment_3_1.eContents().get(0);
-		private final Keyword cRightCurlyBracketKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
+		private final Assignment cHasColorsAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
+		private final Keyword cHasColorsSeriesColorsKeyword_3_0_0 = (Keyword)cHasColorsAssignment_3_0.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
+		private final Assignment cColorsAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
+		private final RuleCall cColorsSeriesColorParserRuleCall_3_2_0 = (RuleCall)cColorsAssignment_3_2.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cFontFamilyKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Assignment cDefaultFontFamilyAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+		private final RuleCall cDefaultFontFamilyCanvasFontFamilyEnumEnumRuleCall_4_1_0 = (RuleCall)cDefaultFontFamilyAssignment_4_1.eContents().get(0);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cLeftCurlyBracketKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Assignment cChartsAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+		private final RuleCall cChartsChartParserRuleCall_5_1_0 = (RuleCall)cChartsAssignment_5_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5_2 = (Keyword)cGroup_5.eContents().get(2);
 		
 		//ChartPackage:
-		//	{ChartPackage} 'package' name=QualifiedName ('{' charts+=Chart* '}')?;
+		//	{ChartPackage} 'package' name=QualifiedName (hasColors?='seriesColors' '{' colors+=SeriesColor* '}')? ('fontFamily'
+		//	defaultFontFamily=CanvasFontFamilyEnum)? ('{' charts+=Chart* '}')?;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{ChartPackage} 'package' name=QualifiedName ('{' charts+=Chart* '}')?
+		//{ChartPackage} 'package' name=QualifiedName (hasColors?='seriesColors' '{' colors+=SeriesColor* '}')? ('fontFamily'
+		//defaultFontFamily=CanvasFontFamilyEnum)? ('{' charts+=Chart* '}')?
 		public Group getGroup() { return cGroup; }
 		
 		//{ChartPackage}
@@ -106,20 +119,76 @@
 		//QualifiedName
 		public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
 		
-		//('{' charts+=Chart* '}')?
+		//(hasColors?='seriesColors' '{' colors+=SeriesColor* '}')?
 		public Group getGroup_3() { return cGroup_3; }
 		
+		//hasColors?='seriesColors'
+		public Assignment getHasColorsAssignment_3_0() { return cHasColorsAssignment_3_0; }
+		
+		//'seriesColors'
+		public Keyword getHasColorsSeriesColorsKeyword_3_0_0() { return cHasColorsSeriesColorsKeyword_3_0_0; }
+		
 		//'{'
-		public Keyword getLeftCurlyBracketKeyword_3_0() { return cLeftCurlyBracketKeyword_3_0; }
+		public Keyword getLeftCurlyBracketKeyword_3_1() { return cLeftCurlyBracketKeyword_3_1; }
 		
-		//charts+=Chart*
-		public Assignment getChartsAssignment_3_1() { return cChartsAssignment_3_1; }
+		//colors+=SeriesColor*
+		public Assignment getColorsAssignment_3_2() { return cColorsAssignment_3_2; }
 		
-		//Chart
-		public RuleCall getChartsChartParserRuleCall_3_1_0() { return cChartsChartParserRuleCall_3_1_0; }
+		//SeriesColor
+		public RuleCall getColorsSeriesColorParserRuleCall_3_2_0() { return cColorsSeriesColorParserRuleCall_3_2_0; }
 		
 		//'}'
-		public Keyword getRightCurlyBracketKeyword_3_2() { return cRightCurlyBracketKeyword_3_2; }
+		public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+		
+		//('fontFamily' defaultFontFamily=CanvasFontFamilyEnum)?
+		public Group getGroup_4() { return cGroup_4; }
+		
+		//'fontFamily'
+		public Keyword getFontFamilyKeyword_4_0() { return cFontFamilyKeyword_4_0; }
+		
+		//defaultFontFamily=CanvasFontFamilyEnum
+		public Assignment getDefaultFontFamilyAssignment_4_1() { return cDefaultFontFamilyAssignment_4_1; }
+		
+		//CanvasFontFamilyEnum
+		public RuleCall getDefaultFontFamilyCanvasFontFamilyEnumEnumRuleCall_4_1_0() { return cDefaultFontFamilyCanvasFontFamilyEnumEnumRuleCall_4_1_0; }
+		
+		//('{' charts+=Chart* '}')?
+		public Group getGroup_5() { return cGroup_5; }
+		
+		//'{'
+		public Keyword getLeftCurlyBracketKeyword_5_0() { return cLeftCurlyBracketKeyword_5_0; }
+		
+		//charts+=Chart*
+		public Assignment getChartsAssignment_5_1() { return cChartsAssignment_5_1; }
+		
+		//Chart
+		public RuleCall getChartsChartParserRuleCall_5_1_0() { return cChartsChartParserRuleCall_5_1_0; }
+		
+		//'}'
+		public Keyword getRightCurlyBracketKeyword_5_2() { return cRightCurlyBracketKeyword_5_2; }
+	}
+	public class SeriesColorElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.chart.ChartDSL.SeriesColor");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cSeriesColorAction_0 = (Action)cGroup.eContents().get(0);
+		private final Assignment cRgbAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cRgbSTRINGTerminalRuleCall_1_0 = (RuleCall)cRgbAssignment_1.eContents().get(0);
+		
+		//SeriesColor:
+		//	{SeriesColor} rgb=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{SeriesColor} rgb=STRING
+		public Group getGroup() { return cGroup; }
+		
+		//{SeriesColor}
+		public Action getSeriesColorAction_0() { return cSeriesColorAction_0; }
+		
+		//rgb=STRING
+		public Assignment getRgbAssignment_1() { return cRgbAssignment_1; }
+		
+		//STRING
+		public RuleCall getRgbSTRINGTerminalRuleCall_1_0() { return cRgbSTRINGTerminalRuleCall_1_0; }
 	}
 	public class ChartElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.chart.ChartDSL.Chart");
@@ -795,53 +864,105 @@
 	public class ChartLegendElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.chart.ChartDSL.ChartLegend");
 		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Keyword cLegendKeyword_0 = (Keyword)cGroup.eContents().get(0);
-		private final Assignment cPlacementAssignment_1 = (Assignment)cGroup.eContents().get(1);
-		private final RuleCall cPlacementLegendPlacementEnumEnumRuleCall_1_0 = (RuleCall)cPlacementAssignment_1.eContents().get(0);
-		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
-		private final Assignment cToggleAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
-		private final Keyword cToggleToggleKeyword_2_0_0 = (Keyword)cToggleAssignment_2_0.eContents().get(0);
-		private final Assignment cReplotAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
-		private final Keyword cReplotReplotKeyword_2_1_0 = (Keyword)cReplotAssignment_2_1.eContents().get(0);
-		private final Assignment cToggleTypeAssignment_2_2 = (Assignment)cGroup_2.eContents().get(2);
-		private final RuleCall cToggleTypeToggleTypeEnumEnumRuleCall_2_2_0 = (RuleCall)cToggleTypeAssignment_2_2.eContents().get(0);
+		private final Action cChartLegendAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cLegendKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cNoLegendAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final Keyword cNoLegendNoLegendKeyword_2_0 = (Keyword)cNoLegendAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Assignment cPlacementAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
+		private final RuleCall cPlacementLegendPlacementEnumEnumRuleCall_3_0_0 = (RuleCall)cPlacementAssignment_3_0.eContents().get(0);
+		private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1);
+		private final Assignment cToggleAssignment_3_1_0 = (Assignment)cGroup_3_1.eContents().get(0);
+		private final Keyword cToggleToggleKeyword_3_1_0_0 = (Keyword)cToggleAssignment_3_1_0.eContents().get(0);
+		private final Assignment cReplotAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
+		private final Keyword cReplotReplotKeyword_3_1_1_0 = (Keyword)cReplotAssignment_3_1_1.eContents().get(0);
+		private final Assignment cToggleTypeAssignment_3_1_2 = (Assignment)cGroup_3_1.eContents().get(2);
+		private final RuleCall cToggleTypeToggleTypeEnumEnumRuleCall_3_1_2_0 = (RuleCall)cToggleTypeAssignment_3_1_2.eContents().get(0);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cFontSizeKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Assignment cFontSizeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+		private final RuleCall cFontSizeINTTerminalRuleCall_4_1_0 = (RuleCall)cFontSizeAssignment_4_1.eContents().get(0);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cTextColorKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Assignment cTextColorAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+		private final RuleCall cTextColorSTRINGTerminalRuleCall_5_1_0 = (RuleCall)cTextColorAssignment_5_1.eContents().get(0);
 		
 		//ChartLegend:
-		//	'legend' placement=LegendPlacementEnum (toggle?='toggle' replot?='replot' toggleType=ToggleTypeEnum)?;
+		//	{ChartLegend}
+		//	'legend'
+		//	noLegend?='noLegend'? (placement=LegendPlacementEnum (toggle?='toggle' replot?='replot' toggleType=ToggleTypeEnum)?)?
+		//	('fontSize' fontSize=INT)? ('textColor' textColor=STRING)?;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//'legend' placement=LegendPlacementEnum (toggle?='toggle' replot?='replot' toggleType=ToggleTypeEnum)?
+		//{ChartLegend} 'legend' noLegend?='noLegend'? (placement=LegendPlacementEnum (toggle?='toggle' replot?='replot'
+		//toggleType=ToggleTypeEnum)?)? ('fontSize' fontSize=INT)? ('textColor' textColor=STRING)?
 		public Group getGroup() { return cGroup; }
 		
+		//{ChartLegend}
+		public Action getChartLegendAction_0() { return cChartLegendAction_0; }
+		
 		//'legend'
-		public Keyword getLegendKeyword_0() { return cLegendKeyword_0; }
+		public Keyword getLegendKeyword_1() { return cLegendKeyword_1; }
+		
+		//noLegend?='noLegend'?
+		public Assignment getNoLegendAssignment_2() { return cNoLegendAssignment_2; }
+		
+		//'noLegend'
+		public Keyword getNoLegendNoLegendKeyword_2_0() { return cNoLegendNoLegendKeyword_2_0; }
+		
+		//(placement=LegendPlacementEnum (toggle?='toggle' replot?='replot' toggleType=ToggleTypeEnum)?)?
+		public Group getGroup_3() { return cGroup_3; }
 		
 		//placement=LegendPlacementEnum
-		public Assignment getPlacementAssignment_1() { return cPlacementAssignment_1; }
+		public Assignment getPlacementAssignment_3_0() { return cPlacementAssignment_3_0; }
 		
 		//LegendPlacementEnum
-		public RuleCall getPlacementLegendPlacementEnumEnumRuleCall_1_0() { return cPlacementLegendPlacementEnumEnumRuleCall_1_0; }
+		public RuleCall getPlacementLegendPlacementEnumEnumRuleCall_3_0_0() { return cPlacementLegendPlacementEnumEnumRuleCall_3_0_0; }
 		
 		//(toggle?='toggle' replot?='replot' toggleType=ToggleTypeEnum)?
-		public Group getGroup_2() { return cGroup_2; }
+		public Group getGroup_3_1() { return cGroup_3_1; }
 		
 		//toggle?='toggle'
-		public Assignment getToggleAssignment_2_0() { return cToggleAssignment_2_0; }
+		public Assignment getToggleAssignment_3_1_0() { return cToggleAssignment_3_1_0; }
 		
 		//'toggle'
-		public Keyword getToggleToggleKeyword_2_0_0() { return cToggleToggleKeyword_2_0_0; }
+		public Keyword getToggleToggleKeyword_3_1_0_0() { return cToggleToggleKeyword_3_1_0_0; }
 		
 		//replot?='replot'
-		public Assignment getReplotAssignment_2_1() { return cReplotAssignment_2_1; }
+		public Assignment getReplotAssignment_3_1_1() { return cReplotAssignment_3_1_1; }
 		
 		//'replot'
-		public Keyword getReplotReplotKeyword_2_1_0() { return cReplotReplotKeyword_2_1_0; }
+		public Keyword getReplotReplotKeyword_3_1_1_0() { return cReplotReplotKeyword_3_1_1_0; }
 		
 		//toggleType=ToggleTypeEnum
-		public Assignment getToggleTypeAssignment_2_2() { return cToggleTypeAssignment_2_2; }
+		public Assignment getToggleTypeAssignment_3_1_2() { return cToggleTypeAssignment_3_1_2; }
 		
 		//ToggleTypeEnum
-		public RuleCall getToggleTypeToggleTypeEnumEnumRuleCall_2_2_0() { return cToggleTypeToggleTypeEnumEnumRuleCall_2_2_0; }
+		public RuleCall getToggleTypeToggleTypeEnumEnumRuleCall_3_1_2_0() { return cToggleTypeToggleTypeEnumEnumRuleCall_3_1_2_0; }
+		
+		//('fontSize' fontSize=INT)?
+		public Group getGroup_4() { return cGroup_4; }
+		
+		//'fontSize'
+		public Keyword getFontSizeKeyword_4_0() { return cFontSizeKeyword_4_0; }
+		
+		//fontSize=INT
+		public Assignment getFontSizeAssignment_4_1() { return cFontSizeAssignment_4_1; }
+		
+		//INT
+		public RuleCall getFontSizeINTTerminalRuleCall_4_1_0() { return cFontSizeINTTerminalRuleCall_4_1_0; }
+		
+		//('textColor' textColor=STRING)?
+		public Group getGroup_5() { return cGroup_5; }
+		
+		//'textColor'
+		public Keyword getTextColorKeyword_5_0() { return cTextColorKeyword_5_0; }
+		
+		//textColor=STRING
+		public Assignment getTextColorAssignment_5_1() { return cTextColorAssignment_5_1; }
+		
+		//STRING
+		public RuleCall getTextColorSTRINGTerminalRuleCall_5_1_0() { return cTextColorSTRINGTerminalRuleCall_5_1_0; }
 	}
 	public class ChartHighlighterElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.chart.ChartDSL.ChartHighlighter");
@@ -899,17 +1020,41 @@
 		private final Assignment cShortLabelAssignment_4 = (Assignment)cGroup.eContents().get(4);
 		private final Keyword cShortLabelShortLabelKeyword_4_0 = (Keyword)cShortLabelAssignment_4.eContents().get(0);
 		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
-		private final Keyword cAngleKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
-		private final Assignment cAngleAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
-		private final RuleCall cAngleSignedNumberParserRuleCall_5_1_0 = (RuleCall)cAngleAssignment_5_1.eContents().get(0);
+		private final Keyword cLabelAngleKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Assignment cLabelAngleAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+		private final RuleCall cLabelAngleSignedNumberParserRuleCall_5_1_0 = (RuleCall)cLabelAngleAssignment_5_1.eContents().get(0);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Keyword cLabelFontSizeKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
+		private final Assignment cLabelFontSizeAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
+		private final RuleCall cLabelFontSizeINTTerminalRuleCall_6_1_0 = (RuleCall)cLabelFontSizeAssignment_6_1.eContents().get(0);
+		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+		private final Keyword cLabelTextColorKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
+		private final Assignment cLabelTextColorAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
+		private final RuleCall cLabelTextColorSTRINGTerminalRuleCall_7_1_0 = (RuleCall)cLabelTextColorAssignment_7_1.eContents().get(0);
+		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
+		private final Keyword cTickAngleKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
+		private final Assignment cTickAngleAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
+		private final RuleCall cTickAngleSignedNumberParserRuleCall_8_1_0 = (RuleCall)cTickAngleAssignment_8_1.eContents().get(0);
+		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
+		private final Keyword cTickFontSizeKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
+		private final Assignment cTickFontSizeAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
+		private final RuleCall cTickFontSizeINTTerminalRuleCall_9_1_0 = (RuleCall)cTickFontSizeAssignment_9_1.eContents().get(0);
+		private final Group cGroup_10 = (Group)cGroup.eContents().get(10);
+		private final Keyword cTickTextColorKeyword_10_0 = (Keyword)cGroup_10.eContents().get(0);
+		private final Assignment cTickTextColorAssignment_10_1 = (Assignment)cGroup_10.eContents().get(1);
+		private final RuleCall cTickTextColorSTRINGTerminalRuleCall_10_1_0 = (RuleCall)cTickTextColorAssignment_10_1.eContents().get(0);
 		
 		//ChartAxis:
-		//	'axis' axis=[datamart::DatamartAxis] 'renders' renderType=RenderTypeEnum shortLabel?='shortLabel'? ('angle'
-		//	angle=SignedNumber)?;
+		//	'axis' axis=[datamart::DatamartAxis]
+		//	'renders' renderType=RenderTypeEnum
+		//	shortLabel?='shortLabel'? ('labelAngle' labelAngle=SignedNumber)? ('labelFontSize' labelFontSize=INT)?
+		//	('labelTextColor' labelTextColor=STRING)? ('tickAngle' tickAngle=SignedNumber)? ('tickFontSize' tickFontSize=INT)?
+		//	('tickTextColor' tickTextColor=STRING)?;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//'axis' axis=[datamart::DatamartAxis] 'renders' renderType=RenderTypeEnum shortLabel?='shortLabel'? ('angle'
-		//angle=SignedNumber)?
+		//'axis' axis=[datamart::DatamartAxis] 'renders' renderType=RenderTypeEnum shortLabel?='shortLabel'? ('labelAngle'
+		//labelAngle=SignedNumber)? ('labelFontSize' labelFontSize=INT)? ('labelTextColor' labelTextColor=STRING)? ('tickAngle'
+		//tickAngle=SignedNumber)? ('tickFontSize' tickFontSize=INT)? ('tickTextColor' tickTextColor=STRING)?
 		public Group getGroup() { return cGroup; }
 		
 		//'axis'
@@ -939,17 +1084,77 @@
 		//'shortLabel'
 		public Keyword getShortLabelShortLabelKeyword_4_0() { return cShortLabelShortLabelKeyword_4_0; }
 		
-		//('angle' angle=SignedNumber)?
+		//('labelAngle' labelAngle=SignedNumber)?
 		public Group getGroup_5() { return cGroup_5; }
 		
-		//'angle'
-		public Keyword getAngleKeyword_5_0() { return cAngleKeyword_5_0; }
+		//'labelAngle'
+		public Keyword getLabelAngleKeyword_5_0() { return cLabelAngleKeyword_5_0; }
 		
-		//angle=SignedNumber
-		public Assignment getAngleAssignment_5_1() { return cAngleAssignment_5_1; }
+		//labelAngle=SignedNumber
+		public Assignment getLabelAngleAssignment_5_1() { return cLabelAngleAssignment_5_1; }
 		
 		//SignedNumber
-		public RuleCall getAngleSignedNumberParserRuleCall_5_1_0() { return cAngleSignedNumberParserRuleCall_5_1_0; }
+		public RuleCall getLabelAngleSignedNumberParserRuleCall_5_1_0() { return cLabelAngleSignedNumberParserRuleCall_5_1_0; }
+		
+		//('labelFontSize' labelFontSize=INT)?
+		public Group getGroup_6() { return cGroup_6; }
+		
+		//'labelFontSize'
+		public Keyword getLabelFontSizeKeyword_6_0() { return cLabelFontSizeKeyword_6_0; }
+		
+		//labelFontSize=INT
+		public Assignment getLabelFontSizeAssignment_6_1() { return cLabelFontSizeAssignment_6_1; }
+		
+		//INT
+		public RuleCall getLabelFontSizeINTTerminalRuleCall_6_1_0() { return cLabelFontSizeINTTerminalRuleCall_6_1_0; }
+		
+		//('labelTextColor' labelTextColor=STRING)?
+		public Group getGroup_7() { return cGroup_7; }
+		
+		//'labelTextColor'
+		public Keyword getLabelTextColorKeyword_7_0() { return cLabelTextColorKeyword_7_0; }
+		
+		//labelTextColor=STRING
+		public Assignment getLabelTextColorAssignment_7_1() { return cLabelTextColorAssignment_7_1; }
+		
+		//STRING
+		public RuleCall getLabelTextColorSTRINGTerminalRuleCall_7_1_0() { return cLabelTextColorSTRINGTerminalRuleCall_7_1_0; }
+		
+		//('tickAngle' tickAngle=SignedNumber)?
+		public Group getGroup_8() { return cGroup_8; }
+		
+		//'tickAngle'
+		public Keyword getTickAngleKeyword_8_0() { return cTickAngleKeyword_8_0; }
+		
+		//tickAngle=SignedNumber
+		public Assignment getTickAngleAssignment_8_1() { return cTickAngleAssignment_8_1; }
+		
+		//SignedNumber
+		public RuleCall getTickAngleSignedNumberParserRuleCall_8_1_0() { return cTickAngleSignedNumberParserRuleCall_8_1_0; }
+		
+		//('tickFontSize' tickFontSize=INT)?
+		public Group getGroup_9() { return cGroup_9; }
+		
+		//'tickFontSize'
+		public Keyword getTickFontSizeKeyword_9_0() { return cTickFontSizeKeyword_9_0; }
+		
+		//tickFontSize=INT
+		public Assignment getTickFontSizeAssignment_9_1() { return cTickFontSizeAssignment_9_1; }
+		
+		//INT
+		public RuleCall getTickFontSizeINTTerminalRuleCall_9_1_0() { return cTickFontSizeINTTerminalRuleCall_9_1_0; }
+		
+		//('tickTextColor' tickTextColor=STRING)?
+		public Group getGroup_10() { return cGroup_10; }
+		
+		//'tickTextColor'
+		public Keyword getTickTextColorKeyword_10_0() { return cTickTextColorKeyword_10_0; }
+		
+		//tickTextColor=STRING
+		public Assignment getTickTextColorAssignment_10_1() { return cTickTextColorAssignment_10_1; }
+		
+		//STRING
+		public RuleCall getTickTextColorSTRINGTerminalRuleCall_10_1_0() { return cTickTextColorSTRINGTerminalRuleCall_10_1_0; }
 	}
 	public class ChartRangeElementElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.chart.ChartDSL.ChartRangeElement");
@@ -1233,9 +1438,84 @@
 		//'pyramid'
 		public Keyword getPYRAMIDPyramidKeyword_4_0() { return cPYRAMIDPyramidKeyword_4_0; }
 	}
+	public class CanvasFontFamilyEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.chart.ChartDSL.CanvasFontFamilyEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cDEFAULTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cDEFAULTDefaultKeyword_0_0 = (Keyword)cDEFAULTEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cARIALEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cARIALArialKeyword_1_0 = (Keyword)cARIALEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cVERDANAEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cVERDANAVerdanaKeyword_2_0 = (Keyword)cVERDANAEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cTIMESNEWROMANEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cTIMESNEWROMANTimesNewRomanKeyword_3_0 = (Keyword)cTIMESNEWROMANEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cCOURIERNEWEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cCOURIERNEWCourierNewKeyword_4_0 = (Keyword)cCOURIERNEWEnumLiteralDeclaration_4.eContents().get(0);
+		private final EnumLiteralDeclaration cSERIFEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+		private final Keyword cSERIFSerifKeyword_5_0 = (Keyword)cSERIFEnumLiteralDeclaration_5.eContents().get(0);
+		private final EnumLiteralDeclaration cSANSERIFEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
+		private final Keyword cSANSERIFSansSerifKeyword_6_0 = (Keyword)cSANSERIFEnumLiteralDeclaration_6.eContents().get(0);
+		
+		//enum CanvasFontFamilyEnum:
+		//	DEFAULT='Default' |
+		//	ARIAL='Arial' |
+		//	VERDANA='Verdana' |
+		//	TIMESNEWROMAN='Times New Roman' |
+		//	COURIERNEW='Courier New' |
+		//	SERIF='serif' |
+		//	SANSERIF='sans-serif';
+		public EnumRule getRule() { return rule; }
+		
+		//DEFAULT='Default' | ARIAL='Arial' | VERDANA='Verdana' | TIMESNEWROMAN='Times New Roman' | COURIERNEW='Courier New' |
+		//SERIF='serif' | SANSERIF='sans-serif'
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//DEFAULT='Default'
+		public EnumLiteralDeclaration getDEFAULTEnumLiteralDeclaration_0() { return cDEFAULTEnumLiteralDeclaration_0; }
+		
+		//'Default'
+		public Keyword getDEFAULTDefaultKeyword_0_0() { return cDEFAULTDefaultKeyword_0_0; }
+		
+		//ARIAL='Arial'
+		public EnumLiteralDeclaration getARIALEnumLiteralDeclaration_1() { return cARIALEnumLiteralDeclaration_1; }
+		
+		//'Arial'
+		public Keyword getARIALArialKeyword_1_0() { return cARIALArialKeyword_1_0; }
+		
+		//VERDANA='Verdana'
+		public EnumLiteralDeclaration getVERDANAEnumLiteralDeclaration_2() { return cVERDANAEnumLiteralDeclaration_2; }
+		
+		//'Verdana'
+		public Keyword getVERDANAVerdanaKeyword_2_0() { return cVERDANAVerdanaKeyword_2_0; }
+		
+		//TIMESNEWROMAN='Times New Roman'
+		public EnumLiteralDeclaration getTIMESNEWROMANEnumLiteralDeclaration_3() { return cTIMESNEWROMANEnumLiteralDeclaration_3; }
+		
+		//'Times New Roman'
+		public Keyword getTIMESNEWROMANTimesNewRomanKeyword_3_0() { return cTIMESNEWROMANTimesNewRomanKeyword_3_0; }
+		
+		//COURIERNEW='Courier New'
+		public EnumLiteralDeclaration getCOURIERNEWEnumLiteralDeclaration_4() { return cCOURIERNEWEnumLiteralDeclaration_4; }
+		
+		//'Courier New'
+		public Keyword getCOURIERNEWCourierNewKeyword_4_0() { return cCOURIERNEWCourierNewKeyword_4_0; }
+		
+		//SERIF='serif'
+		public EnumLiteralDeclaration getSERIFEnumLiteralDeclaration_5() { return cSERIFEnumLiteralDeclaration_5; }
+		
+		//'serif'
+		public Keyword getSERIFSerifKeyword_5_0() { return cSERIFSerifKeyword_5_0; }
+		
+		//SANSERIF='sans-serif'
+		public EnumLiteralDeclaration getSANSERIFEnumLiteralDeclaration_6() { return cSANSERIFEnumLiteralDeclaration_6; }
+		
+		//'sans-serif'
+		public Keyword getSANSERIFSansSerifKeyword_6_0() { return cSANSERIFSansSerifKeyword_6_0; }
+	}
 	
 	private final ChartModelElements pChartModel;
 	private final ChartPackageElements pChartPackage;
+	private final SeriesColorElements pSeriesColor;
 	private final ChartElements pChart;
 	private final ChartOptionElements pChartOption;
 	private final ChartBarElements pChartBar;
@@ -1261,6 +1541,7 @@
 	private final ToggleTypeEnumElements eToggleTypeEnum;
 	private final TooltipLocationEnumElements eTooltipLocationEnum;
 	private final RenderTypeEnumElements eRenderTypeEnum;
+	private final CanvasFontFamilyEnumElements eCanvasFontFamilyEnum;
 	
 	private final Grammar grammar;
 	
@@ -1285,6 +1566,7 @@
 		this.gaXtype = gaXtype;
 		this.pChartModel = new ChartModelElements();
 		this.pChartPackage = new ChartPackageElements();
+		this.pSeriesColor = new SeriesColorElements();
 		this.pChart = new ChartElements();
 		this.pChartOption = new ChartOptionElements();
 		this.pChartBar = new ChartBarElements();
@@ -1310,6 +1592,7 @@
 		this.eToggleTypeEnum = new ToggleTypeEnumElements();
 		this.eTooltipLocationEnum = new TooltipLocationEnumElements();
 		this.eRenderTypeEnum = new RenderTypeEnumElements();
+		this.eCanvasFontFamilyEnum = new CanvasFontFamilyEnumElements();
 	}
 	
 	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
@@ -1363,7 +1646,8 @@
 	}
 	
 	//ChartPackage:
-	//	{ChartPackage} 'package' name=QualifiedName ('{' charts+=Chart* '}')?;
+	//	{ChartPackage} 'package' name=QualifiedName (hasColors?='seriesColors' '{' colors+=SeriesColor* '}')? ('fontFamily'
+	//	defaultFontFamily=CanvasFontFamilyEnum)? ('{' charts+=Chart* '}')?;
 	public ChartPackageElements getChartPackageAccess() {
 		return pChartPackage;
 	}
@@ -1372,6 +1656,16 @@
 		return getChartPackageAccess().getRule();
 	}
 	
+	//SeriesColor:
+	//	{SeriesColor} rgb=STRING;
+	public SeriesColorElements getSeriesColorAccess() {
+		return pSeriesColor;
+	}
+	
+	public ParserRule getSeriesColorRule() {
+		return getSeriesColorAccess().getRule();
+	}
+	
 	//Chart:
 	//	{Chart} 'chart' name=TRANSLATABLEID (description?='describedBy' descriptionValue=TRANSLATABLESTRING)?
 	//	'as' charttype=ChartOption (selectById?='selectById'? & ('toolbar' toolbar=[action::ActionToolbar])?) ('using'
@@ -1508,7 +1802,10 @@
 	}
 	
 	//ChartLegend:
-	//	'legend' placement=LegendPlacementEnum (toggle?='toggle' replot?='replot' toggleType=ToggleTypeEnum)?;
+	//	{ChartLegend}
+	//	'legend'
+	//	noLegend?='noLegend'? (placement=LegendPlacementEnum (toggle?='toggle' replot?='replot' toggleType=ToggleTypeEnum)?)?
+	//	('fontSize' fontSize=INT)? ('textColor' textColor=STRING)?;
 	public ChartLegendElements getChartLegendAccess() {
 		return pChartLegend;
 	}
@@ -1528,8 +1825,11 @@
 	}
 	
 	//ChartAxis:
-	//	'axis' axis=[datamart::DatamartAxis] 'renders' renderType=RenderTypeEnum shortLabel?='shortLabel'? ('angle'
-	//	angle=SignedNumber)?;
+	//	'axis' axis=[datamart::DatamartAxis]
+	//	'renders' renderType=RenderTypeEnum
+	//	shortLabel?='shortLabel'? ('labelAngle' labelAngle=SignedNumber)? ('labelFontSize' labelFontSize=INT)?
+	//	('labelTextColor' labelTextColor=STRING)? ('tickAngle' tickAngle=SignedNumber)? ('tickFontSize' tickFontSize=INT)?
+	//	('tickTextColor' tickTextColor=STRING)?;
 	public ChartAxisElements getChartAxisAccess() {
 		return pChartAxis;
 	}
@@ -1629,6 +1929,22 @@
 		return getRenderTypeEnumAccess().getRule();
 	}
 	
+	//enum CanvasFontFamilyEnum:
+	//	DEFAULT='Default' |
+	//	ARIAL='Arial' |
+	//	VERDANA='Verdana' |
+	//	TIMESNEWROMAN='Times New Roman' |
+	//	COURIERNEW='Courier New' |
+	//	SERIF='serif' |
+	//	SANSERIF='sans-serif';
+	public CanvasFontFamilyEnumElements getCanvasFontFamilyEnumAccess() {
+		return eCanvasFontFamilyEnum;
+	}
+	
+	public EnumRule getCanvasFontFamilyEnumRule() {
+		return getCanvasFontFamilyEnumAccess().getRule();
+	}
+	
 	//@ Override XImportDeclaration OXImportDeclaration:
 	//	{OXImportDeclaration}
 	//	'import' (static?='static' extension?='extension'? importedType=[JvmDeclaredType|QualifiedNameInStaticImport]
diff --git a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/ChartDSL.xtext b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/ChartDSL.xtext
index ddb4e67..e898a4a 100644
--- a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/ChartDSL.xtext
+++ b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/ChartDSL.xtext
@@ -29,8 +29,14 @@
 	packages+=ChartPackage*;
 
 ChartPackage:
-	{ChartPackage} 'package' name=QualifiedName ('{'  (charts+=Chart)* '}' )?;
+	{ChartPackage} 'package' name=QualifiedName
+	(hasColors?='seriesColors' '{'  (colors+=SeriesColor)* '}' )?
+	('fontFamily' defaultFontFamily=CanvasFontFamilyEnum)?
+	('{'  (charts+=Chart)* '}' )?;
 
+SeriesColor:
+	{SeriesColor} rgb=STRING;
+	
 Chart:
 	{Chart} 'chart' name=TRANSLATABLEID (description?='describedBy' descriptionValue=TRANSLATABLESTRING)? 
 	'as' charttype=ChartOption 
@@ -74,13 +80,26 @@
 	ChartAxis | ChartLegend | ChartHighlighter;
 	
 ChartLegend:
-	'legend' placement=LegendPlacementEnum (toggle?='toggle' replot?='replot' toggleType=ToggleTypeEnum)?;
+	{ChartLegend}
+	'legend' 
+	(noLegend?='noLegend')?
+	(placement=LegendPlacementEnum (toggle?='toggle' replot?='replot' toggleType=ToggleTypeEnum)?)?
+	('fontSize' fontSize=INT)?
+	('textColor' textColor=STRING)?;
 	
 ChartHighlighter:
 	'tooltip' location=TooltipLocationEnum ((tooltipAlways?='always')? (insideChart?='inside')?);
 	
 ChartAxis:
-	'axis' axis=[datamart::DatamartAxis] 'renders' renderType=RenderTypeEnum (shortLabel?='shortLabel')? ('angle' angle=SignedNumber)?;
+	'axis' axis=[datamart::DatamartAxis] 
+	'renders' renderType=RenderTypeEnum 
+	(shortLabel?='shortLabel')? 
+	('labelAngle' labelAngle=SignedNumber)?
+	('labelFontSize' labelFontSize=INT)?
+	('labelTextColor' labelTextColor=STRING)?
+	('tickAngle' tickAngle=SignedNumber)?
+	('tickFontSize' tickFontSize=INT)?
+	('tickTextColor' tickTextColor=STRING)?;
 	
 ChartRangeElement:
 	ChartSegmentColor;
@@ -107,4 +126,13 @@
 	
 enum RenderTypeEnum:
 	CATEGORY='category' | LINEAR='linear' | DATE='date' | LOG='logarithmic' |PYRAMID='pyramid';
-	
+
+enum CanvasFontFamilyEnum:
+	DEFAULT='Default'|	
+	ARIAL='Arial'|
+	VERDANA='Verdana'|
+	TIMESNEWROMAN='Times New Roman'|
+	COURIERNEW='Courier New'|
+	SERIF='serif'|
+	SANSERIF='sans-serif';
+	
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.xtend b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.xtend
index 1294fbd..3ce7589 100644
--- a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.xtend
+++ b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.xtend
@@ -100,6 +100,8 @@
 import org.osgi.service.event.EventHandler
 import org.slf4j.Logger
 import com.vaadin.annotations.JavaScript
+import java.util.stream.Collectors
+import org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum
 
 /**
  * <p>
@@ -599,6 +601,8 @@
 		var ChartAxis outer_axis = null 
 		var axisSwitch = false;
 		var axisPrefix = 'XY'
+		var CanvasFontFamilyEnum fontFamily = (chart.eContainer as ChartPackage).defaultFontFamily
+		
 		if (chart.charttype instanceof ChartBar) {
 			if ((chart.charttype as ChartBar).swapped) {
 				axisPrefix = 'YX'
@@ -800,7 +804,7 @@
 		'''
 		if (chart.charttype instanceof ChartPie || chart.charttype instanceof ChartDonut) {
 			body = '''
-			«body»				dataSeries.add(«outer_axis.axis.name.literal»TitlesArray.get(«outer_axis.axis.name.literal»No)+" "+«inner_axis.axis.name.literal»TitlesArray.get(«inner_axis.axis.name.literal»No),(value == null ? 0.0 : value));
+			«body»				dataSeries.add(«outer_axis.axis.name.literal»TitlesArray.get(«outer_axis.axis.name.literal»No),(value == null ? 0.0 : value));
 			'''
 		}
 		else {
@@ -916,12 +920,13 @@
 				'''
 			}
 		}
-		body = '''
-		«body»
-		String[] seriesColors = {"#98E958","#3090F0","#EC6464","#F9DD51","#24DCD4","#EC64A5","#685CB0","#FF7D42","#AA514D","#7FB053","#BBA85B","#247981"};
-«««		String[] seriesColors = {"#0000FF","#FF0000","#00FF00","#FFFF00","#FF00FF","#00FFFF","#FF4500","#008000","#00BFFF","#FF69B4","#FFD700","#000080"};
-		options.setSeriesColors(seriesColors);
-		'''
+		if((chart.eContainer as ChartPackage).hasColors) {
+			body = '''
+			«body»
+			String[] seriesColors = «(chart.eContainer as ChartPackage).colors.stream.map['''"«it.rgb.toHex»"'''].collect(Collectors.joining(",", "{", "}"))»;
+			options.setSeriesColors(seriesColors);
+			'''
+		} 
 		if (hasAxis) {
 			// axes
 			body = '''
@@ -930,33 +935,36 @@
 			if (chart.charttype instanceof ChartBubble) {
 				// x
 				body = '''
-				«body»CanvasAxisTickRenderer axisTickRenderer = new CanvasAxisTickRenderer();
-				axisTickRenderer.setTextColor("#202020");
+				«body»
+				«data_axis.canvasAxisRenderer("x", "Tick", fontFamily)»
+				«data_axis.canvasAxisRenderer("x", "Label", fontFamily)»
 				if («data_axis.axis.name.literal»TitlesArray.size() > 0) {
-					axes.addAxis(new XYaxis(XYaxes.«axisPrefix.charAt(0)»).setLabel(«data_axis.axis.name.literal»TitlesArray.get(0)).setTickOptions(axisTickRenderer«IF category_axis.angle!=0».setAngle(«data_axis.angle»)«ENDIF»));
-					axes.addAxis(new XYaxis(XYaxes.«axisPrefix.charAt(1)»).setLabel(«data_axis.axis.name.literal»TitlesArray.get(1)).setTickOptions(axisTickRenderer«IF category_axis.angle!=0».setAngle(«data_axis.angle»)«ENDIF»));
-					axes.addAxis(new XYaxis(XYaxes.«axisPrefix.charAt(1)»2).setLabel(«data_axis.axis.name.literal»TitlesArray.get(2)).setTickOptions(axisTickRenderer«IF category_axis.angle!=0».setAngle(«data_axis.angle»)«ENDIF»));
+					axes.addAxis(new XYaxis(XYaxes.«axisPrefix.charAt(0)»).setLabel(«data_axis.axis.name.literal»TitlesArray.get(0)).setTickOptions(xTickRenderer).setLabelOptions(xLabelRenderer));
+					axes.addAxis(new XYaxis(XYaxes.«axisPrefix.charAt(1)»).setLabel(«data_axis.axis.name.literal»TitlesArray.get(1)).setTickOptions(xTickRenderer).setLabelOptions(xLabelRenderer));
+					axes.addAxis(new XYaxis(XYaxes.«axisPrefix.charAt(1)»2).setLabel(«data_axis.axis.name.literal»TitlesArray.get(2)).setTickOptions(xTickRenderer).setLabelOptions(xLabelRenderer));
 				}
 				'''							
 			}
 			else {
 				// x
 				body = '''
-				«body»CanvasAxisTickRenderer tickRenderer = new CanvasAxisTickRenderer();
-				tickRenderer.setTextColor("#202020");
+				«body»
+				«category_axis.canvasAxisRenderer("x", "Tick", fontFamily)»
+				«category_axis.canvasAxisRenderer("x", "Label", fontFamily)»
 				axes.addAxis(new XYaxis(XYaxes.«axisPrefix.charAt(0)»)
 					.setRenderer(AxisRenderers.«category_axis.renderType.name().toString»)
 					.setLabel(«category_axis.axis.name.literal»AxisLabel)
 					.setTicks(«category_axis.axis.name.literal»Ticks)
-					.setTickOptions(tickRenderer«IF category_axis.angle!=0».setAngle(«category_axis.angle»)«ENDIF»));
+					.setTickOptions(xTickRenderer)
+					.setLabelOptions(xLabelRenderer));
 				'''							
 				// y .. y9
 				body = '''
-				«body»CanvasAxisTickRenderer axisTickRenderer = new CanvasAxisTickRenderer();
-				axisTickRenderer.setTextColor("#202020");
+				«body»
+				«data_axis.canvasAxisRenderer("y", "Tick", fontFamily)»
 				axes.addAxis(new XYaxis(XYaxes.«axisPrefix.charAt(1)»)
 					.setPad(1.05f)
-					.setTickOptions(axisTickRenderer«IF data_axis.angle!=0».setAngle(«data_axis.angle»)«ENDIF»));
+					.setTickOptions(yTickRenderer));
 				'''
 				// additional axes
 				for (axisKey : multipleAxes.keySet) {
@@ -981,53 +989,87 @@
 			'''
 		}		
 		// legend
+		var hadLegend = false 
 		for (element : chart.source.elements) {
 			if (element instanceof ChartLegend) {
 				var legend = element as ChartLegend
-				body = '''
-				«body»Legend legend = new Legend().setShow(«(legend !== null).booleanValue.toString»);
-				'''
-				body = '''
-				«body»legend.setPlacement(LegendPlacements.«legend.placement.name()»);
-				'''
-				if (legend.toggle) {
+				if(legend.noLegend) {
+					hadLegend = true
+				} else {
+					hadLegend = true
 					body = '''
-					«body»EnhancedLegendRenderer renderer = new EnhancedLegendRenderer();
-					renderer.setSeriesToggle(SeriesToggles.«legend.toggleType.getName»);
-					renderer.setSeriesToggleReplot(«legend.replot.booleanValue.toString»);
-					legend.setRendererOptions(renderer);
+					«body»
+					Legend legend = new Legend().setShow(«(legend !== null).booleanValue.toString»);
+					legend.setPlacement(LegendPlacements.«legend.placement.name()»);
+					'''
+					if (legend.toggle) {
+						body = '''
+						«body»
+						EnhancedLegendRenderer renderer = new EnhancedLegendRenderer();
+						renderer.setSeriesToggle(SeriesToggles.«legend.toggleType.getName»);
+						renderer.setSeriesToggleReplot(«legend.replot.booleanValue.toString»);
+						legend.setRendererOptions(renderer);
+						«IF legend.textColor !== null»legend.setTextColor("«legend.textColor.toHex»");«ENDIF»
+						«IF legend.fontSize !== 0»legend.setFontSize("«legend.fontSize»pt");«ENDIF»
+						«IF !fontFamily.equals(CanvasFontFamilyEnum.DEFAULT)»legend.setFontFamily("«fontFamily.literal»");«ENDIF»
+						'''
+					}
+					body = '''
+					«body»options.setLegend(legend);
 					'''
 				}
-				body = '''
-				«body»options.setLegend(legend);
-				'''
 			}
 		}
+		if(!hadLegend) {
+			body = '''
+			«body»
+			Legend legend = new Legend().setShow(true);
+			legend.setPlacement(LegendPlacements.OUTSIDE_GRID);
+			EnhancedLegendRenderer renderer = new EnhancedLegendRenderer();
+			renderer.setSeriesToggle(SeriesToggles.FAST);
+			renderer.setSeriesToggleReplot(true);
+			legend.setRendererOptions(renderer);
+			«IF !fontFamily.equals(CanvasFontFamilyEnum.DEFAULT)»legend.setFontFamily("«fontFamily.literal»");«ENDIF»
+			options.setLegend(legend);
+			'''
+		}
 			
 		// highlighter
+		var hadHighlighter = false
 		for (element : chart.source.elements) {
 			if (element instanceof ChartHighlighter) {
+				hadHighlighter = true
 				var highlighter = element as ChartHighlighter
 				body = '''
-				«body»Highlighter highlighter = new Highlighter().setShow(«(highlighter !== null).booleanValue.toString»);
-				'''
-				body = '''
-				«body»highlighter.setShowTooltip(true)
-				.setTooltipAlwaysVisible(«highlighter.tooltipAlways.booleanValue.toString»)
-				.setKeepTooltipInsideChart(«highlighter.insideChart.booleanValue.toString»)
-				.setTooltipLocation(TooltipLocations.«highlighter.location.name()»)
-				.setBringSeriesToFront(true)
-				.setFadeTooltip(true)
-				.setShowMarker(true);
-				'''
-				body = '''
-				«body»highlighter.setTooltipAxes(TooltipAxes.«axisPrefix»«postfix»);
-				'''
-				body = '''
-				«body»options.setHighlighter(highlighter);
+				«body»
+				Highlighter highlighter = new Highlighter().setShow(«(highlighter !== null).booleanValue.toString»);
+				highlighter.setShowTooltip(true)
+					.setTooltipAlwaysVisible(«highlighter.tooltipAlways.booleanValue.toString»)
+					.setKeepTooltipInsideChart(«highlighter.insideChart.booleanValue.toString»)
+					.setTooltipLocation(TooltipLocations.«highlighter.location.name()»)
+					.setBringSeriesToFront(true)
+					.setFadeTooltip(true)
+					.setShowMarker(true);
+				highlighter.setTooltipAxes(TooltipAxes.«axisPrefix»«postfix»);
+				options.setHighlighter(highlighter);
 				'''
 			}
 		}
+		if(!hadHighlighter) {
+				body = '''
+				«body»
+				Highlighter highlighter = new Highlighter().setShow(true);
+				highlighter.setShowTooltip(true)
+					.setTooltipAlwaysVisible(true)
+					.setKeepTooltipInsideChart(true)
+					.setTooltipLocation(TooltipLocations.NORTH_EAST)
+					.setBringSeriesToFront(true)
+					.setFadeTooltip(true)
+					.setShowMarker(true);
+				highlighter.setTooltipAxes(TooltipAxes.«axisPrefix»«postfix»);
+				options.setHighlighter(highlighter);
+				'''
+		}
 		
 		// cursor
 		if (chart.charttype instanceof ChartLine) {
@@ -1056,10 +1098,6 @@
 		«body»DCharts chart = new DCharts();
 		chart.setDataSeries(dataSeries);
 		chart.setOptions(options);
-«««		chart.setEnableDownload(true);
-«««		chart.setDownloadButtonCaption(dslMetadataService.translate(user.getLocale().toLanguageTag(), "download"));
-«««		chart.setDownloadFilename("«chart.name»");
-«««		chart.setDownloadButtonLocation(DownloadButtonLocation.TOP_RIGHT);
 		chart.setEnableChartImageChangeEvent(true);
 		'''
 		body = '''
@@ -1087,6 +1125,24 @@
 		return body
 	}
 	
+	def canvasAxisRenderer(ChartAxis axis, String axisName, String typeName, CanvasFontFamilyEnum fontFamily)
+		'''
+		CanvasAxis«typeName»Renderer «axisName»«typeName»Renderer = new CanvasAxis«typeName»Renderer();
+		«IF "Tick".equals(typeName)»
+		«axisName»«typeName»Renderer.setTextColor(«IF axis.tickTextColor !== null»"«axis.tickTextColor.toHex»"«ELSE»"#202020"«ENDIF»);
+		«IF axis.tickFontSize !== 0»«axisName»«typeName»Renderer.setFontSize("«axis.tickFontSize»pt");«ENDIF»
+		«IF axis.tickAngle!=0»«axisName»«typeName»Renderer.setAngle(«axis.tickAngle»);«ENDIF»
+		«ELSE»
+		«axisName»«typeName»Renderer.setTextColor(«IF axis.labelTextColor !== null»"«axis.labelTextColor.toHex»"«ELSE»"#202020"«ENDIF»);
+		«IF axis.labelFontSize !== 0»«axisName»«typeName»Renderer.setFontSize("«axis.labelFontSize»pt");«ENDIF»
+		«IF axis.labelAngle!=0»«axisName»«typeName»Renderer.setAngle(«axis.labelAngle»);«ENDIF»
+		«ENDIF»
+		«IF !fontFamily.equals(CanvasFontFamilyEnum.DEFAULT)»
+		«axisName»«typeName»Renderer.setEnableFontSupport(true);
+		«axisName»«typeName»Renderer.setFontFamily("«fontFamily.literal»");
+		«ENDIF»
+		'''
+	
 	/**
 	 * <p>helper method to convert a rgb string to a hex string.</p> 
 	 *
@@ -1186,7 +1242,7 @@
 		if (!multipleAxes.keySet.contains(scaleName)) {
 			// axis 1 is never expressed, but 2..9
 			multipleBody = 
-			'''axes.addAxis(new XYaxis(XYaxes.«axisPrefix.charAt(1)»«IF scaleOrdinal != 0»«(scaleOrdinal+1)»«ENDIF»).setTickOptions(axisTickRenderer«IF data_axis.angle!=0».setAngle(«data_axis.angle»)«ENDIF»));
+			'''axes.addAxis(new XYaxis(XYaxes.«axisPrefix.charAt(1)»«IF scaleOrdinal != 0»«(scaleOrdinal+1)»«ENDIF»).setTickOptions(yTickRenderer«IF data_axis.tickAngle!=0».setAngle(«data_axis.tickAngle»)«ENDIF»));
 			'''
 			multipleAxes.put(scaleName, multipleBody)
 		}
diff --git a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.xtend b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.xtend
index 36b53ac..ac5e0a2 100644
--- a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.xtend
+++ b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.xtend
@@ -82,6 +82,7 @@
 import org.dussan.vaadin.dcharts.options.SeriesDefaults
 import org.dussan.vaadin.dcharts.options.Title
 import org.dussan.vaadin.dcharts.renderers.axis.LinearAxisRenderer
+import org.dussan.vaadin.dcharts.renderers.label.CanvasAxisLabelRenderer
 import org.dussan.vaadin.dcharts.renderers.legend.EnhancedLegendRenderer
 import org.dussan.vaadin.dcharts.renderers.series.BarRenderer
 import org.dussan.vaadin.dcharts.renderers.series.BubbleRenderer
@@ -162,6 +163,7 @@
 			, SeriesDefaults
 			, SeriesRenderers
 			, CanvasAxisTickRenderer
+			, CanvasAxisLabelRenderer
 			, DonutRenderer
 			, PieRenderer
 			, BubbleRenderer
diff --git a/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.java b/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.java
index a83f74e..54d106e 100644
--- a/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.java
+++ b/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.java
@@ -33,6 +33,8 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
@@ -60,6 +62,7 @@
 import org.eclipse.osbp.ui.api.user.IUser;
 import org.eclipse.osbp.xtext.action.ActionPackage;
 import org.eclipse.osbp.xtext.action.ActionToolbar;
+import org.eclipse.osbp.xtext.chart.CanvasFontFamilyEnum;
 import org.eclipse.osbp.xtext.chart.Chart;
 import org.eclipse.osbp.xtext.chart.ChartAxis;
 import org.eclipse.osbp.xtext.chart.ChartBar;
@@ -79,6 +82,7 @@
 import org.eclipse.osbp.xtext.chart.ChartRangeElement;
 import org.eclipse.osbp.xtext.chart.ChartSegmentColor;
 import org.eclipse.osbp.xtext.chart.ChartTree;
+import org.eclipse.osbp.xtext.chart.SeriesColor;
 import org.eclipse.osbp.xtext.chart.jvmmodel.D3JsJavaUtil;
 import org.eclipse.osbp.xtext.cubedsl.CubeLevel;
 import org.eclipse.osbp.xtext.datamart.common.olap.DerivedCellSet;
@@ -1157,6 +1161,8 @@
     ChartAxis outer_axis = null;
     boolean axisSwitch = false;
     String axisPrefix = "XY";
+    EObject _eContainer = chart.eContainer();
+    CanvasFontFamilyEnum fontFamily = ((ChartPackage) _eContainer).getDefaultFontFamily();
     ChartOption _charttype = chart.getCharttype();
     if ((_charttype instanceof ChartBar)) {
       ChartOption _charttype_1 = chart.getCharttype();
@@ -1643,12 +1649,6 @@
       _builder_25.append("TitlesArray.get(");
       String _literal_27 = outer_axis.getAxis().getName().getLiteral();
       _builder_25.append(_literal_27);
-      _builder_25.append("No)+\" \"+");
-      String _literal_28 = inner_axis.getAxis().getName().getLiteral();
-      _builder_25.append(_literal_28);
-      _builder_25.append("TitlesArray.get(");
-      String _literal_29 = inner_axis.getAxis().getName().getLiteral();
-      _builder_25.append(_literal_29);
       _builder_25.append("No),(value == null ? 0.0 : value));");
       _builder_25.newLineIfNotEmpty();
       body = _builder_25.toString();
@@ -1656,8 +1656,8 @@
       StringConcatenation _builder_26 = new StringConcatenation();
       _builder_26.append(body);
       _builder_26.append("\t\t\t\t");
-      String _literal_30 = inner_axis.getAxis().getName().getLiteral();
-      _builder_26.append(_literal_30);
+      String _literal_28 = inner_axis.getAxis().getName().getLiteral();
+      _builder_26.append(_literal_28);
       _builder_26.append("DataSeries.add(value == null ? 0.0 : value);");
       _builder_26.newLineIfNotEmpty();
       body = _builder_26.toString();
@@ -1665,8 +1665,8 @@
     StringConcatenation _builder_27 = new StringConcatenation();
     _builder_27.append(body);
     _builder_27.append("\t\t\t\t");
-    String _literal_31 = inner_axis.getAxis().getName().getLiteral();
-    _builder_27.append(_literal_31);
+    String _literal_29 = inner_axis.getAxis().getName().getLiteral();
+    _builder_27.append(_literal_29);
     _builder_27.append("No ++;");
     _builder_27.newLineIfNotEmpty();
     _builder_27.append("\t\t\t");
@@ -1682,14 +1682,14 @@
         StringConcatenation _builder_28 = new StringConcatenation();
         _builder_28.append(body);
         _builder_28.append("\t\t\t");
-        String _literal_32 = inner_axis.getAxis().getName().getLiteral();
-        _builder_28.append(_literal_32);
+        String _literal_30 = inner_axis.getAxis().getName().getLiteral();
+        _builder_28.append(_literal_30);
         _builder_28.append("DataSeries.add(");
-        String _literal_33 = outer_axis.getAxis().getName().getLiteral();
-        _builder_28.append(_literal_33);
+        String _literal_31 = outer_axis.getAxis().getName().getLiteral();
+        _builder_28.append(_literal_31);
         _builder_28.append("TitlesArray.get(");
-        String _literal_34 = outer_axis.getAxis().getName().getLiteral();
-        _builder_28.append(_literal_34);
+        String _literal_32 = outer_axis.getAxis().getName().getLiteral();
+        _builder_28.append(_literal_32);
         _builder_28.append("No));");
         _builder_28.newLineIfNotEmpty();
         body = _builder_28.toString();
@@ -1697,8 +1697,8 @@
       StringConcatenation _builder_29 = new StringConcatenation();
       _builder_29.append(body);
       _builder_29.append("\t\tdataSeries.add(");
-      String _literal_35 = inner_axis.getAxis().getName().getLiteral();
-      _builder_29.append(_literal_35);
+      String _literal_33 = inner_axis.getAxis().getName().getLiteral();
+      _builder_29.append(_literal_33);
       _builder_29.append("DataSeries.toArray());");
       _builder_29.newLineIfNotEmpty();
       body = _builder_29.toString();
@@ -1708,8 +1708,8 @@
     _builder_30.append("\t}");
     _builder_30.newLineIfNotEmpty();
     _builder_30.append("\t");
-    String _literal_36 = outer_axis.getAxis().getName().getLiteral();
-    _builder_30.append(_literal_36, "\t");
+    String _literal_34 = outer_axis.getAxis().getName().getLiteral();
+    _builder_30.append(_literal_34, "\t");
     _builder_30.append("No ++;");
     _builder_30.newLineIfNotEmpty();
     _builder_30.append("}");
@@ -1986,14 +1986,30 @@
         }
       }
     }
-    StringConcatenation _builder_45 = new StringConcatenation();
-    _builder_45.append(body);
-    _builder_45.newLineIfNotEmpty();
-    _builder_45.append("String[] seriesColors = {\"#98E958\",\"#3090F0\",\"#EC6464\",\"#F9DD51\",\"#24DCD4\",\"#EC64A5\",\"#685CB0\",\"#FF7D42\",\"#AA514D\",\"#7FB053\",\"#BBA85B\",\"#247981\"};");
-    _builder_45.newLine();
-    _builder_45.append("options.setSeriesColors(seriesColors);");
-    _builder_45.newLine();
-    body = _builder_45.toString();
+    EObject _eContainer_1 = chart.eContainer();
+    boolean _isHasColors = ((ChartPackage) _eContainer_1).isHasColors();
+    if (_isHasColors) {
+      StringConcatenation _builder_45 = new StringConcatenation();
+      _builder_45.append(body);
+      _builder_45.newLineIfNotEmpty();
+      _builder_45.append("String[] seriesColors = ");
+      EObject _eContainer_2 = chart.eContainer();
+      final Function<SeriesColor, String> _function = (SeriesColor it) -> {
+        StringConcatenation _builder_46 = new StringConcatenation();
+        _builder_46.append("\"");
+        String _hex_1 = this.toHex(it.getRgb());
+        _builder_46.append(_hex_1);
+        _builder_46.append("\"");
+        return _builder_46.toString();
+      };
+      String _collect = ((ChartPackage) _eContainer_2).getColors().stream().<String>map(_function).collect(Collectors.joining(",", "{", "}"));
+      _builder_45.append(_collect);
+      _builder_45.append(";");
+      _builder_45.newLineIfNotEmpty();
+      _builder_45.append("options.setSeriesColors(seriesColors);");
+      _builder_45.newLine();
+      body = _builder_45.toString();
+    }
     if (hasAxis) {
       StringConcatenation _builder_46 = new StringConcatenation();
       _builder_46.append(body);
@@ -2004,13 +2020,16 @@
       if ((_charttype_38 instanceof ChartBubble)) {
         StringConcatenation _builder_47 = new StringConcatenation();
         _builder_47.append(body);
-        _builder_47.append("CanvasAxisTickRenderer axisTickRenderer = new CanvasAxisTickRenderer();");
         _builder_47.newLineIfNotEmpty();
-        _builder_47.append("axisTickRenderer.setTextColor(\"#202020\");");
-        _builder_47.newLine();
+        CharSequence _canvasAxisRenderer = this.canvasAxisRenderer(data_axis, "x", "Tick", fontFamily);
+        _builder_47.append(_canvasAxisRenderer);
+        _builder_47.newLineIfNotEmpty();
+        CharSequence _canvasAxisRenderer_1 = this.canvasAxisRenderer(data_axis, "x", "Label", fontFamily);
+        _builder_47.append(_canvasAxisRenderer_1);
+        _builder_47.newLineIfNotEmpty();
         _builder_47.append("if (");
-        String _literal_37 = data_axis.getAxis().getName().getLiteral();
-        _builder_47.append(_literal_37);
+        String _literal_35 = data_axis.getAxis().getName().getLiteral();
+        _builder_47.append(_literal_35);
         _builder_47.append("TitlesArray.size() > 0) {");
         _builder_47.newLineIfNotEmpty();
         _builder_47.append("\t");
@@ -2018,60 +2037,27 @@
         char _charAt = axisPrefix.charAt(0);
         _builder_47.append(_charAt, "\t");
         _builder_47.append(").setLabel(");
-        String _literal_38 = data_axis.getAxis().getName().getLiteral();
-        _builder_47.append(_literal_38, "\t");
-        _builder_47.append("TitlesArray.get(0)).setTickOptions(axisTickRenderer");
-        {
-          int _angle = category_axis.getAngle();
-          boolean _notEquals = (_angle != 0);
-          if (_notEquals) {
-            _builder_47.append(".setAngle(");
-            int _angle_1 = data_axis.getAngle();
-            _builder_47.append(_angle_1, "\t");
-            _builder_47.append(")");
-          }
-        }
-        _builder_47.append("));");
+        String _literal_36 = data_axis.getAxis().getName().getLiteral();
+        _builder_47.append(_literal_36, "\t");
+        _builder_47.append("TitlesArray.get(0)).setTickOptions(xTickRenderer).setLabelOptions(xLabelRenderer));");
         _builder_47.newLineIfNotEmpty();
         _builder_47.append("\t");
         _builder_47.append("axes.addAxis(new XYaxis(XYaxes.");
         char _charAt_1 = axisPrefix.charAt(1);
         _builder_47.append(_charAt_1, "\t");
         _builder_47.append(").setLabel(");
-        String _literal_39 = data_axis.getAxis().getName().getLiteral();
-        _builder_47.append(_literal_39, "\t");
-        _builder_47.append("TitlesArray.get(1)).setTickOptions(axisTickRenderer");
-        {
-          int _angle_2 = category_axis.getAngle();
-          boolean _notEquals_1 = (_angle_2 != 0);
-          if (_notEquals_1) {
-            _builder_47.append(".setAngle(");
-            int _angle_3 = data_axis.getAngle();
-            _builder_47.append(_angle_3, "\t");
-            _builder_47.append(")");
-          }
-        }
-        _builder_47.append("));");
+        String _literal_37 = data_axis.getAxis().getName().getLiteral();
+        _builder_47.append(_literal_37, "\t");
+        _builder_47.append("TitlesArray.get(1)).setTickOptions(xTickRenderer).setLabelOptions(xLabelRenderer));");
         _builder_47.newLineIfNotEmpty();
         _builder_47.append("\t");
         _builder_47.append("axes.addAxis(new XYaxis(XYaxes.");
         char _charAt_2 = axisPrefix.charAt(1);
         _builder_47.append(_charAt_2, "\t");
         _builder_47.append("2).setLabel(");
-        String _literal_40 = data_axis.getAxis().getName().getLiteral();
-        _builder_47.append(_literal_40, "\t");
-        _builder_47.append("TitlesArray.get(2)).setTickOptions(axisTickRenderer");
-        {
-          int _angle_4 = category_axis.getAngle();
-          boolean _notEquals_2 = (_angle_4 != 0);
-          if (_notEquals_2) {
-            _builder_47.append(".setAngle(");
-            int _angle_5 = data_axis.getAngle();
-            _builder_47.append(_angle_5, "\t");
-            _builder_47.append(")");
-          }
-        }
-        _builder_47.append("));");
+        String _literal_38 = data_axis.getAxis().getName().getLiteral();
+        _builder_47.append(_literal_38, "\t");
+        _builder_47.append("TitlesArray.get(2)).setTickOptions(xTickRenderer).setLabelOptions(xLabelRenderer));");
         _builder_47.newLineIfNotEmpty();
         _builder_47.append("}");
         _builder_47.newLine();
@@ -2079,10 +2065,13 @@
       } else {
         StringConcatenation _builder_48 = new StringConcatenation();
         _builder_48.append(body);
-        _builder_48.append("CanvasAxisTickRenderer tickRenderer = new CanvasAxisTickRenderer();");
         _builder_48.newLineIfNotEmpty();
-        _builder_48.append("tickRenderer.setTextColor(\"#202020\");");
-        _builder_48.newLine();
+        CharSequence _canvasAxisRenderer_2 = this.canvasAxisRenderer(category_axis, "x", "Tick", fontFamily);
+        _builder_48.append(_canvasAxisRenderer_2);
+        _builder_48.newLineIfNotEmpty();
+        CharSequence _canvasAxisRenderer_3 = this.canvasAxisRenderer(category_axis, "x", "Label", fontFamily);
+        _builder_48.append(_canvasAxisRenderer_3);
+        _builder_48.newLineIfNotEmpty();
         _builder_48.append("axes.addAxis(new XYaxis(XYaxes.");
         char _charAt_3 = axisPrefix.charAt(0);
         _builder_48.append(_charAt_3);
@@ -2096,37 +2085,29 @@
         _builder_48.newLineIfNotEmpty();
         _builder_48.append("\t");
         _builder_48.append(".setLabel(");
-        String _literal_41 = category_axis.getAxis().getName().getLiteral();
-        _builder_48.append(_literal_41, "\t");
+        String _literal_39 = category_axis.getAxis().getName().getLiteral();
+        _builder_48.append(_literal_39, "\t");
         _builder_48.append("AxisLabel)");
         _builder_48.newLineIfNotEmpty();
         _builder_48.append("\t");
         _builder_48.append(".setTicks(");
-        String _literal_42 = category_axis.getAxis().getName().getLiteral();
-        _builder_48.append(_literal_42, "\t");
+        String _literal_40 = category_axis.getAxis().getName().getLiteral();
+        _builder_48.append(_literal_40, "\t");
         _builder_48.append("Ticks)");
         _builder_48.newLineIfNotEmpty();
         _builder_48.append("\t");
-        _builder_48.append(".setTickOptions(tickRenderer");
-        {
-          int _angle_6 = category_axis.getAngle();
-          boolean _notEquals_3 = (_angle_6 != 0);
-          if (_notEquals_3) {
-            _builder_48.append(".setAngle(");
-            int _angle_7 = category_axis.getAngle();
-            _builder_48.append(_angle_7, "\t");
-            _builder_48.append(")");
-          }
-        }
-        _builder_48.append("));");
-        _builder_48.newLineIfNotEmpty();
+        _builder_48.append(".setTickOptions(xTickRenderer)");
+        _builder_48.newLine();
+        _builder_48.append("\t");
+        _builder_48.append(".setLabelOptions(xLabelRenderer));");
+        _builder_48.newLine();
         body = _builder_48.toString();
         StringConcatenation _builder_49 = new StringConcatenation();
         _builder_49.append(body);
-        _builder_49.append("CanvasAxisTickRenderer axisTickRenderer = new CanvasAxisTickRenderer();");
         _builder_49.newLineIfNotEmpty();
-        _builder_49.append("axisTickRenderer.setTextColor(\"#202020\");");
-        _builder_49.newLine();
+        CharSequence _canvasAxisRenderer_4 = this.canvasAxisRenderer(data_axis, "y", "Tick", fontFamily);
+        _builder_49.append(_canvasAxisRenderer_4);
+        _builder_49.newLineIfNotEmpty();
         _builder_49.append("axes.addAxis(new XYaxis(XYaxes.");
         char _charAt_4 = axisPrefix.charAt(1);
         _builder_49.append(_charAt_4);
@@ -2136,19 +2117,8 @@
         _builder_49.append(".setPad(1.05f)");
         _builder_49.newLine();
         _builder_49.append("\t");
-        _builder_49.append(".setTickOptions(axisTickRenderer");
-        {
-          int _angle_8 = data_axis.getAngle();
-          boolean _notEquals_4 = (_angle_8 != 0);
-          if (_notEquals_4) {
-            _builder_49.append(".setAngle(");
-            int _angle_9 = data_axis.getAngle();
-            _builder_49.append(_angle_9, "\t");
-            _builder_49.append(")");
-          }
-        }
-        _builder_49.append("));");
-        _builder_49.newLineIfNotEmpty();
+        _builder_49.append(".setTickOptions(yTickRenderer));");
+        _builder_49.newLine();
         body = _builder_49.toString();
         Set<String> _keySet = multipleAxes.keySet();
         for (final String axisKey : _keySet) {
@@ -2193,218 +2163,446 @@
       _builder_52.newLineIfNotEmpty();
       body = _builder_52.toString();
     }
+    boolean hadLegend = false;
     EList<ChartElement> _elements_1 = chart.getSource().getElements();
     for (final ChartElement element_1 : _elements_1) {
       if ((element_1 instanceof ChartLegend)) {
         ChartLegend legend = ((ChartLegend) element_1);
-        StringConcatenation _builder_53 = new StringConcatenation();
-        _builder_53.append(body);
-        _builder_53.append("Legend legend = new Legend().setShow(");
-        String _string_5 = Boolean.valueOf(Boolean.valueOf((legend != null)).booleanValue()).toString();
-        _builder_53.append(_string_5);
-        _builder_53.append(");");
-        _builder_53.newLineIfNotEmpty();
-        body = _builder_53.toString();
-        StringConcatenation _builder_54 = new StringConcatenation();
-        _builder_54.append(body);
-        _builder_54.append("legend.setPlacement(LegendPlacements.");
-        String _name = legend.getPlacement().name();
-        _builder_54.append(_name);
-        _builder_54.append(");");
-        _builder_54.newLineIfNotEmpty();
-        body = _builder_54.toString();
-        boolean _isToggle = legend.isToggle();
-        if (_isToggle) {
+        boolean _isNoLegend = legend.isNoLegend();
+        if (_isNoLegend) {
+          hadLegend = true;
+        } else {
+          hadLegend = true;
+          StringConcatenation _builder_53 = new StringConcatenation();
+          _builder_53.append(body);
+          _builder_53.newLineIfNotEmpty();
+          _builder_53.append("Legend legend = new Legend().setShow(");
+          String _string_5 = Boolean.valueOf(Boolean.valueOf((legend != null)).booleanValue()).toString();
+          _builder_53.append(_string_5);
+          _builder_53.append(");");
+          _builder_53.newLineIfNotEmpty();
+          _builder_53.append("legend.setPlacement(LegendPlacements.");
+          String _name = legend.getPlacement().name();
+          _builder_53.append(_name);
+          _builder_53.append(");");
+          _builder_53.newLineIfNotEmpty();
+          body = _builder_53.toString();
+          boolean _isToggle = legend.isToggle();
+          if (_isToggle) {
+            StringConcatenation _builder_54 = new StringConcatenation();
+            _builder_54.append(body);
+            _builder_54.newLineIfNotEmpty();
+            _builder_54.append("EnhancedLegendRenderer renderer = new EnhancedLegendRenderer();");
+            _builder_54.newLine();
+            _builder_54.append("renderer.setSeriesToggle(SeriesToggles.");
+            String _name_1 = legend.getToggleType().getName();
+            _builder_54.append(_name_1);
+            _builder_54.append(");");
+            _builder_54.newLineIfNotEmpty();
+            _builder_54.append("renderer.setSeriesToggleReplot(");
+            String _string_6 = Boolean.valueOf(Boolean.valueOf(legend.isReplot()).booleanValue()).toString();
+            _builder_54.append(_string_6);
+            _builder_54.append(");");
+            _builder_54.newLineIfNotEmpty();
+            _builder_54.append("legend.setRendererOptions(renderer);");
+            _builder_54.newLine();
+            {
+              String _textColor = legend.getTextColor();
+              boolean _tripleNotEquals = (_textColor != null);
+              if (_tripleNotEquals) {
+                _builder_54.append("legend.setTextColor(\"");
+                String _hex_1 = this.toHex(legend.getTextColor());
+                _builder_54.append(_hex_1);
+                _builder_54.append("\");");
+              }
+            }
+            _builder_54.newLineIfNotEmpty();
+            {
+              int _fontSize = legend.getFontSize();
+              boolean _tripleNotEquals_1 = (_fontSize != 0);
+              if (_tripleNotEquals_1) {
+                _builder_54.append("legend.setFontSize(\"");
+                int _fontSize_1 = legend.getFontSize();
+                _builder_54.append(_fontSize_1);
+                _builder_54.append("pt\");");
+              }
+            }
+            _builder_54.newLineIfNotEmpty();
+            {
+              boolean _equals_3 = fontFamily.equals(CanvasFontFamilyEnum.DEFAULT);
+              boolean _not_1 = (!_equals_3);
+              if (_not_1) {
+                _builder_54.append("legend.setFontFamily(\"");
+                String _literal_41 = fontFamily.getLiteral();
+                _builder_54.append(_literal_41);
+                _builder_54.append("\");");
+              }
+            }
+            _builder_54.newLineIfNotEmpty();
+            body = _builder_54.toString();
+          }
           StringConcatenation _builder_55 = new StringConcatenation();
           _builder_55.append(body);
-          _builder_55.append("EnhancedLegendRenderer renderer = new EnhancedLegendRenderer();");
+          _builder_55.append("options.setLegend(legend);");
           _builder_55.newLineIfNotEmpty();
-          _builder_55.append("renderer.setSeriesToggle(SeriesToggles.");
-          String _name_1 = legend.getToggleType().getName();
-          _builder_55.append(_name_1);
-          _builder_55.append(");");
-          _builder_55.newLineIfNotEmpty();
-          _builder_55.append("renderer.setSeriesToggleReplot(");
-          String _string_6 = Boolean.valueOf(Boolean.valueOf(legend.isReplot()).booleanValue()).toString();
-          _builder_55.append(_string_6);
-          _builder_55.append(");");
-          _builder_55.newLineIfNotEmpty();
-          _builder_55.append("legend.setRendererOptions(renderer);");
-          _builder_55.newLine();
           body = _builder_55.toString();
         }
-        StringConcatenation _builder_56 = new StringConcatenation();
-        _builder_56.append(body);
-        _builder_56.append("options.setLegend(legend);");
-        _builder_56.newLineIfNotEmpty();
-        body = _builder_56.toString();
       }
     }
+    if ((!hadLegend)) {
+      StringConcatenation _builder_56 = new StringConcatenation();
+      _builder_56.append(body);
+      _builder_56.newLineIfNotEmpty();
+      _builder_56.append("Legend legend = new Legend().setShow(true);");
+      _builder_56.newLine();
+      _builder_56.append("legend.setPlacement(LegendPlacements.OUTSIDE_GRID);");
+      _builder_56.newLine();
+      _builder_56.append("EnhancedLegendRenderer renderer = new EnhancedLegendRenderer();");
+      _builder_56.newLine();
+      _builder_56.append("renderer.setSeriesToggle(SeriesToggles.FAST);");
+      _builder_56.newLine();
+      _builder_56.append("renderer.setSeriesToggleReplot(true);");
+      _builder_56.newLine();
+      _builder_56.append("legend.setRendererOptions(renderer);");
+      _builder_56.newLine();
+      {
+        boolean _equals_4 = fontFamily.equals(CanvasFontFamilyEnum.DEFAULT);
+        boolean _not_2 = (!_equals_4);
+        if (_not_2) {
+          _builder_56.append("legend.setFontFamily(\"");
+          String _literal_42 = fontFamily.getLiteral();
+          _builder_56.append(_literal_42);
+          _builder_56.append("\");");
+        }
+      }
+      _builder_56.newLineIfNotEmpty();
+      _builder_56.append("options.setLegend(legend);");
+      _builder_56.newLine();
+      body = _builder_56.toString();
+    }
+    boolean hadHighlighter = false;
     EList<ChartElement> _elements_2 = chart.getSource().getElements();
     for (final ChartElement element_2 : _elements_2) {
       if ((element_2 instanceof ChartHighlighter)) {
+        hadHighlighter = true;
         ChartHighlighter highlighter = ((ChartHighlighter) element_2);
         StringConcatenation _builder_57 = new StringConcatenation();
         _builder_57.append(body);
+        _builder_57.newLineIfNotEmpty();
         _builder_57.append("Highlighter highlighter = new Highlighter().setShow(");
         String _string_7 = Boolean.valueOf(Boolean.valueOf((highlighter != null)).booleanValue()).toString();
         _builder_57.append(_string_7);
         _builder_57.append(");");
         _builder_57.newLineIfNotEmpty();
-        body = _builder_57.toString();
-        StringConcatenation _builder_58 = new StringConcatenation();
-        _builder_58.append(body);
-        _builder_58.append("highlighter.setShowTooltip(true)");
-        _builder_58.newLineIfNotEmpty();
-        _builder_58.append(".setTooltipAlwaysVisible(");
+        _builder_57.append("highlighter.setShowTooltip(true)");
+        _builder_57.newLine();
+        _builder_57.append("\t");
+        _builder_57.append(".setTooltipAlwaysVisible(");
         String _string_8 = Boolean.valueOf(Boolean.valueOf(highlighter.isTooltipAlways()).booleanValue()).toString();
-        _builder_58.append(_string_8);
-        _builder_58.append(")");
-        _builder_58.newLineIfNotEmpty();
-        _builder_58.append(".setKeepTooltipInsideChart(");
+        _builder_57.append(_string_8, "\t");
+        _builder_57.append(")");
+        _builder_57.newLineIfNotEmpty();
+        _builder_57.append("\t");
+        _builder_57.append(".setKeepTooltipInsideChart(");
         String _string_9 = Boolean.valueOf(Boolean.valueOf(highlighter.isInsideChart()).booleanValue()).toString();
-        _builder_58.append(_string_9);
-        _builder_58.append(")");
-        _builder_58.newLineIfNotEmpty();
-        _builder_58.append(".setTooltipLocation(TooltipLocations.");
+        _builder_57.append(_string_9, "\t");
+        _builder_57.append(")");
+        _builder_57.newLineIfNotEmpty();
+        _builder_57.append("\t");
+        _builder_57.append(".setTooltipLocation(TooltipLocations.");
         String _name_2 = highlighter.getLocation().name();
-        _builder_58.append(_name_2);
-        _builder_58.append(")");
-        _builder_58.newLineIfNotEmpty();
-        _builder_58.append(".setBringSeriesToFront(true)");
-        _builder_58.newLine();
-        _builder_58.append(".setFadeTooltip(true)");
-        _builder_58.newLine();
-        _builder_58.append(".setShowMarker(true);");
-        _builder_58.newLine();
-        body = _builder_58.toString();
-        StringConcatenation _builder_59 = new StringConcatenation();
-        _builder_59.append(body);
-        _builder_59.append("highlighter.setTooltipAxes(TooltipAxes.");
-        _builder_59.append(axisPrefix);
-        _builder_59.append(postfix);
-        _builder_59.append(");");
-        _builder_59.newLineIfNotEmpty();
-        body = _builder_59.toString();
-        StringConcatenation _builder_60 = new StringConcatenation();
-        _builder_60.append(body);
-        _builder_60.append("options.setHighlighter(highlighter);");
-        _builder_60.newLineIfNotEmpty();
-        body = _builder_60.toString();
+        _builder_57.append(_name_2, "\t");
+        _builder_57.append(")");
+        _builder_57.newLineIfNotEmpty();
+        _builder_57.append("\t");
+        _builder_57.append(".setBringSeriesToFront(true)");
+        _builder_57.newLine();
+        _builder_57.append("\t");
+        _builder_57.append(".setFadeTooltip(true)");
+        _builder_57.newLine();
+        _builder_57.append("\t");
+        _builder_57.append(".setShowMarker(true);");
+        _builder_57.newLine();
+        _builder_57.append("highlighter.setTooltipAxes(TooltipAxes.");
+        _builder_57.append(axisPrefix);
+        _builder_57.append(postfix);
+        _builder_57.append(");");
+        _builder_57.newLineIfNotEmpty();
+        _builder_57.append("options.setHighlighter(highlighter);");
+        _builder_57.newLine();
+        body = _builder_57.toString();
       }
     }
+    if ((!hadHighlighter)) {
+      StringConcatenation _builder_58 = new StringConcatenation();
+      _builder_58.append(body);
+      _builder_58.newLineIfNotEmpty();
+      _builder_58.append("Highlighter highlighter = new Highlighter().setShow(true);");
+      _builder_58.newLine();
+      _builder_58.append("highlighter.setShowTooltip(true)");
+      _builder_58.newLine();
+      _builder_58.append("\t");
+      _builder_58.append(".setTooltipAlwaysVisible(true)");
+      _builder_58.newLine();
+      _builder_58.append("\t");
+      _builder_58.append(".setKeepTooltipInsideChart(true)");
+      _builder_58.newLine();
+      _builder_58.append("\t");
+      _builder_58.append(".setTooltipLocation(TooltipLocations.NORTH_EAST)");
+      _builder_58.newLine();
+      _builder_58.append("\t");
+      _builder_58.append(".setBringSeriesToFront(true)");
+      _builder_58.newLine();
+      _builder_58.append("\t");
+      _builder_58.append(".setFadeTooltip(true)");
+      _builder_58.newLine();
+      _builder_58.append("\t");
+      _builder_58.append(".setShowMarker(true);");
+      _builder_58.newLine();
+      _builder_58.append("highlighter.setTooltipAxes(TooltipAxes.");
+      _builder_58.append(axisPrefix);
+      _builder_58.append(postfix);
+      _builder_58.append(");");
+      _builder_58.newLineIfNotEmpty();
+      _builder_58.append("options.setHighlighter(highlighter);");
+      _builder_58.newLine();
+      body = _builder_58.toString();
+    }
     ChartOption _charttype_39 = chart.getCharttype();
     if ((_charttype_39 instanceof ChartLine)) {
       ChartOption _charttype_40 = chart.getCharttype();
       boolean _isCursor = ((ChartLine) _charttype_40).isCursor();
       if (_isCursor) {
-        StringConcatenation _builder_61 = new StringConcatenation();
-        _builder_61.append(body);
-        _builder_61.append("Cursor cursor = new Cursor()");
-        _builder_61.newLineIfNotEmpty();
-        _builder_61.append("\t");
-        _builder_61.append(".setShow(true)");
-        _builder_61.newLine();
-        _builder_61.append("\t");
-        _builder_61.append(".setZoom(");
+        StringConcatenation _builder_59 = new StringConcatenation();
+        _builder_59.append(body);
+        _builder_59.append("Cursor cursor = new Cursor()");
+        _builder_59.newLineIfNotEmpty();
+        _builder_59.append("\t");
+        _builder_59.append(".setShow(true)");
+        _builder_59.newLine();
+        _builder_59.append("\t");
+        _builder_59.append(".setZoom(");
         ChartOption _charttype_41 = chart.getCharttype();
         String _string_10 = Boolean.valueOf(((ChartLine) _charttype_41).isZoom()).toString();
-        _builder_61.append(_string_10, "\t");
-        _builder_61.append(")");
-        _builder_61.newLineIfNotEmpty();
-        _builder_61.append("\t");
-        _builder_61.append(".setShowTooltip(");
+        _builder_59.append(_string_10, "\t");
+        _builder_59.append(")");
+        _builder_59.newLineIfNotEmpty();
+        _builder_59.append("\t");
+        _builder_59.append(".setShowTooltip(");
         ChartOption _charttype_42 = chart.getCharttype();
         String _string_11 = Boolean.valueOf(((ChartLine) _charttype_42).isTooltip()).toString();
-        _builder_61.append(_string_11, "\t");
-        _builder_61.append(");");
-        _builder_61.newLineIfNotEmpty();
-        _builder_61.append("options.setCursor(cursor);");
-        _builder_61.newLine();
-        body = _builder_61.toString();
+        _builder_59.append(_string_11, "\t");
+        _builder_59.append(");");
+        _builder_59.newLineIfNotEmpty();
+        _builder_59.append("options.setCursor(cursor);");
+        _builder_59.newLine();
+        body = _builder_59.toString();
       }
       ChartOption _charttype_43 = chart.getCharttype();
       boolean _isAnimated_1 = ((ChartLine) _charttype_43).isAnimated();
       if (_isAnimated_1) {
-        StringConcatenation _builder_62 = new StringConcatenation();
-        _builder_62.append(body);
-        _builder_62.append("options.setAnimate(true);");
-        _builder_62.newLineIfNotEmpty();
-        body = _builder_62.toString();
+        StringConcatenation _builder_60 = new StringConcatenation();
+        _builder_60.append(body);
+        _builder_60.append("options.setAnimate(true);");
+        _builder_60.newLineIfNotEmpty();
+        body = _builder_60.toString();
       }
     }
     if (hasAxis) {
-      StringConcatenation _builder_63 = new StringConcatenation();
-      _builder_63.append(body);
-      _builder_63.append("options.setSeries(");
+      StringConcatenation _builder_61 = new StringConcatenation();
+      _builder_61.append(body);
+      _builder_61.append("options.setSeries(");
       String _literal_43 = data_axis.getAxis().getName().getLiteral();
-      _builder_63.append(_literal_43);
-      _builder_63.append("Series);");
-      _builder_63.newLineIfNotEmpty();
-      body = _builder_63.toString();
+      _builder_61.append(_literal_43);
+      _builder_61.append("Series);");
+      _builder_61.newLineIfNotEmpty();
+      body = _builder_61.toString();
     }
-    StringConcatenation _builder_64 = new StringConcatenation();
-    _builder_64.append(body);
-    _builder_64.append("DCharts chart = new DCharts();");
-    _builder_64.newLineIfNotEmpty();
-    _builder_64.append("chart.setDataSeries(dataSeries);");
-    _builder_64.newLine();
-    _builder_64.append("chart.setOptions(options);");
-    _builder_64.newLine();
-    _builder_64.append("chart.setEnableChartImageChangeEvent(true);");
-    _builder_64.newLine();
-    body = _builder_64.toString();
+    StringConcatenation _builder_62 = new StringConcatenation();
+    _builder_62.append(body);
+    _builder_62.append("DCharts chart = new DCharts();");
+    _builder_62.newLineIfNotEmpty();
+    _builder_62.append("chart.setDataSeries(dataSeries);");
+    _builder_62.newLine();
+    _builder_62.append("chart.setOptions(options);");
+    _builder_62.newLine();
+    _builder_62.append("chart.setEnableChartImageChangeEvent(true);");
+    _builder_62.newLine();
+    body = _builder_62.toString();
+    StringConcatenation _builder_63 = new StringConcatenation();
+    _builder_63.append(body);
+    _builder_63.append("chart.setId(\"chart\");");
+    _builder_63.newLineIfNotEmpty();
+    _builder_63.append("chart.setImmediate(true);");
+    _builder_63.newLine();
+    _builder_63.append("chart.show();");
+    _builder_63.newLine();
+    _builder_63.append("charts.add(chart);");
+    _builder_63.newLine();
+    body = _builder_63.toString();
+    if (((chart.getToolbar() != null) && (chart.getToolbar().eContainer() != null))) {
+      StringConcatenation _builder_64 = new StringConcatenation();
+      _builder_64.append(body);
+      _builder_64.newLineIfNotEmpty();
+      _builder_64.append("for (MToolBarElement element : toolbarClass.getToolBar().getChildren()) {");
+      _builder_64.newLine();
+      _builder_64.append("\t");
+      _builder_64.append("Object widget = element.getWidget();");
+      _builder_64.newLine();
+      _builder_64.append("\t");
+      _builder_64.append("if (widget instanceof Button) {");
+      _builder_64.newLine();
+      _builder_64.append("\t\t");
+      _builder_64.append("List<String> tags = element.getTags();");
+      _builder_64.newLine();
+      _builder_64.append("\t\t");
+      _builder_64.append("if (tags.contains(ChartActionEnum.CHART_ACTION_DOWNLOAD.getLiteral())) {");
+      _builder_64.newLine();
+      _builder_64.append("\t\t\t");
+      _builder_64.append("FileDownloader fileDownloader = new FileDownloader(getChartResource(chart, layoutManager));");
+      _builder_64.newLine();
+      _builder_64.append("\t\t\t");
+      _builder_64.append("fileDownloader.extend((Button) widget);");
+      _builder_64.newLine();
+      _builder_64.append("\t\t");
+      _builder_64.append("}");
+      _builder_64.newLine();
+      _builder_64.append("\t");
+      _builder_64.append("}");
+      _builder_64.newLine();
+      _builder_64.append("}");
+      body = _builder_64.toString();
+    }
     StringConcatenation _builder_65 = new StringConcatenation();
     _builder_65.append(body);
-    _builder_65.append("chart.setId(\"chart\");");
-    _builder_65.newLineIfNotEmpty();
-    _builder_65.append("chart.setImmediate(true);");
-    _builder_65.newLine();
-    _builder_65.append("chart.show();");
-    _builder_65.newLine();
-    _builder_65.append("charts.add(chart);");
-    _builder_65.newLine();
+    _builder_65.append("return chart;");
     body = _builder_65.toString();
-    if (((chart.getToolbar() != null) && (chart.getToolbar().eContainer() != null))) {
-      StringConcatenation _builder_66 = new StringConcatenation();
-      _builder_66.append(body);
-      _builder_66.newLineIfNotEmpty();
-      _builder_66.append("for (MToolBarElement element : toolbarClass.getToolBar().getChildren()) {");
-      _builder_66.newLine();
-      _builder_66.append("\t");
-      _builder_66.append("Object widget = element.getWidget();");
-      _builder_66.newLine();
-      _builder_66.append("\t");
-      _builder_66.append("if (widget instanceof Button) {");
-      _builder_66.newLine();
-      _builder_66.append("\t\t");
-      _builder_66.append("List<String> tags = element.getTags();");
-      _builder_66.newLine();
-      _builder_66.append("\t\t");
-      _builder_66.append("if (tags.contains(ChartActionEnum.CHART_ACTION_DOWNLOAD.getLiteral())) {");
-      _builder_66.newLine();
-      _builder_66.append("\t\t\t");
-      _builder_66.append("FileDownloader fileDownloader = new FileDownloader(getChartResource(chart, layoutManager));");
-      _builder_66.newLine();
-      _builder_66.append("\t\t\t");
-      _builder_66.append("fileDownloader.extend((Button) widget);");
-      _builder_66.newLine();
-      _builder_66.append("\t\t");
-      _builder_66.append("}");
-      _builder_66.newLine();
-      _builder_66.append("\t");
-      _builder_66.append("}");
-      _builder_66.newLine();
-      _builder_66.append("}");
-      body = _builder_66.toString();
-    }
-    StringConcatenation _builder_67 = new StringConcatenation();
-    _builder_67.append(body);
-    _builder_67.append("return chart;");
-    body = _builder_67.toString();
     return body;
   }
   
+  public CharSequence canvasAxisRenderer(final ChartAxis axis, final String axisName, final String typeName, final CanvasFontFamilyEnum fontFamily) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("CanvasAxis");
+    _builder.append(typeName);
+    _builder.append("Renderer ");
+    _builder.append(axisName);
+    _builder.append(typeName);
+    _builder.append("Renderer = new CanvasAxis");
+    _builder.append(typeName);
+    _builder.append("Renderer();");
+    _builder.newLineIfNotEmpty();
+    {
+      boolean _equals = "Tick".equals(typeName);
+      if (_equals) {
+        _builder.append(axisName);
+        _builder.append(typeName);
+        _builder.append("Renderer.setTextColor(");
+        {
+          String _tickTextColor = axis.getTickTextColor();
+          boolean _tripleNotEquals = (_tickTextColor != null);
+          if (_tripleNotEquals) {
+            _builder.append("\"");
+            String _hex = this.toHex(axis.getTickTextColor());
+            _builder.append(_hex);
+            _builder.append("\"");
+          } else {
+            _builder.append("\"#202020\"");
+          }
+        }
+        _builder.append(");");
+        _builder.newLineIfNotEmpty();
+        {
+          int _tickFontSize = axis.getTickFontSize();
+          boolean _tripleNotEquals_1 = (_tickFontSize != 0);
+          if (_tripleNotEquals_1) {
+            _builder.append(axisName);
+            _builder.append(typeName);
+            _builder.append("Renderer.setFontSize(\"");
+            int _tickFontSize_1 = axis.getTickFontSize();
+            _builder.append(_tickFontSize_1);
+            _builder.append("pt\");");
+          }
+        }
+        _builder.newLineIfNotEmpty();
+        {
+          int _tickAngle = axis.getTickAngle();
+          boolean _notEquals = (_tickAngle != 0);
+          if (_notEquals) {
+            _builder.append(axisName);
+            _builder.append(typeName);
+            _builder.append("Renderer.setAngle(");
+            int _tickAngle_1 = axis.getTickAngle();
+            _builder.append(_tickAngle_1);
+            _builder.append(");");
+          }
+        }
+        _builder.newLineIfNotEmpty();
+      } else {
+        _builder.append(axisName);
+        _builder.append(typeName);
+        _builder.append("Renderer.setTextColor(");
+        {
+          String _labelTextColor = axis.getLabelTextColor();
+          boolean _tripleNotEquals_2 = (_labelTextColor != null);
+          if (_tripleNotEquals_2) {
+            _builder.append("\"");
+            String _hex_1 = this.toHex(axis.getLabelTextColor());
+            _builder.append(_hex_1);
+            _builder.append("\"");
+          } else {
+            _builder.append("\"#202020\"");
+          }
+        }
+        _builder.append(");");
+        _builder.newLineIfNotEmpty();
+        {
+          int _labelFontSize = axis.getLabelFontSize();
+          boolean _tripleNotEquals_3 = (_labelFontSize != 0);
+          if (_tripleNotEquals_3) {
+            _builder.append(axisName);
+            _builder.append(typeName);
+            _builder.append("Renderer.setFontSize(\"");
+            int _labelFontSize_1 = axis.getLabelFontSize();
+            _builder.append(_labelFontSize_1);
+            _builder.append("pt\");");
+          }
+        }
+        _builder.newLineIfNotEmpty();
+        {
+          int _labelAngle = axis.getLabelAngle();
+          boolean _notEquals_1 = (_labelAngle != 0);
+          if (_notEquals_1) {
+            _builder.append(axisName);
+            _builder.append(typeName);
+            _builder.append("Renderer.setAngle(");
+            int _labelAngle_1 = axis.getLabelAngle();
+            _builder.append(_labelAngle_1);
+            _builder.append(");");
+          }
+        }
+        _builder.newLineIfNotEmpty();
+      }
+    }
+    {
+      boolean _equals_1 = fontFamily.equals(CanvasFontFamilyEnum.DEFAULT);
+      boolean _not = (!_equals_1);
+      if (_not) {
+        _builder.append(axisName);
+        _builder.append(typeName);
+        _builder.append("Renderer.setEnableFontSupport(true);");
+        _builder.newLineIfNotEmpty();
+        _builder.append(axisName);
+        _builder.append(typeName);
+        _builder.append("Renderer.setFontFamily(\"");
+        String _literal = fontFamily.getLiteral();
+        _builder.append(_literal);
+        _builder.append("\");");
+        _builder.newLineIfNotEmpty();
+      }
+    }
+    return _builder;
+  }
+  
   /**
    * <p>helper method to convert a rgb string to a hex string.</p>
    */
@@ -2599,14 +2797,14 @@
           _builder_1.append((scaleOrdinal + 1));
         }
       }
-      _builder_1.append(").setTickOptions(axisTickRenderer");
+      _builder_1.append(").setTickOptions(yTickRenderer");
       {
-        int _angle = data_axis.getAngle();
-        boolean _notEquals = (_angle != 0);
+        int _tickAngle = data_axis.getTickAngle();
+        boolean _notEquals = (_tickAngle != 0);
         if (_notEquals) {
           _builder_1.append(".setAngle(");
-          int _angle_1 = data_axis.getAngle();
-          _builder_1.append(_angle_1);
+          int _tickAngle_1 = data_axis.getTickAngle();
+          _builder_1.append(_tickAngle_1);
           _builder_1.append(")");
         }
       }
diff --git a/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.java b/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.java
index 5cdf6c8..91218a5 100644
--- a/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.java
+++ b/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.java
@@ -78,6 +78,7 @@
 import org.dussan.vaadin.dcharts.options.SeriesDefaults;
 import org.dussan.vaadin.dcharts.options.Title;
 import org.dussan.vaadin.dcharts.renderers.axis.LinearAxisRenderer;
+import org.dussan.vaadin.dcharts.renderers.label.CanvasAxisLabelRenderer;
 import org.dussan.vaadin.dcharts.renderers.legend.EnhancedLegendRenderer;
 import org.dussan.vaadin.dcharts.renderers.series.BarRenderer;
 import org.dussan.vaadin.dcharts.renderers.series.BubbleRenderer;
@@ -155,7 +156,7 @@
       importManager.addImportFor(this._typeReferenceBuilder.typeRef(HashMap.class, this._typeReferenceBuilder.typeRef(String.class), this._typeReferenceBuilder.typeRef(String.class)).getType());
       importManager.addImportFor(this._typeReferenceBuilder.typeRef(Map.class, this._typeReferenceBuilder.typeRef(String.class), this._typeReferenceBuilder.typeRef(String.class)).getType());
       importManager.addImportFor(this._typeReferenceBuilder.typeRef(Collection.class, this._typeReferenceBuilder.typeRef(String.class)).getType());
-      this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, Property.ValueChangeListener.class, DCharts.class, Label.class, List.class, ArrayList.class, Page.class, Page.Styles.class, DerivedAxis.class, DerivedCell.class, DerivedPosition.class, DerivedMember.class, HorizontalLayout.class, TabSheet.class, Series.class, XYseries.class, Ticks.class, DataSeries.class, SeriesDefaults.class, SeriesRenderers.class, CanvasAxisTickRenderer.class, DonutRenderer.class, PieRenderer.class, BubbleRenderer.class, BarRenderer.class, BarDirections.class, MeterGaugeRenderer.class, PyramidRenderer.class, PyramidSides.class, Trendline.class, Cursor.class, Legend.class, LegendPlacements.class, EnhancedLegendRenderer.class, SeriesToggles.class, Highlighter.class, Title.class, TooltipLocations.class, TooltipAxes.class, Axes.class, XYaxes.class, XYaxis.class, Xaxes.class, Yaxes.class, AxisTickRenderer.class, AxisRenderers.class, LinearAxisRenderer.class, AxesDefaults.class, DownloadButtonLocation.class, Options.class, DerivedHierarchy.class, DerivedLevel.class, CellSetToD3JsonConverter.class, Date.class, JavaScriptFunction.class, JsonArray.class, JsonObject.class, JsonException.class, EventHandler.class, Event.class, EventUtils.class, EventBrokerMsg.class, Executors.class, Notification.class, EObject.class, UIElementImpl.class, UiPackageImpl.class, MUIElement.class, MPartStack.class, UI.class, ResourceBundle.class, Locale.class, DatamartFilterGenerator.class, ViewLayoutManager.class, IDatamartFilterGenerator.FilterChangeListener.class, EventDispatcherEvent.class, EventDispatcherEvent.EventDispatcherDataTag.class, EventDispatcherEvent.EventDispatcherCommand.class, DatamartFilter.class, Member.MemberType.class, Panel.class, MPerspective.class, ChartActionEnum.class, UUID.class, StreamResource.class, MToolBarElement.class, Button.class, FileDownloader.class, StreamResource.StreamSource.class, ByteArrayOutputStream.class, ImageIO.class, ByteArrayInputStream.class, InputStream.class, Adapter.class, AdapterImpl.class, SizeReporter.class, ComponentResizeListener.class, ComponentResizeEvent.class);
+      this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, Property.ValueChangeListener.class, DCharts.class, Label.class, List.class, ArrayList.class, Page.class, Page.Styles.class, DerivedAxis.class, DerivedCell.class, DerivedPosition.class, DerivedMember.class, HorizontalLayout.class, TabSheet.class, Series.class, XYseries.class, Ticks.class, DataSeries.class, SeriesDefaults.class, SeriesRenderers.class, CanvasAxisTickRenderer.class, CanvasAxisLabelRenderer.class, DonutRenderer.class, PieRenderer.class, BubbleRenderer.class, BarRenderer.class, BarDirections.class, MeterGaugeRenderer.class, PyramidRenderer.class, PyramidSides.class, Trendline.class, Cursor.class, Legend.class, LegendPlacements.class, EnhancedLegendRenderer.class, SeriesToggles.class, Highlighter.class, Title.class, TooltipLocations.class, TooltipAxes.class, Axes.class, XYaxes.class, XYaxis.class, Xaxes.class, Yaxes.class, AxisTickRenderer.class, AxisRenderers.class, LinearAxisRenderer.class, AxesDefaults.class, DownloadButtonLocation.class, Options.class, DerivedHierarchy.class, DerivedLevel.class, CellSetToD3JsonConverter.class, Date.class, JavaScriptFunction.class, JsonArray.class, JsonObject.class, JsonException.class, EventHandler.class, Event.class, EventUtils.class, EventBrokerMsg.class, Executors.class, Notification.class, EObject.class, UIElementImpl.class, UiPackageImpl.class, MUIElement.class, MPartStack.class, UI.class, ResourceBundle.class, Locale.class, DatamartFilterGenerator.class, ViewLayoutManager.class, IDatamartFilterGenerator.FilterChangeListener.class, EventDispatcherEvent.class, EventDispatcherEvent.EventDispatcherDataTag.class, EventDispatcherEvent.EventDispatcherCommand.class, DatamartFilter.class, Member.MemberType.class, Panel.class, MPerspective.class, ChartActionEnum.class, UUID.class, StreamResource.class, MToolBarElement.class, Button.class, FileDownloader.class, StreamResource.StreamSource.class, ByteArrayOutputStream.class, ImageIO.class, ByteArrayInputStream.class, InputStream.class, Adapter.class, AdapterImpl.class, SizeReporter.class, ComponentResizeListener.class, ComponentResizeEvent.class);
       _xblockexpression = super.createAppendable(context, importManager, config);
     }
     return _xblockexpression;